Zabbix 监控Nginx_status 自动发现脚本
在网上看到了许多监控nginx状态的,发现大多都配置都比较复杂,我也写了一个自动发现的脚本,欢迎拍砖nginx_status 具体的配置这里就不多说了,这里假装你已经配好了!
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
27
28
29
30
31
32
33
34
35
36
37
38
#coding=utf-8
import urllib,urllib2,urllib2
import sys,json
url="http://112.124.32.164/nginx_status"
li=["ActiveConnections","Reading","Writing","Waiting"]
js=[]
if len(sys.argv) < 2:
for stat in li:
js += [{'{#NGINXSTATUS}':stat}]
print json.dumps({'data':js},sort_keys=True,indent=4,separators=(',',':'))
else:
arg=sys.argv
argm="%s:" % arg
request = urllib2.Request(url)
response = urllib2.urlopen(request)
result=response.readlines()
loop=0
dic={}
for i in result:
loop += 1
if loop == 1:
ActiveConnections=int(i.split(":"))
dic['ActiveConnections:']=ActiveConnections
elif loop == 4:
Status=tuple(i.split(" "))
cloop=0
for st in Status:
cloop += 1
if cloop == 2 :
dic["Reading:"]=st
elif cloop == 4:
dic["Writing:"]=st
elif cloop == 6:
dic["Waiting:"]=st
print dic
zabbix_agent 自定义键值配置
1
UserParameter=nginx.status[*], /usr/bin/python /etc/zabbix/nginx_statu.py $1
然后自动发现键值为
1
nginx.status
项目原型键值为
1
nginx.status[{#NGINXSTATUS}]
大神勿喷!
一个nginx的状态页显示整个nginx的状态,所以只需要监控一个server就可以了
页:
[1]