从安装的第一天,就必然有人会有疑问,默认的监控模板不好用,或者说根本没有自己想要的,这可怎么办呢?没关系,zabbix和nagios一样,可以自定义监控项目,当然包括报警规则和视图了,也不是很复杂.
添加自定义的监控项目:
操作之前要知道原理:原理是server端调用agent端配置的键值参数调用脚本,然后脚本参数传输给server端,server端写进数据库,然后获取到新的数值再进行处理并在前端显示给用户看.
所以我们需要做的事情有三个:
第一,编写监控脚本
第二,修改zabbix_agent的配置
第三,在zabbix_web添加新的监控项目
请注意,第一二步都是在zabbix_agent端做的,不涉及zabbix_server端,第三步就是web端.
下面我用一个在linux系统下监控java进程的例子来讲解:
第一步,来看看我的监控脚本,相当简单,只是监测java进程的数量和tomcat的数量
#查看脚本 vim checkjava.sh #!/bin/bash #ppp #scripts for java status function jwc { /bin/ps aux |grep java|grep -v grep |wc -l } function ctom { /bin/ps aux |grep java|grep tomcat|wc -l } $1 #运行一下,有9个java进程,1个tomcat进程 bash checkjava.sh jwc 9 bash checkjava.sh ctom 1
第二步,在zabbix_agent添加键值调用脚本配置:
如果你有配这个:
cat /etc/zabbix/zabbix_agentd.conf |grep Include= |grep -v \# Include=/etc/zabbix/zabbix_agentd.conf.d/
那你新的键值调用脚本的配置就可以加载到/etc/zabbix/zabbix_agentd.conf.d/下面,如果没有,就直接添加到/etc/zabbix/zabbix_agentd.conf的最后一行,其实都是一样的,看你喜欢,下面来看事例:
#进入目录 cd /etc/zabbix/zabbix_agentd.conf.d/ #ll一下,这些都是我自定义的监控项 ll total 24 -rw-r--r-- 1 root root 64 Nov 30 13:48 checkjava -rw-r--r-- 1 root root 60 Nov 11 14:16 iostatus -rw-r--r-- 1 root root 56 Nov 10 16:05 redis -rw-r--r-- 1 root root 51 Nov 10 15:46 tcp #其他暂时不研究,来看看这次的目标配置 vim checkjava #monitor java UserParameter=checkjava[*],/shell/checkjava.sh $1 #意思是定义一个键值checkjava,调用/shell/checkjava.sh 这个脚本并传入参数, #然后,不要忘记重启一下zabbix_agent /etc/init.d/zabbix-agent restart
然后,你可以在zabbix_server测试下
#用下面命令调试远程agent键值 zabbix_get -s 10.X.X.X -p10050 -k"checkjava[jwc]" 5 #能获取到自己想要的数据就可以了
第三步,在zabbix_web添加新的监控项目:
老样子了,登录我就不说了,直接就说界面的事了:
点击配置-模板-创建模板:
先改个名字吧,群组选默认的Templates就好,或者你有自己的爱好就随便了.
点击上面<监控项>,然后点<创建监控项>,就是创建下面两个了.
填上信息:
名称:别搞词不达意就好,会在图形和监控告警里体现的
类型:没其他特别的设置,默认就好了
键值:就是刚才在zabbix_agent里面conf.d文件夹配置的键值和脚本函数的名字,对应起来
信息类型:这个看你的脚本得出的是什么数值,是纯数字还是百分比的浮点数,字符文本什么的都可以,因为我这里是一个整数,所以就是数字(无正负)了.
数据类型:和上面对应,一般来说当然是十进制了
单位:有就写,没有也可以不写,类似百分比是%,流量是bps这样
数据更新间隔:这个看实际情况,无可都认某些监控不宜监控那么频繁,相反有一些则要频繁一些,例如我这个觉得1分钟就够了,某些人觉得要10秒.
历史数据保留时长和去世数据存储周期就看实际情况了,因为随着你zabbix使用时间的增长,数据量就必然会越来越大,觉得太大了,那就定义短一些.
其他不用管,直接确定更新就好了,然后再添加一个tomcat的,就成了我上面那个图了.
监控项有了,当然我们还需要看图是吧
点击监控项隔壁再隔壁的<图形>,然后点<创建图形>
填上信息:
名称:就是图形的信息了,会再监控图形那里体现
其他不用管,你们也可以自己测试下,
直接看<监控项>-点击<添加>,弹出一个新窗口
选择你想体现在图形上的监控项,这里全选就行了,然后点击<选择>,就会返回上面的框,再点击<更新>就完事了.
添加完图形,我还想他有告警啊,一个合理的需求,我现在的需求是当tomcat进程数不是1的时候就告警.
还记得监控项隔壁的触发器么?然后我们下面再来看看:
点击监控项和图形中间的那个<触发器>-然后点击<创建触发器>,然后弹出一个新的对话框
选择你要触发报警的<监控项>,又会弹出一个对话框
这里我们要的是tomcat进程数变成0后的告警,所以选择
在<功能>选项最右边的小三角下拉,选择你要的触发条件,一般来说都是大于或者小于,又或者是是不等于,自己按需选择了,我不想多说,选完就继续下面的条件
下面的两个<最后一个>和<排班>,这两个配合能使你的报警间隔更灵活,这里不细说,各位自己慢慢测试,得到自己的想要的结果是最重要的.
最后的
整个监控项目到这里算是添加完成了,但是我们还要添加到服务器配置里才能算真正完成,不然也是用不了,白搭了,下面来看看怎么用
使用自定义的监控项目:
其实和第二篇说的是一样的,需要添加模板使用,具体请看下面:
点击配置-主机,选择你要添加这个监控项的主机,跳到第二个界面
点击顶上的<模板>,然后右下角<选择>需要添加的模板,弹出一个对话框
选择我们的目标模板,这里就是监测java的模板了,点击选择,返回刚才的对话框
点击下面的<添加>然后点击<更新>
添加完毕,看看成果:
这就算是真的完成了,各位可以自己研究其他监控.
关于windows的添加自定义监控:
在这个方面我认识不算很深,而且zabbix自带的模板加上zabbix_agent的自发现功能还算强大,已经有大部分想要的监控,所以其实要加的东西不算多.
他的自动发现已经强大到,你自己定义的服务都能检测出来,流量监控也是自动发现的,想当厉害,唯一遗憾的是在cpu监控方面少了一个百分比,所以我们下面来添加一下.
这次我就不贴那么多图了,你们知道我说的是地方就可以:
点击<配置>-<模板>-选择-顶上的<监控项>-<创建监控项>
填入信息:
名称:CPU百分比
键值:perf_counter[\Processor(_Total)\% Processor Time]
数据类型:数字的(浮点)
单位:%
数据更新间隔(秒):30
应用集:CPU
然后点击下面的添加或更新
然后,添加图形,这里不多说了,请参考上面
最后,添加触发器,也不多说了,自己去设置吧
看看最后成果
ok,可以用了,这篇就说到这里,剩下的各位慢慢研究.