最近一个朋友说他VPS上的网站访问量一高VPS就会丢包,整个网站都不能正常访问了。问了下他的网站现在使用的Apache来提供Web服务。为了提高网站的负载能力,就将他VPS上的网站运行环境迁移到Nginx下来。效果感觉还不错,网站响应速度明显比原来快了很多。
为了更直观的了解Nginx的运行情况,决定对Nginx进行一下实时监控,首先想到的使用监控宝来对Nginx进行监控。
编译Nginx的时候增加–with-http_stub_status_module 选项,很容易就可以得到Nginx的统计信息。
然后去监控宝里新建一个服务监控任务,跑了一天感觉效果不是多好。首先监控宝的免费用户的更新周期为15分钟,时间跨度太大,没办法知道短时间内的访问高峰,跟实际的数据差距比较大。另外就是监控宝服务器获取nginx信息经常失败,中间出现大量的空白。本来更新周期就很长,连续几个周期获取不到数据一两个小时都过去了。果断放弃。
接下来想到的是Cacti,搭建倒是不难,功能也非常的强悍,导入插件以后几乎可以监控服务器的各项指标。但是只监控一个单一的项目感觉有点大材小用了,而且貌似对中文的支持也不是太好。
最后决定使用python脚本在VPS上直接对nginx的状态数据进行整理,然后使用rrdtool存储监控数据并画出监控图形,再把输出的图片放到一个可以访问的网站目录下面,配合几个简单的html文件就可以方便的获得Nginx的运行状态信息了。
经过几个小时(一边查资料,一边写脚本)的努力,一个简单的监控程序就这么诞生了,可以按天、周、月、年统计Nginx的连接状态信息跟请求数量信息,下面是几张rrdtool生成的图片,留个纪念
0 条评论。