配置本地邮箱告警前,我们要用到mail命令
所以先安装mail命令
[root@mf ~]# yum -y install mailx
使用mail命令发送邮箱
[root@mf ~]# echo "test" | mail -s "20210426" 18808843007@163.com/usr/sbin/sendmail: No such file or directory"/root/dead.letter" 9/218. . . message not sent.//发送邮箱报错,它说没有/usr/sbin/sendmail,我先安装邮箱服务[root@mf ~]# yum -y install postfix//安装好后设置开机自动启动[root@mf ~]# systemctl enable --now postfix Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service. [root@mf ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 100 127.0.0.1:25 0.0.0.0:* LISTEN 0 128 0.0.0.0:10050 0.0.0.0:* LISTEN 0 128 0.0.0.0:10051 0.0.0.0:* LISTEN 0 128 0.0.0.0:9000 0.0.0.0:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 100 [::1]:25 [::]:* //看到25端口我们就可以发送邮箱了[root@mf ~]# echo "test" | mail -s "20210426" 18808843007@163.com [root@mf ~]#
没有发现报错,打开163邮箱查看
在邮箱里可以看到发送的信息
频繁发送可能会导致邮箱变成黑名单,要在用户名后加example.com
[root@mf ~]# hostnamectl set-hostname zabbix.example.com [root@mf ~]# bash [root@zabbix ~]# hostname zabbix.example.com [root@zabbix ~]# echo '患者姓名:木峰' | mail -s '社交恐惧症+自闭症+失眠焦虑' 18808843007@163.com
添加白名单
这样配置要手动操作完成,我们可以通过脚本来实现
本地邮箱+脚本告警配置
配置告警脚本
//查看脚本位置[root@zabbix ~]# find / -name alertscripts/usr/local/share/zabbix/alertscripts 如果你配置文件不改的话可以放在着儿//取消/usr/local/etc/下的zabbix_server.conf文件里的alertscripts字段的注释[root@zabbix ~]# cd /usr/local/etc/[root@zabbix etc]# ls zabbix_agentd.conf zabbix_server.conf zabbix_agentd.conf.d zabbix_server.conf.d [root@zabbix etc]# vim zabbix_server.conf 。。。。。。 # Mandatory: no # Default: AlertScriptsPath=${datadir}/zabbix/alertscripts 。。。。。。//创建脚本[root@zabbix zabbix]# ls alertscripts externalscripts [root@zabbix zabbix]# cd alertscripts/[root@zabbix alertscripts]# ls [root@zabbix alertscripts]# vim sendmail.sh [root@zabbix alertscripts]# chmod +x sendmail.sh [root@zabbix alertscripts]# vim sendmail.sh #!/bin/bash echo "有内鬼,终止交易!" | mail -s "boss" 18808843007@163.com//设置临时权限,使用绝对路径执行脚本[root@zabbix etc]# su - zabbix -s /bin/bash su: warning: cannot change directory to /home/zabbix: No such file or directory [zabbix@zabbix etc]$ /usr/local/share/zabbix/alertscripts/sendmail.sh [zabbix@zabbix etc]$
通过脚本执行方便了许多,但是脚本还不完善,所以要完善脚本
//完善后的脚本,tr是替换命令[root@zabbix alertscripts]# vim sendmail.sh #!/bin/bash MESSAGE=$(echo $2 | tr "\r\n" "\n") 消息 SUBJECT=$(echo $3 | tr "\r\n" "\n") 主题 MAILTO=$1 邮箱 echo "$MESSAGE" | mail -s "$SUBJECT" $MAILTO//执行脚本[zabbix@zabbix etc]$ /usr/local/share/zabbix/alertscripts/sendmail.sh 18808843007@163.com "hello\r\nkwkw\r\n4433" "123"
配置zabbix网页
添加媒介
设置脚本媒介
把用户里的媒介从邮箱改成脚本
配置动作
添加信息模板
输入信息
[root@mf1 tmp]# echo 'i am chanice' >> /tmp/mufeng
查看
第三方邮箱告警配置
添加新媒介
添加信息模板
更改用户媒介
配置邮箱动作,从脚本改成邮件
输入信息,查看告警
[root@mf1 tmp]# echo 'i am chanice' >> /tmp/mufeng
第三方邮箱+脚本告警配置
配置mail.rc文件,脚本是上面的配置脚本
[root@zabbix ~]# find / -name mail.rc/etc/mail.rc [root@zabbix ~]# vim /etc/mail.rc 。。。末尾。。。。set smtp=smtp.163.comset smtp-auth=loginset smtp-auth-user=18808843007@163.comset smtp-auth-password=UXUOYNSTGLVNUDWHset from=18808843007@163.com
配置zabbix网页,添加脚本媒介里的信息模板
将用户里的媒介改成脚本
配置动作
查看告警