Linux中Nginx的实时监控

jackxiang 2016-3-31 11:53 | |
背景:现在流行nginx,于是安装一个监控可能没有必要,但是机器多可能还是有必要装一个agent之类的,这种小工具一般有个三五台服务器可以用用,大型的还得自己搞一套体系才行。

场景

想查看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

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/8605/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]