安装mailx
[root@zabbix ~]# yum -y install mailx
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
* webtatic: us-east.repo.webtatic.com
base | 3.6 kB 00:00:00
epel | 4.7 kB 00:00:00
extras | 2.9 kB 00:00:00
nginx | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
webtatic | 3.6 kB 00:00:00
软件包 mailx-12.5-19.el7.x86_64 已安装并且是最新版本
无须任何处理
配置邮箱
[root@zabbix ~]# vim /etc/mail.rc
set from=214998967@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=214998967@qq.com
set smtp-auth-password=xfcffumyrfpsbgcc
set smtp-auth=login
测试发送邮件
[root@zabbix ~]# echo "hello world" | mail -s "zabbix-test" 214998967@qq.com
如果出现如下报错,是因为smtp-auth-password要填写授权码而非邮箱登陆密码
如何获得邮箱授权码?
发送短信之后点击“我已发送”就会出现如下界面,把授权码复制到smtp-auth-password即可
编写自动化脚本
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix alertscripts]# vim mailx.sh
#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
创建日志文件
[root@zabbix alertscripts]# touch /tmp/mailx.log
修改属主属组
[root@zabbix alertscripts]# chown -R zabbix.zabbix /tmp/mailx.log
[root@zabbix alertscripts]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
[root@zabbix alertscripts]# chown -R zabbix.zabbix /usr/lib/zabbix/
测试自动化脚本
[root@zabbix alertscripts]# ./mailx.sh 214998967@qq.com "say hi" "hello"
创建报警媒介类型
配置以什么方式发送告警邮件
配置用户
配置发送到管理员的邮箱
配置报警动作
配置当出现异常时报警邮件发送的频率和内容,以及异常恢复以后发送的邮件内容
测试停止服务
[root@localhost ~]# systemctl stop sshd
测试恢复服务
[root@localhost ~]# systemctl start sshd