098098 发表于 2015-11-26 08:35:35

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}]




大神勿喷!


ybx13218464908 发表于 2015-11-30 17:17:03

一个nginx的状态页显示整个nginx的状态,所以只需要监控一个server就可以了
页: [1]
查看完整版本: Zabbix 监控Nginx_status 自动发现脚本