@[toc]
🏆前言
有的时候zabbix提供的监控项目,不能满足我们生产环境下的监控需求,此时我们就要按照zabbix的规范自定义监控项目,来达到监控的目的。
🥈定义监控项介绍
监控项就是监控项目,监控指标,具体的监控内容。
在添加主机时我们会选择关联模板,模板中自带很多监控项,但是很多时候我们需要监控的监控项模板中没有,此时需要自定义监控项。
** 自定义监控项的步骤可以分为:取值,配置,测试,添加。
取值和配置在客户端进行,测试在服务端进行,添加在web页面进行**
🥇任务
下面给大家举例一个:自定义监控一个进程,如果监控到该进程则不报警;如果没有监控到,则报警发送邮件;如果报警处理后,恢复监控,则通知发送邮件。
🥈客户端
🥉取值
ps -ef | grep -v grep | grep -E cs.jar | wc -l
1
🥉配置
在被监控端的agent配置文件中添加配置
#进入zabbix客户端
vi /etc/zabbix/zabbix_agentd.conf
#寻找UserParameter=键,监测脚本或者命令
#zabbix监控项是以键值对的形式定义的,cs为键,也就是监控项的名称,取值命令为值;
#大概在296行,添加
UserParameter=cs,ps -ef | grep -v grep | grep -E cs.jar | wc -l
#保存退出,重启客户端
systemctl restart zabbix-agent.service
🥈服务端
先看看服务端有没有安装zabbix-get这个命令,没有的话,安装一下即可
yum -y install zabbix-get
zabbix_get:模拟zabbix_server获取agent数据
🥉测试
测试在服务端使用zabbix_get命令实现
#-s 指定客户端ip
#-k 指定客户端配置文件里设置的键
[root@localhost ~]# zabbix_get -s 192.10.2.112 -k cs
1
这时服务端是可以获取到客户端的值的,说明配置成功,配置完之后必须要重启客户端;然后接下来就是添加监控项;
注意:不管取到0或者1都是配置成功了,如果没有配置成功会报错:ZBX_NOTSUPPORTED: Unsupported item key.;
🥈web页面
🥉添加监控项
1.登陆web界面,配置——主机——创建主机
选择主机,并填写以下红框部分。主机名称:与agent配置文件中Hostname保持一致,可见名称:自定义,群组:选择一个或者新建一个,ip地址:一般为内网ip,如果需要走公网监控则填写公网ip
2.监控项——创建监控项
主机里要选中你监控的那台客户端
按下图进行填写,最后选择添加即可
3.查看监控项的结果
监测——最新数据
🥉添加触发器
监控项创建完我们来创建触发器
点击触发器
创建触发器
按照下图来做就可以
还是设置0比较好,>1的话有点问题。
恢复表达式同样,只不过结果有些不同,可以写成=1就恢复。
🥉添加报警媒介
管理——报警媒介类型
可以选择Email
注意:密码不是你的163或者qq密码,是邮箱内的smtp码,这里我们来用qq邮箱来举例
qq邮箱生成smtp码
发送短信,获取授权码,返回zabbix放到密码里就ok了。
生成smtp码之后,填写密码,保存即可。
🥉设置用户和报警媒介
管理——用户
用户直接用超级管理员即可
添加报警媒介
可以用qq邮箱,也可以用163邮箱
点击添加,完成
切记一定要点添加或者更新。
🥉添加动作
我们来勾选Custom message,告警和恢复的主题和消息,我们放到了这两张图的下面。
故障:
恢复:
故障:
故障{TRIGGER.STATUS},服务器名:{HOST.NAME}发生: {TRIGGER.NAME}故障!
告警主机:{HOST.NAME}
告警主机IP地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复:
恢复{TRIGGER.STATUS}, 服务器名:{HOST.NAME}: {TRIGGER.NAME}已恢复!
恢复主机:{HOST.NAME}
恢复主机IP地址:{HOST.IP}
恢复时间:{EVENT.DATE} {EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息: {TRIGGER.NAME}
恢复项目:{TRIGGER.KEY1}
恢复问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
至此就配置完成,我们开始测试
🥇测试告警和恢复告警
为了测试我先把jar包杀掉;
等待发送邮件和告警
告警就成功了
接下来就是恢复告警了
这样整套自定义监控就完成啦,包括发送邮件告警。