添加自定义监控项目,配置邮件告警,测试告警,不发送邮件的问题处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加自定义监控项目,配置邮件告警,测试告警,不发送邮件的问题处理相关的知识,希望对你有一定的参考价值。
笔记内容:
19.12添加自定义监控项目
19.13/19.14配置邮件告警
19.15测试告警
19.16不发送邮件的问题处理
笔记日期:2017-11-20
19.12添加自定义监控项目
自定义的监控项目是用于实现一些特殊的、个性化的监控需求,因为zabbix自带的模板里的监控项目,是不能帮我们做到某个特定的监控的,所以需要自己去自定义一个监控项来完成这种个性化需求。
例如:我现在有一个需求,这个需求是监控某台web服务器80端口的并发连接数量(ESTABLISHED状态的),并绘制出图表。
根据需求分析,首先我们第一步肯定得先通过脚本的方式获得这个连接数量,得到连接数量后还要去zabbix监控中心去创建监控项目,然后再针对这个自定义项目绘制一个图形出来。那么下面就演示如何完成这个需求:
1. 对于第一步,需要到客户端机器上定义脚本:
vim /usr/local/sbin/estab.sh
脚本内容如下:
#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ‘:80 ‘ |grep -c ESTABLISHED
获取80端口的连接数量就一条命令就可以搞定了,所以这个脚本很简单:
给这个脚本设置权限:
chmod 755 /usr/local/sbin/estab.sh
然后编辑zabbix客户端的配置文件:
vim /etc/zabbix/zabbix_agentd.conf
增加内容如下:
UnsafeUserParameters=1 //表示使用自定义脚本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh
//自定义监控项的key为my.estab.count,后面的[*]里面写脚本的参数*表示没有参数,如果没有参数则可以省略,脚本路径为/usr/local/sbin/estab.sh
重启zabbix-agent服务:
systemctl restart zabbix-agent
接着去服务端验证一下这个自定义的脚本有没有被识别,命令如下:
zabbix_get -s 192.168.77.128-p 10050 -k ‘my.estab.count‘
能得到数字证明没问题,如果脚本有问题的话,是不会得到数字的。
完成以上的操作后,第二步就是到zabbix监控中心(浏览器)配置增加监控项目:
剩下的我都选择了默认,你可以根据自己的需求选择。
添加完监控项后,给这个监控项做一个图形:
预览看看有没有问题:
创建触发器,配置当并发数量到达某一个数量时就会告警:
我设置的规则如下,这个规则表示:并发链接数量大于200就告警:
然后其他的默认即可。
19.13/19.14配置邮件告警
在Zabbix服务端中可以设置邮件告警,当被监控的主机宕机了或者达到触发器预设值时,就会自动发送报警邮件到指定的一个第三方邮箱,这个邮箱可以使用163或者QQ邮箱(因为我只尝试过这两个邮箱),我这里使用163邮箱作为演示。
1. 登录邮箱,设置开启POP3、IMAP、SMTP服务,因为要在服务器上调用第三方的邮箱,需要这个邮箱开启这些服务,登录后点击设置可以看到这些服务的选项:
设置服务,第一次设置的话,会需要短信验证,然后还会要求你设置一个密码:
进行短信验证:
设置密码:
完成:
这个设置的密码也就是授权码要记住,发送邮箱的时候需要这个密码。
到监控中心,创建一个报警媒介类型:
{ALERT.SENDTO} 参数定义第三方的邮件地址
{ALERT.SUBJECT} 参数定义主题
{ALERT.MESSAGE} 参数定义邮件内容
在服务端上查看zabbix配置文件,看看定义的脚本文件存放的路径是什么:
vim /etc/zabbix/zabbix_server.conf
在文件中搜索AlertScriptsPath:
5. 得知脚本文件的存放路径后,在该路径下创建报警脚本mail.py:
vim /usr/lib/zabbix/alertscripts/mail.py
脚本内容从以下网址可获得:
https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py
修改以下几处内容:
gserver = ‘smtp.163.com‘ (因为我使用的是163邮箱)
6. 更改脚本文件的权限:
chmod 755 /usr/lib/zabbix/alertscripts/mail.py
测试一下这个脚本:
cd /usr/lib/zabbix/alertscripts
然后到你的邮箱里看看是否有收到这个邮件,能正常收到就没问题:
如果没有收到邮件的话,就得检查检查你的脚本是否有问题。
以上操作完成后,需要到监控中心创建一个用户用来发送邮件:
然后再添加报警媒介:
接着就是到用户群组中修改权限:
如果你这一步权限没有修改对的话,你是收不到告警邮件的。
修改完群组权限后,到你创建的用户的权限界面里,看看是否已经拥有所有组的读写权限:
用户配置完后,需要去创建一个动作,动作就是触发器触发后会发生的行为动作,这个动作就是发邮件的动作:
然后操作界面里还需要配置一下默认信息和操作:
默认信息的内容如下:
HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE} {EVENT.TIME}
LEVEL:{TRIGGER.SEVERITY}
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
恢复操作界面里的默认信息也需要重新配置,配置内容如下:
HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE} {EVENT.TIME}
LEVEL:{TRIGGER.SEVERITY}
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
完成:
19.15测试告警
到目前为止,邮件告警就配置好了,接下来就是测试一下这个告警是否正常,首先创建一个自定义的触发器:
条件:
然后到监控中心的仪表板中,等一会就会发现出现警告信息:
如图,这是我们刚刚创建的触发器告的警,并且动作显示的是完成,代表邮件已经发送了,如果显示的是失败的话,那就是邮件发送失败了,发送失败的情况一般有以下几个原因:
媒介类型
动作的默认信息
操作和恢复操作的默认信息
脚本文件不够权限
没有给用户添加媒介
邮箱里的服务没有打开
触发器
网络问题
一般动作显示失败的话都会有一个具体的提示,根据提示排查错误快一些。
我这里是发送成功的,那么到邮箱里看看邮件内容:
因为监控项的名称是中文的,所以显示的会是乱码。
关于设置主动或被动模式:
在监控项里设置,默认是被动,有个主动式字样的就是主动模式。
19.16不发送邮件的问题处理
检查发送邮件的脚本,先在命令行里测试一下是否能正常收到。
检查脚本文件的权限,确保能被zabbix用户调用
检查报警媒介中的配置
检查用户中是否有添加报警媒介,并且要具有读写权限
检查动作、操作、恢复操作中的配置
如果从头到尾都仔细检查了,实在是无法收到邮件的话,那就是你搭建的zabbix有问题了,重新恢复快照,再安装一遍。
本文出自 “zero” 博客,请务必保留此出处http://zero01.blog.51cto.com/12831981/1983610
以上是关于添加自定义监控项目,配置邮件告警,测试告警,不发送邮件的问题处理的主要内容,如果未能解决你的问题,请参考以下文章
在zabbix上添加自定义监控项目配置告警且发送告警邮件到指定邮箱
linux监控平台搭建添加自定义监控项目配置邮件告警测试警报不发邮件的问题处理