一、修改配置
修改nginx配置文件,在最后加上这条配置,其实php和nginx是配置在一起的,单独拿出来是为了脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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;
deny all;
}
# location ~ ^/(phpfpm_status)$ {
# include fastcgi_params;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
# }
}
|
二、重启nginx
1
|
# service nginx restart
|
三、配置监控扩展
被监控主机端,zabbix_agentd.conf文件中添加上这个:
1
|
UserParameter=nginx[*],
/etc/zabbix/scripts/nginx_status
.py $1
|
四、将脚本放置在/etc/zabbix/scripts/目录下
1
|
chmod
+x nginx_status.py
|
五、脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#!/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
|
本文转自 wangpengtai 51CTO博客,原文链接:http://blog.51cto.com/wangpengtai/1940615,如需转载请自行联系原作者