一、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

到此这篇关于nginx实时请求监测的项目实践的文章就介绍到这了,更多相关nginx实时请求监测内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论