zabbix_sender自定义监控

这里推荐这个博客 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

posted @ 2015-06-15 17:31  txwsqk  阅读(2387)  评论(1编辑  收藏  举报