这里推荐这个博客 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 ' %('127.0.0.1', tp.get('id') + '-emitted', tp_detail['topologyStats'][0]['emitted']/600)) zabbix_sender_source.write('%s %s %d ' %('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