之前也找过一些网上介绍的办法,利用linux自带的邮件发送工具,通过配置脚本的方式来发送邮件;但是经过试验后发现,网上的方式只适用于zabbix-server直接安装在linux根目录下;如果zabbix-server是用docker来跑的话,次方法不可用(也有可能是技术菜,没有解决问题)
下面是我利用zabbix自带的邮件发送模块(mail)配置的报警机制,初步试验都成功了,后续如有新发现会持续更新此贴:
(一)、首先第一步,WEB端直接添加报警媒介,我这里的图是本地调试时用的qq邮箱,真实使用的时候可以自己申请一个邮箱
这里有几点需要注意的:
(1)不要使用SSL链接,这个协议不太稳定,我调试的时候经常会验证失败
(2)配置发送邮箱的时候把邮箱的POP3/SMTP以及IMAP/SMTP服务开启;此服务是用于外部邮箱发送和接受邮件用的;不开启无法继续进行下去;
(3)开启第二步所说的服务时,会生成一个授权码,这个授权码是用于截图中的“密码”;这个可以不用记住密码,应该授权码可以获取多次,如果不记得了直接重新获取一下授权码然后再去报警媒介里面更新密码就好
顺带提一下,不知道怎么开启邮箱SMTP服务的,直接百度就好~
(二)、配置完报警媒介之后找到“用户”选择想要用来接收邮件的用户组或者某一个用户;进入到用户中,展开此用户的报警媒介
在这里可以直接添加新的报警媒介,配置邮箱地址,这里的邮箱是用来接收邮件的
(三)、上述2步结束后,找到“配置”项中的“动作”,创建一个新“动作”,下面开始配置动作:
(1)自定义动作名称,配置触发条件(触发条件可以指定某一个触发器,也可以指定某一个服务器主机),注意多个条件时,更改计算方式为“或”
(2)然后就需要配置操作(定义触发报警时邮件发送方式以及内容)
以下是我自定义的邮件内容:
报警时间 {EVENT.TIME} - {EVENT.DATE}
触发器名称: {TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}服务器: {HOST.NAME}严重程度: {TRIGGER.SEVERITY}事件 ID: {EVENT.ID}
{TRIGGER.URL}
(3)同理配置恢复操作
以下是自定义的恢复邮件内容:
恢复时间 {EVENT.RECOVERY.TIME} - {EVENT.RECOVERY.DATE}
触发器名称: {TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}服务器: {HOST.NAME}严重程度: {TRIGGER.SEVERITY}事件 ID: {EVENT.ID}
{TRIGGER.URL}
(4)动作配置完成后基本就结束了(确认操作暂不用不上,不需要配置,如需配置,和其他操作的配置方式一致即可)
配置完后记得查看动作状态是否为“已启用”;都确认好就可以开始玩起来啦~~
注意点:报警邮件能发送的前提除了上述说的注意点之外,主要依赖的是主机监控项中所配置的触发器,只有触发器报警了, 才会触发邮件发送机制
大致就是这些了,后续有补充会持续更新~