当前位置:  首页  >  服务器技术  >  WebServer  >  Nginx

ngxtop:在命令行实时监控Nginx的神器

Nginx网站服务器在生产环境中运行的时候需要进行实时监控。实际上,诸如Nagios,Zabbix,Munin的网络监控软件是支持Nginx监控的。

Nginx网站服务器在生产环境中运行的时候需要进行实时监控。实际上,诸如Nagios, Zabbix, Munin 的网络监控软件是支持 Nginx 监控的。


如果你不需要以上软件提供的综合性报告或者长期数据统计功能,只是需要一种快速简便的办法去监控 Nginx 服务器的请求的话,建议你采用一个叫 ngxtop 的命令行工具。


ngxtop 从界面和名称都借鉴了著名的top命令。ngxtop 是通过分析 Nginx 或者其他的日志文件,使用类似 top 命令的界面实时展示出来的。


如何使用 ngxtop 实时监控 Nginx 网站服务器?


Linux 上安装 ngxtop


首先在 Linux 系统中安装依赖库 pip(译注:ngxtop是用python编写的)。


然后使用如下命令安装 ngxtop。


$ sudo pip install ngxtop


ngxtop 使用


基本使用方法如下:


ngxtop [options]

ngxtop [options] (print|top|avg|sum)

ngxtop info


这里是一些通用选项。


  • -l : 指定日志文件的完整路径 (Nginx 或 Apache2)

  • -f : 日志格式

  • –no-follow: 处理当前已经写入的日志文件,而不是实时处理新添加到日志文件的日志

  • -t : 更新频率

  • -n : 显示行号

  • -o : 排序规则(默认是访问计数)

  • -a …, –a …: 添加表达式(一般是聚合表达式如: sum, avg, min, max 等)到输出中。

  • -v: 输出详细信息

  • -i : 只处理符合规则的记录


以下是一些内置变量,他们的含义不言自明。


  • bodybytessend

  • http_referer

  • httpuseragent

  • remote_addr

  • remote_user

  • request

  • status

  • time_local


使用 ngxtop 监控 Nginx


ngxtop 默认会从其配置文件 (/etc/nginx/nginx.conf) 中查找 Nginx 日志的地址。所以,监控 Nginx ,运行以下命令即可:


$ ngxtop


这将会列出10个 Nginx 服务,按请求数量排序。


显示前20个最频繁的请求:


$ ngxtop -n 20


获取Nginx基本信息:


$ ngxtop info


你可以自定义显示的变量,简单列出需要显示的变量。使用 “print” 命令显示自定义请求。


$ ngxtop print request http_user_agent remote_addr

显示请求最多的客户端IP地址

$ ngxtop top remote_addr

显示状态码是404的请求


$ ngxtop -i 'status == 404' print request status

除了Nginx,ngtop 还可以处理其他的日志文件,比如 Apache 的访问文件。使用以下命令监控 Apache 服务器:


$ tail -f /var/log/apache2/access.log | ngxtop -f common


吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有