一、修改配置
修改nginx配置文件,在最后加上这条配置,其实php和nginx是配置在一起的,单独拿出来是为了脚本
server {
listen 127.0.0.1:80;
server_name 127.0.0.1;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
allow 10.1.12.0/24;
deny all;
}
# location ~ ^/(phpfpm_status)$ {
# include fastcgi_params;
# fastcgi_pass unix:/tmp/php-cgi.sock;
# fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
}二、重启nginx
# service nginx restart
三、配置监控扩展
被监控主机端,zabbix_agentd.conf文件中添加上这个:
UserParameter=nginx[*],/etc/zabbix/scripts/nginx_status.py $1
四、将脚本放置在/etc/zabbix/scripts/目录下
chmod +x nginx_status.py
五、脚本
#!/usr/bin/env python
#__*__coding:utf8__*__
import urllib2,sys,os
def Nginx_status():
nginx_stats_dirt = {}
nginx_url = "http://127.0.0.1/nginx_status"
req = urllib2.Request(nginx_url)
response = urllib2.urlopen(req)
request_list = response.read().split("\n")
nginx_stats_dirt["active"] = request_list[0].split()[2]
nginx_stats_dirt["accepts"] = request_list[2].split()[0]
nginx_stats_dirt["handled"] = request_list[2].split()[1]
nginx_stats_dirt["requests"] = request_list[2].split()[2]
nginx_stats_dirt["reading"] = request_list[3].split()[1]
nginx_stats_dirt["writing"] = request_list[3].split()[3]
nginx_stats_dirt["waiting"] = request_list[3].split()[5]
if len(sys.argv) is not 2 or str(sys.argv[1]) not in nginx_stats_dirt.keys():
print "Usage: nginx_stauts.py $1 {active|accepts|handled|requests|reading|writing|waiting}"
exit(1)
else:
print nginx_stats_dirt[str(sys.argv[1])]
if __name__ == ‘__main__‘:
try:
Nginx_status()
except urllib2.URLError,e:
print "%s,there may be something wrong with nginx!" %e本文出自 “LINUX” 博客,请务必保留此出处http://wangpengtai.blog.51cto.com/3882831/1940615
原文:http://wangpengtai.blog.51cto.com/3882831/1940615