标签:添加自定义监控项目 配置邮件告警 测试告警 zabbix 不发送邮件的问题处理
笔记内容:
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 不发送邮件的问题处理
原文地址:http://zero01.blog.51cto.com/12831981/1983610