zabbix_sender自定義監控

曲珂發表於2015-06-15

這裡推薦這個部落格 http://www.ttlsa.com/monitor/zabbix/

在這裡學一遍都不用買書,直接就能玩轉zabbix了

迴歸正題

zabbix相關包下載地址:http://www.zabbix.com/download.php

小小說明一下:

zabbix-release-2.4-1.el6.noarch.rpm 這個包是yum源,裝上這個包就能直接yum安裝zabbix的server和client,源裡沒有的再從上面的地址下載

 zabbix_sender就是不通過zabbix client收集資料,直接向zabbix server傳送資料

使用介紹還是參考這位仁兄的文章 http://www.ttlsa.com/zabbix/zabbix_sender-get-item/

我來個具體例子

監控storm TPS

資料收集指令碼如下

#!/usr/bin/python

import sys
import string
import urllib
import urllib2
import json

# tp_item = sys.argv[1]

topology_summary_url = 'http://10.77.128.101:8080/api/v1/topology/summary'
supervisor_summary_url = 'http://10.77.128.101:8080/api/v1/supervisor/summary'
topology_detail_url = string.Template('http://10.77.128.101:8080/api/v1/topology/${topology_name}?sys=false')

tp_names = json.loads(urllib.urlopen(topology_summary_url).read()).get('topologies')

zabbix_sender_source = open('/tmp/zabbix_sender_source', 'w')
for tp in tp_names:
    tp_detail = json.loads(urllib.urlopen(topology_detail_url.substitute(topology_name = tp.get('id'))).read())
    zabbix_sender_source.write('%s %s %d\n' %('127.0.0.1', tp.get('id') + '-emitted', tp_detail['topologyStats'][0]['emitted']/600))
    zabbix_sender_source.write('%s %s %d\n' %('127.0.0.1', tp.get('id') + '-transferred', tp_detail['topologyStats'][0]['transferred']/600))

zabbix_sender_source.close()

 這裡我使用的是用zabbix_sender讀取檔案的形式

上面的指令碼把資料寫入了/tmp/zabbix_sender_source

檔案內容如下

127.0.0.1 webim_storm-1-0-2-10-1434103565-emitted 1388
127.0.0.1 webim_storm-1-0-2-10-1434103565-transferred 1344
127.0.0.1 nc-push-storm-11-1434106528-emitted 244
127.0.0.1 nc-push-storm-11-1434106528-transferred 205

 格式 : host標示 key value

我用的定時任務推送資料給zabbix server

* * * * * /usr/bin/python /usr/home/quke/zabbix_check_storm.py && /usr/bin/zabbix_sender -z 127.0.0.1 -i /tmp/zabbix_sender_source

 下面是zabbix web端配置

有幾個key就要配置幾個item,這裡我配置了兩個

 然後就可以把模板應用到主機,配置graph

相關文章