场景
想查看Nginx的实时状态信息,如哪些请求最频繁、哪些IP访问次数多 …… 例如服务器出现带宽持续很高,就需要看下现在哪些请求的流量大
ngxtop
ngxtop就是用来满足这些实时监控需求的,是个非常小巧实用的工具 ngxtop通过分析nginx的访问日志,使用类似top命令的界面实时展示出来
需要注意的是,ngxtop是查看实时状态信息,就是在执行ngxtop命令之后的统计信息,和top一样,不要理解为是对所有日志内容的统计
基本用法 $ ngxtop
结果形式如下
实用案例
查看404状态的请求 $ ngxtop top request_path --filter 'status == 404' 查看响应流量最高的请求 $ ngxtop --order-by 'avg(bytes_sent) * count' 查看访问量最大的IP $ ngxtop --group-by remote_addr 查看状态为4xx或者5xx的请求,同时显示status和http_referer信息 $ ngxtop -i 'status >= 400' print request status http_referer 查看以某字符串开头的请求 ngxtop --filter 'request_path.startswith("/wp")'
参数说明
-l : 指定日志文件的完整路径,默认情况下会读取nginx.conf里指定的访问日志路径 -f : 日志格式 -t : 更新频率,默认2秒 -g : 根据变量 group by,默认变量是 request_path -o : 根据变量 order by,默认变量是 count -h : help,详细的命令参数说明和使用方法,可以用这个参数查看帮助
内置变量
可以对以下内置变量进行操作,例如上面案例中的'status >= 400' bodybytessend http_referer httpuseragent remote_addr remote_user request status time_local
安装
ngxtop的安装需要依赖库 pip 然后使用pip安装 ngxtop $ sudo pip install ngxtop