转载自 https://linux.cn/article-3205-1.html


1 linux 上面安装ngxtop

yum -y install python-pip; pip install ngxtop

2 ngxtop的使用

这里是一些通用选项。

  • -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

3 ngxtop监控nginx

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

1)ngxtop 

如图

wKiom1i7g0aCuCL8AAAmI9NWd6Q230.png-wh_50

2)ngxtop -n 20

wKioL1i7g7_zFCrdAAVRUH74jGw679.png-wh_50


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

3)ngxtop print request http_user_agent remote_addr

wKiom1i7hEqSTO_vAAeS_PSINTM683.png-wh_50

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

4)ngxtop top remote_addr

显示状态码是404的请求

5) ngxtop -i 'status == 404' print request status

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

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