一、修改配置
修改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