关于zabbix的邮件报警
Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。
在这里配置的思路是这样的:使用一个可以收发的邮件的邮箱,通过在zabbix服务端中设置,使其能够发送报警邮件到指定邮箱。(也就是从服务器指定发送邮箱——>管理员邮箱)
1、安装postfix环境
2、配置zabbix
关于这里,我们可以通过type选择媒介类型,可以是email(上图),此时需要配置SMTP服务器的相关信息,包括:
- Smtp server:设置smtp服务器来处理传出的消息
- SMTP server port:SMTP服务器的端口
- SMTP helo:通常是域名
- SMTP Email:此处输入的地址将被用作是发送消息的from地址。
- Connection security:选择连接的安全级别,如果使用ssl/tls,需要设置smtp服务器的ssl证书
- Authentication:选择认证级别
当然也可以是脚本:
我们在zabbix配置文件中可以看见,zabbix的相关脚本信息都放在下面这个路径
1 | AlertScriptsPath=/usr/lib/zabbix/alertscripts |
所以我们在这个路径下创建一个mail.sh的脚本,这个脚本里的内容为:
其中包含几个变量,message(邮件信息),subject(邮件主题)这两个可以从zabbix的宏所传递的,我们在选择脚本作为媒介的时候,设置了三个宏:
- {ALERT.SENDTO}:发给谁
- {ALERT.SUBJECT}:主题
- {ALERT.SUBJECT}:内容
然后分别对应我们的参数$ 1,$ 2,$ 3 。
此外将错误输出到/tmp/mailx.log文件中。
3、设置触发报警的动作,也就是触发器
比如说,我们创建一个当发现agent工作不正常的时候触发报警的trigger。
- 关于condition,触发条件的话,可以查看官方文档
其中:
- Default subject(邮件主题,也可以用默认的)
故障{TRIGGER.STATUS},服务器{HOSTNAME1}发生:{TRIGGER.NAME}故障!
-
Default message(邮件内容,可以使用默认的)
- 告警主机:{HOSTNAME}
- 告警事件:{EVENT.DATE} {EVENT.TIME}
- 告警等级:{TRIGGER.SEVERITY}
- 告警信息:{TRIGGER.NAME}
- 告警项目:{TRIGGER.KEY1}
- 问题详情:{ITEM.NAME}:{ITEM.VALUE}
- 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
- 事件ID:{EVENT.ID}
-
Operations
我们在这里设置邮件所发送的对象。
这里是problem恢复后的邮件信息,可以参考上面。
这时我们弄好了,可以看见我们所创建的东东。这个时候应该显示为disable我们点击一下让它变为enable开启状态(其中第二个为默认存在的)。
4、配置接收者信息
- send to:为所要发送的目的邮箱。
5、测试
我们将其中一台agent关闭。
然后查看出现的problem。
点击时间,我们可以查看详细的信息,包括邮件的发送情况
这个时候,我们可以查看邮箱,看邮件信息。
如果问题解决后,此时会发送recovery operation的内容,并且将状态从PROBLEM置为RESOLVED。