Zabbix 邮件告警

1. 告警操作

操作条件 --> 触发操作 --> 用户组[用户1|用户2|用户...] --> 邮件

2. 操作步骤

2.1 终端配置

systemctl stop postfix.service
systemctl disable postfix.service
yum install -y mailx
cp /etc/mail.rc /etc/mail.rc.ori
diff /etc/mail.rc /etc/mail.rc.ori
详细步骤
[root@master01 zabbix]# systemctl status sendmail
Unit sendmail.service could not be found.
[root@master01 zabbix]# systemctl status postfix.service 
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-05-13 23:30:11 CST; 3 weeks 3 days ago
 Main PID: 4122 (master)
    Tasks: 3
   Memory: 3.0M
   CGroup: /system.slice/postfix.service
           ├─ 4122 /usr/libexec/postfix/master -w
           ├─ 4124 qmgr -l -t unix -u
           └─13716 pickup -l -t unix -u

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
[root@master01 zabbix]# systemctl stop postfix.service 
[root@master01 zabbix]# systemctl disable postfix.service 
Removed symlink /etc/systemd/system/multi-user.target.wants/postfix.service.
[root@master01 zabbix]# yum install -y mailx
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirrors.yun-idc.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package mailx.x86_64 0:12.5-19.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================
 Package                Arch                    Version                        Repository             Size
===========================================================================================================
Installing:
 mailx                  x86_64                  12.5-19.el7                    base                  245 k

Transaction Summary
===========================================================================================================
Install  1 Package

Total download size: 245 k
Installed size: 466 k
Downloading packages:
mailx-12.5-19.el7.x86_64.rpm                                                        | 245 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mailx-12.5-19.el7.x86_64                                                                1/1 
  Verifying  : mailx-12.5-19.el7.x86_64                                                                1/1 

Installed:
  mailx.x86_64 0:12.5-19.el7                                                                               

Complete!
[root@master01 zabbix]# cp /etc/mail.rc /etc/mail.rc.ori
[root@master01 ~]# diff /etc/mail.rc /etc/mail.rc.ori
71,75d70
< set from=17761739482@163.com
< set smtp=smtp.163.com
< set smtp-auth-user=17761739482@163.com
< set smtp-auth-password="leco1234"
< set smtp-auth=login

测试邮件
[root@master01 ~]# echo '正文' | mailx -v -s '主题' 610658552@qq.com
Resolving host smtp.qq.com . . . done.
Connecting to 14.18.245.164:smtp . . . connected.
220 smtp.qq.com Esmtp QQ Mail Server
>>> EHLO master01
250-smtp.qq.com
250-PIPELINING
250-SIZE 73400320
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN
250-MAILCOMPRESS
250 8BITMIME
>>> AUTH LOGIN
334 VXNlcm5hbWU6
>>> NjEwNjU4NTUyQHFxLmNvbQ==
334 UGFzc3dvcmQ6
>>> YnNzd3pmZ21hd2VzYmNqZA==
235 Authentication successful
>>> MAIL FROM:<610658552@qq.com>
250 Ok
>>> RCPT TO:<610658552@qq.com>
250 Ok
>>> DATA
354 End data with <CR><LF>.<CR><LF>
>>> .
250 Ok: queued as 
>>> QUIT
221 Bye
163
set from=17761739482@163.com
set smtp=smtp.163.com
set smtp-auth-user=17761739482@163.com
set smtp-auth-password="leco1234"
set smtp-auth=login

mail.sh

#!/bin/bash

SEND_TO=$1
SEND_SUBJECT=$2
SEND_CONTENT=$3

echo "${SEND_CONTENT}" | mailx -s "${SEND_SUBJECT}" ${SEND_TO}

查看zabbix默认脚本位置

[root@master01 ~]# grep -i alertscript /etc/zabbix/zabbix_server.conf
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@master01 ~]# cd /usr/lib/zabbix/alertscripts/
[root@master01 alertscripts]# vim mail.sh
[root@master01 alertscripts]# cat mail.sh 
#!/bin/bash

SEND_TO=$1
SEND_SUBJECT=$2
SEND_CONTENT=$3

echo "${SEND_CONTENT}" | mailx -s "${SEND_SUBJECT}" ${SEND_TO}

2.2 配置用户

脚本参数,注意位置

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
邮件告警
邮件告警
邮件告警
邮件告警
邮件告警

2.3 配置动作

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE}{EVENT.TIME}
故障持续时间:{EVENT.AGE}
恢复时间:{EVENT.RECOVERY.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}