這裡推薦這個部落格 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