zabbix自定义监控项

4-08 1,039 views

从zabbix安装的第一天,就必然有人会有疑问,默认的监控模板不好用,或者说根本没有自己想要的,这可怎么办呢?没关系,zabbix和nagios一样,可以自定义监控项目,当然包括报警规则和视图了,也不是很复杂.

添加自定义的监控项目:

操作之前要知道原理:原理是server端调用agent端配置的键值参数调用脚本,然后脚本参数传输给server端,server端写进数据库,然后获取到新的数值再进行处理并在前端显示给用户看.

所以我们需要做的事情有三个:

第一,编写监控脚本

第二,修改zabbix_agent的配置

第三,在zabbix_web添加新的监控项目

请注意,第一二步都是在zabbix_agent端做的,不涉及zabbix_server端,第三步就是web端.

下面我用一个在linux系统下监控nginx进程的例子来讲解:

第一步,来看看我的监控脚本,相当简单,只是监测nginx进程的数量:

# cat /shell/check_nginx.sh
#!/bin/bash
#scripts for nginx status
function nginx (){
ps -ef | grep -v grep|grep “nginx:” | wc -l

}
$1

第二步,在zabbix_agent添加键值调用脚本配置:

cat /etc/zabbix/zabbix_agentd.conf |grep Include= |grep -v \#

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/.conf.d/   ---打开并修改下这个includ路径

那你新的键值调用脚本的配置就可以加载到/etc/zabbix/zabbix_agentd.conf.d/下面

cd /etc/zabbix/zabbix_agentd.conf.d/

vim checknginx

#monitor nginx
UserParameter=checknginx[*],/shell/check_nginx.sh $1
#意思是定义一个键值checkjava,调用/shell/checkjava.sh 这个脚本并传入参数,
#然后,不要忘记重启一下zabbix_agent

或者直接在/etc/zabbix/zabbix_agentd.conf最后添加:

UserParameter=checknginx[*],/shell/check_nginx.sh $1   #这一行也行 ,看你自己喜欢哪种方式

/etc/init.d/zabbix-agent restart

#用在zabbix_get命令调试远程agent键值
如果没有这个命令的话,做个链接就行了
ln -s /usr/local/zabbix/bin/zabbix_get /usr/sbin/zabbix_get
# zabbix_get -s 127.0.0.1 -p10050 -k “checknginx[nginx]”          其中地址是agent(脚本所在的zabbix_agent的ip)
2                                                                                                            返回2 说明nginx启动正常,有2个进程
#能获取到自己想要的数据就可以了

第三步,在zabbix_web添加新的监控项目:

下面开始贴图模式了:

点击配置-模板-创建模板:

先改个名字吧,群组选默认的Templates就好,或者你有自己的爱好就随便了.(如果你这将模板用于主机了,下面有个主机链接该模板的步骤就可以省略了,到了那一步我会说明的)

点击上面<监控项>,然后点<创建监控项>,就是开始创建了

填上信息:

名称:别搞词不达意就好,会在图形和监控告警里体现的

类型:没其他特别的设置,默认就好了

键值:就是刚才在zabbix_agent里面conf.d文件夹配置的键值和脚本函数的名字,对应起来

信息类型:这个看你的脚本得出的是什么数值,是纯数字还是百分比的浮点数,字符文本什么的都可以,因为我这里是一个整数,所以就是数字(无正负)了.

数据类型:和上面对应,一般来说当然是十进制了

单位:有就写,没有也可以不写,类似百分比是%,流量是bps这样

数据更新间隔:这个看实际情况,无可都认某些监控不宜监控那么频繁,相反有一些则要频繁一些,例如我这个觉得30s就够了,某些人觉得要10秒.

历史数据保留时长和去世数据存储周期就看实际情况了,因为随着你zabbix使用时间的增长,数据量就必然会越来越大,觉得太大了,那就定义短一些.

其他不用管,直接确定更新就好了

监控项有了,当然我们还需要看图是吧

点击监控项隔壁再隔壁的<图形>,然后点<创建图形>

填上信息:

名称:就是图形的信息了,会再监控图形那里体现

其他不用管,你们也可以自己测试下,

直接看<监控项>-点击<添加>,弹出一个新窗口

选择你想体现在图形上的监控项,这里全选就行了,然后点击<选择>,就会返回上面的框,再点击<更新>就完事了.

添加完图形,我还想他有告警啊,一个合理的需求,我现在的需求是当nginx进程数是0的时候就告警.

还记得监控项隔壁的触发器么?然后我们下面再来看看:

点击监控项和图形中间的那个<触发器>-然后点击<创建触发器>,然后弹出一个新的对话框

选择你要触发报警的<表达式>添加按钮,又会弹出一个对话框

下面的两个<最后一个>和<排班>,这两个配合能使你的报警间隔更灵活,这里不细说,各位自己慢慢测试,得到自己的想要的结果是最重要的. 当N为0时,触发器触发

整个监控项目到这里算是添加完成了,但是我们还要添加到服务器配置里才能算真正完成,不然也是用不了,白搭了,下面来看看怎么用

 

下面是使用主机添加模块(上面已经添加了的话,这步可以省略)

点击配置-主机,选择你要添加这个监控项的主机,跳到第二个界面

点击顶上的<模板>,然后右下角<选择>需要添加的模板,弹出一个对话框

添加完毕,最后看看监控成果:

<监测中><图形><主机><nginx进程>

可以把nginx关闭了,测试下报警,设置了微信报警的话会通过微信报警的!

Prometheus监控系统

前言:prometheus作为目前流行的一套监控系统,主要由三大件组成 prometheus(主监控服务)node_exporter(指标采集服务)Alertmanager(报警管理服务)Prome...

阅读全文

为Kubernetes v1.5.2版本安装dashboard图形界面

一、前言 dashboard是一个图形化管理界面,由于我这边的Kubernetes v1.5.2比较老,按官网的安装方法没有效果,现在试试手动安装,使用下面2个yaml文件安装 ...

阅读全文

k8s简单部署

K8s中文手册地址:https://www.kuboard.cn/learning/k8s-basics/kubernetes-basics.html#kubernetes%E5%8A%9F%E8%83%BD   这边安装的Kubernetes v1.5.2 比较...

阅读全文

欢迎留言