文章目录
一、ngxtop
1、ngxtop介绍
ngxtop
是一个实时命令行工具,可以分析nginx
访问日志,以表格形式将http
请求的主要指标直观展示。ngxtop
将nginx
的访问请求数据实时动态展示,并支持按字段过滤请求。
2、安装
centos环境安装
# 安装python
yum install epel-release
yum install python-pip
# 安装ngxtop
pip install ngxtop
ubuntu环境安装,测试系统为Ubuntu 24.04.2 LTS
apt upgrade -y
apt install python3
sudo apt install pipx
pipx ensurepath
source ~/.bashrc
pipx install ngxtop
3、参数说明
-c
:指定nginx
配置文件,以从中解析log_format
和access_log
路径。如ngxtop -c /usr/local/nginx/conf/nginx.conf
-i
:添加过滤条件。如ngxtop -c /usr/local/nginx/conf/nginx.conf -i 'status == 200'
-p
:添加过滤条件,与-i
的区别是-p
在读取日志前过滤,不匹配的行不会读取,-i
是在读取日志后过滤,需要读取全部日志行。-l
:指定access-log
文件。如ngxtop -l /usr/local/nginx/logs/access_log.log
-f
:指定nginx
日志格式,与log_format
指令定义的格式一致。--no-follow
:默认情况ngxtop
只会解析最新的访问日志,此参数可以强制解析access-log
的当前内容。如ngxtop -c /usr/local/nginx/conf/nginx.conf --no-follow
-t
:在实时监控模式下,数据刷新时间间隔,默认2秒。如ngxtop -c /usr/local/nginx/conf/nginx.conf -t 1
-g
:group by
分组字段,默认按request_path
字段分组。如按客户端IP分组:ngxtop -c /usr/local/nginx/conf/nginx.conf -t 1 -g remote_addr
-w
:对分组结果的筛选字段,类似sql
的having
效果。如ngxtop -c /usr/local/nginx/conf/nginx.conf -w 'avg_bytes_sent > 30' -t 1
-o
:指定排序字段。如ngxtop -c /usr/local/nginx/conf/nginx.conf -o count -t 1
-n
:设置显示的记录条数,默认10条。如ngxtop -c /usr/local/nginx/conf/nginx.conf -o count -t 1 -n 5
-a
:在分析结果中添加聚合字段,如sum
、avg
、min
、max
等字段。-v
:启用详细输出。-d
:调试信息,打印每一行及解析记录。-h
:打印帮助信息。--version
:打印版本信息。
二 、测试
1、指定配置文件
ngxtop -c /usr/local/nginx/conf/nginx.conf
2、加过滤条件
ngxtop -c /usr/local/nginx/conf/nginx.conf -i 'status == 200'
3、解析当前access_log
ngxtop -c /usr/local/nginx/conf/nginx.conf --no-follow
4、指定分组条件
ngxtop -c /usr/local/nginx/conf/nginx.conf -t 1 -g remote_addr
5、设置刷新时间为1秒
ngxtop -c /usr/local/nginx/conf/nginx.conf -t 1
6、排序
ngxtop -c /usr/local/nginx/conf/nginx.conf -o count -t 1
7、显示前5个结果
ngxtop -c /usr/local/nginx/conf/nginx.conf -o count -t 1 -n 5