Nginx网站服务器在生产环境运行时需要实时监控。事实上,Nagios、Zabbix、Munin等网络监控软件都支持Nginx监控。如果您不需要上述软件提供的全面报表或长期数据统计,而只是需要一种快速简便的方式来监控Nginx服务器的请求,我建议您使用一个名为ngxtop的命令行工具。您会立即注意到ngxtop借用了著名的top命令的接口和名称。ngxtop是通过分析Nginx或者其他日志文件,使用类似top命令的界面来实时显示的。你可以说说你所知道的其他高端监控工具,但就简单性而言,ngxtop无疑是最好的。简单意味着不可替代。在本指南中,我将解释如何使用ngxtop实时监控NginxWeb服务器。在Linux上安装ngxtop首先在Linux系统中安装依赖库pip(LCTT译注:ngxtop是用python写的)。然后使用以下命令安装ngxtop。$sudopipinstallngxtopngxtop基本用法如下:ngxtop[options]ngxtop[options](print|top|avg|sum)ngxtopinfo下面是一些通用选项。-l:指定日志文件的完整路径(Nginx或Apache2)-f:日志格式--no-follow:处理当前写入的日志文件,而不处理实时新增到日志文件中的日志-t:更新频率-n:显示行号-o:排序规则(默认为访问次数)-a...,--a...:添加表达式(一般为聚合表达式如:sum,avg,min,max等.)到输出。-v:输出详细信息-i:只处理符合规则的记录以下是一些内置变量,其含义不言自明。bodybytessendhttp_refererhttpuseragentremote_addrremote_user请求状态time_local使用ngxtop监控Nginxngxtop默认会从其配置文件(/etc/nginx/nginx.conf)中查找Nginx日志的地址。因此,要监控Nginx,请运行以下命令:$ngxtop这将列出10个Nginx服务,按请求数排序。显示前20个最频繁的请求:$ngxtop-n20获取Nginx的基本信息:$ngxtopinfo可以自定义显示的变量,只需列出需要显示的变量即可。使用“打印”命令显示自定义请求。$ngxtopprintrequesthttp_user_agentremote_addr显示请求最多的客户端IP地址$ngxtoptopremote_addr显示状态码为404的请求$ngxtop-i'status==404'打印请求状态除了Nginx,ngtop还可以处理其他日志文件,比如作为Apache的访问文件。使用以下命令监控Apache服务器:$tail-f/var/log/apache2/access.log|ngxtop-fcommonvia:http://xmodulo.com/2014/06/monitor-nginx-web-server-command-line-real-time.html译者:shisw校对:wxy
