youdianman 发表于 2013-7-30 09:07:15

使用zabbix discovery和traps批量监控nginx、redis等

很多同行都推荐了一个运维系统zabbix,我也开始将服务器监控逐渐迁移到zabbix上了,越使用越觉得zabbix好用,特别是discovery功能,真是好东东啊!   起因是部署服务的同事,发给我了一份监控需求,总共有13个redis、9个memcache、30+个tomcat、8个nginx需要监控,看着长长的单子,我觉得这就是个杯具啊!特别是某些机器上装了2~4个redis,用过cacti监控redis的都知道,除了第一个能多选,后面的只能一个个添加图形,这要是挨个点下来,手都得断了,当然会用cacti脚本的牛人是能搞定的,可惜我不是牛人啊!   果断转移到zabbix,用discovery创建监控。不废话了,以监控nginx为例,跟大家分享下。第一步:建Template

图片其他部分都是默认,而且涉及公司信息,就不贴出来了
第二步:建discovery第三步:建item prototypes      这是其中一个数值,其余的类似,没贴的部分都是默认第四步:加trigger、加graph,和加item都类似,我就偷个懒,不贴图了第五版:把要监控的nginx所在的服务器link刚才的Template,也不用我贴图了吧


   页面上的操作就这些了,下面就该写脚本了。因为要给公司服务器信息保密,我就不贴脚本了。其实脚本都很简单,大家分分钟就能写出来。第一个脚本:既然是要通过traps添加,肯定得有个发送traps的脚本喽,这个脚本很简单:先产生这样的输出:{
"data":[
       {"{#NGX_PORT}":"12001"},       {"{#NGX_PORT}":"12002"}    ]
}'再用zabbix_sender发送到zabbix server/usr/local/zabbix/bin/zabbix_sender -c /usr/local/zabbix/etc/zabbix_agentd.conf -k nginx.port.discovery -v -s $nginxhost -o $portstr第二个脚本:获得nginx status数据,并用zabbix_sender发送curl $nginxsta_url获得数据,并生成这样一个txt:   hostname nginx.write values
   .....再用zabbix_sender 发送这个txt即可。这样发送数据的效率比较高,当监控项多的时候就很明显了。
   贴上两个模版,希望对大家有用

cxg518 发表于 2013-7-30 13:20:08

学习了,谢谢分享、、、

nihaogirl 发表于 2013-7-30 14:17:07

路过,学习下

zhuyumu 发表于 2013-7-30 16:58:50

自从我变成了狗屎,就再也没有人踩在我头上了。

违法℃玩家 发表于 2013-7-30 17:30:26

人生不能像做菜、把所有的料都准备好才下锅!

wuaji 发表于 2013-7-30 17:51:46

写的真的很不错

色粉盒撒娇 发表于 2013-7-30 21:28:49

长大了娶唐僧做老公,能玩就玩一玩,不能玩就把他吃掉。
页: [1]
查看完整版本: 使用zabbix discovery和traps批量监控nginx、redis等