Linux使用ngxtop实现Nginx实时监控
置顶
xzqhgw点com 发布于2017-10-21 16:06 浏览:590 回复:17
3
收藏

如哪些请求最频繁、哪些IP访问次数多.例如服务器出现带宽持续很高,就需要看下现在哪些请求的流量大。

ngxtop
ngxtop就是用来满足这些实时监控需求的,是个非常小巧实用的工具

ngxtop通过分析nginx的访问日志,使用类似top命令的界面实时展示出来

需要注意的是,ngxtop是查看实时状态信息,就是在执行ngxtop命令之后的统计信息,和top一样,不要理解为是对所有日志内容的统计

查看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
这算是服务器优化分析中比较实用的,之前很多前辈都写了对应的日志,我这里记载下,不喜勿喷,当然还是很适合小白的,说到底,不论是小站还是大站,只要有一台可以折腾的小水管,这就是一技巧,我们还是要靠自己,靠别人也许并不是那么靠谱呢!

收藏
点赞
3
个赞
共17条回复 最后由想123666回复于2018-07-12 21:48
#18想123666回复于2018-07-12
#7 AI最前线回复
很棒,期待一起探讨出完善的落地方案

期待期待期待

0
#17想123666回复于2018-07-12
#3 756665228回复
可以呀。都来技术贴了

确实高端了,努力学习!

0
#16荒墨丶迷失回复于2018-07-11
#15 想123666回复
实时监控还在创新吖

看看哪位小伙伴 还能联系上这位楼主 再创新创新

1
#15想123666回复于2018-07-09
#12 爱上主丽叶回复
技术贴厉害了,小白猿表示受教了。

实时监控还在创新吖

0
#14想123666回复于2018-07-09

真心感谢像这位楼主一样默默奉献知识的朋友

0
#13想123666回复于2018-07-09

好高端,为楼主打电话

0
#12爱上主丽叶回复于2018-04-25

技术贴厉害了,小白猿表示受教了。

0
#11人间月天回复于2018-04-21
#10 金天皇上回复
头像不错

。呃,好犀利的眼神。。。

0
#10金天皇上回复于2018-04-21

头像不错

0
#9酩酊醉酉回复于2018-04-11

好厉害的技术贴

0
#8荒墨丶迷失回复于2017-11-28

不论是小站还是大站,只要有一台可以折腾的小水管,这就是一技巧,我们还是要靠自己,靠别人也许并不是那么靠谱呢!

这句话真不错,楼主还在更新吗?

0
#7AI最前线回复于2017-11-27

很棒,期待一起探讨出完善的落地方案

0
#6笔墨哥回复于2017-10-26

不错的技术贴呀。感谢分享

0
#5月光下的眼泪4回复于2017-10-24

凡事还是靠自己好

0
#4月光下的眼泪4回复于2017-10-24

厉害厉害

0
#3756665228回复于2017-10-21

可以呀。都来技术贴了

1
#2__________左手回复于2017-10-21

厉害了, 有应用嘛

0
TOP
切换版块