peibaishi 发表于 2019-1-20 15:05:08

zabbix详解:(四)添加自定义的监控项目并使用

  从安装的第一天,就必然有人会有疑问,默认的监控模板不好用,或者说根本没有自己想要的,这可怎么办呢?没关系,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"
5
#能获取到自己想要的数据就可以了  第三步,在zabbix_web添加新的监控项目:
  老样子了,登录我就不说了,直接就说界面的事了:
  点击配置-模板-创建模板:

http://s3.运维网.com/wyfs02/M02/8A/F0/wKiom1g_moyg_e7fAABhkbEJet8565.png
  先改个名字吧,群组选默认的Templates就好,或者你有自己的爱好就随便了.

http://s4.运维网.com/wyfs02/M02/8A/EC/wKioL1g_mo2w2YgPAAB0h9gwBK4079.png
  点击上面,然后点,就是创建下面两个了.

http://s4.运维网.com/wyfs02/M01/8A/F0/wKiom1g_m4jhBUF5AACWqs5aRWc967.png
  填上信息:
  名称:别搞词不达意就好,会在图形和监控告警里体现的
  类型:没其他特别的设置,默认就好了
  键值:就是刚才在zabbix_agent里面conf.d文件夹配置的键值和脚本函数的名字,对应起来
  信息类型:这个看你的脚本得出的是什么数值,是纯数字还是百分比的浮点数,字符文本什么的都可以,因为我这里是一个整数,所以就是数字(无正负)了.
  数据类型:和上面对应,一般来说当然是十进制了
  单位:有就写,没有也可以不写,类似百分比是%,流量是bps这样
  数据更新间隔:这个看实际情况,无可都认某些监控不宜监控那么频繁,相反有一些则要频繁一些,例如我这个觉得1分钟就够了,某些人觉得要10秒.
  历史数据保留时长和去世数据存储周期就看实际情况了,因为随着你zabbix使用时间的增长,数据量就必然会越来越大,觉得太大了,那就定义短一些.
  其他不用管,直接确定更新就好了,然后再添加一个tomcat的,就成了我上面那个图了.

http://s4.运维网.com/wyfs02/M00/8A/EC/wKioL1g_m4niJwK5AACFXrjebzs762.png

  监控项有了,当然我们还需要看图是吧
  点击监控项隔壁再隔壁的,然后点
http://s4.运维网.com/wyfs02/M02/8A/F0/wKiom1g_oOSCzBk3AABUiUx64ug498.png
  填上信息:
  名称:就是图形的信息了,会再监控图形那里体现

  其他不用管,你们也可以自己测试下,
  直接看-点击,弹出一个新窗口

http://s2.运维网.com/wyfs02/M02/8A/EC/wKioL1g_oOWxSfVrAACFieXRZj4946.png
  选择你想体现在图形上的监控项,这里全选就行了,然后点击,就会返回上面的框,再点击就完事了.
http://s2.运维网.com/wyfs02/M00/8A/F0/wKiom1g_oOjDSOp1AACWlVcr1wA813.png
  添加完图形,我还想他有告警啊,一个合理的需求,我现在的需求是当tomcat进程数不是1的时候就告警.
  还记得监控项隔壁的触发器么?然后我们下面再来看看:
  点击监控项和图形中间的那个-然后点击,然后弹出一个新的对话框

http://s4.运维网.com/wyfs02/M00/8A/F0/wKiom1g_qs7hTmnUAABk47t5gZU940.png
  选择你要触发报警的,又会弹出一个对话框
http://s4.运维网.com/wyfs02/M01/8A/F0/wKiom1g_qs_DJSpJAABy7ylKY38924.png
  这里我们要的是tomcat进程数变成0后的告警,所以选择,然后返回刚才的对话框

http://s4.运维网.com/wyfs02/M02/8A/F0/wKiom1g_qs-iCpTUAACWwsXhuW4029.png
  在选项最右边的小三角下拉,选择你要的触发条件,一般来说都是大于或者小于,又或者是是不等于,自己按需选择了,我不想多说,选完就继续下面的条件

http://s4.运维网.com/wyfs02/M02/8A/EC/wKioL1g_qs-xXntZAAC17UwlY5M682.png
  下面的两个和,这两个配合能使你的报警间隔更灵活,这里不细说,各位自己慢慢测试,得到自己的想要的结果是最重要的.
  最后的实际上就是上面选择的N的意思,所以这里的意思就是:最新的T值不是1,T就是zabbix通过脚本获取到的值,最后点击插入,得到最开头点开触发器的那张图.

http://s4.运维网.com/wyfs02/M00/8A/F0/wKiom1g_qtDznm0vAABRTjmSpp8195.png
  整个监控项目到这里算是添加完成了,但是我们还要添加到服务器配置里才能算真正完成,不然也是用不了,白搭了,下面来看看怎么用
  

  使用自定义的监控项目:
  其实和第二篇说的是一样的,需要添加模板使用,具体请看下面:
  点击配置-主机,选择你要添加这个监控项的主机,跳到第二个界面

http://s3.运维网.com/wyfs02/M02/8A/ED/wKioL1g_um3yW_OFAAFbhya93mo996.png
  点击顶上的,然后右下角需要添加的模板,弹出一个对话框

http://s4.运维网.com/wyfs02/M00/8A/ED/wKioL1g_um6SVoeGAABXvbuGoUU030.png
  选择我们的目标模板,这里就是监测java的模板了,点击选择,返回刚才的对话框

http://s1.运维网.com/wyfs02/M00/8A/F1/wKiom1g_um-Di2FiAADeRyQIDWo875.png
  点击下面的然后点击

http://s1.运维网.com/wyfs02/M00/8A/ED/wKioL1g_unCCz9RtAABdMkhj1uY328.png
  添加完毕,看看成果:
http://s2.运维网.com/wyfs02/M02/8A/ED/wKioL1g_u-LSCFx7AAC7jQTjkIs587.png
  这就算是真的完成了,各位可以自己研究其他监控.

  

  关于windows的添加自定义监控:
  在这个方面我认识不算很深,而且zabbix自带的模板加上zabbix_agent的自发现功能还算强大,已经有大部分想要的监控,所以其实要加的东西不算多.
  他的自动发现已经强大到,你自己定义的服务都能检测出来,流量监控也是自动发现的,想当厉害,唯一遗憾的是在cpu监控方面少了一个百分比,所以我们下面来添加一下.
  这次我就不贴那么多图了,你们知道我说的是地方就可以:
  点击--选择-顶上的-
  填入信息:
  名称:CPU百分比
键值:perf_counter[\Processor(_Total)\% Processor Time]
数据类型:数字的(浮点)
单位:%
数据更新间隔(秒):30
应用集:CPU
  然后点击下面的添加或更新

http://s4.运维网.com/wyfs02/M02/8A/EE/wKioL1g_wszy_v8rAACRjg09eN0457.png
  然后,添加图形,这里不多说了,请参考上面

http://s3.运维网.com/wyfs02/M02/8A/F2/wKiom1g_ws3hAi40AABxLhhpyPQ449.png
  最后,添加触发器,也不多说了,自己去设置吧

http://s1.运维网.com/wyfs02/M00/8A/F2/wKiom1g_ws-BOXKCAAB0X9-rDNI433.png
  看看最后成果
http://s1.运维网.com/wyfs02/M01/8A/F2/wKiom1g_w3qyEcFBAAFp3p7p6D8492.png
  ok,可以用了,这篇就说到这里,剩下的各位慢慢研究.

  




页: [1]
查看完整版本: zabbix详解:(四)添加自定义的监控项目并使用