zabbbix邮件发送报警信息
mail命令
- 确保系统装有mail sendmail。
//确保自启
[root@node2 ~]# yum -y install mailx postfix
[root@node2 ~]# systemctl enable --now postfix.service
//25端口启动
[root@node2 ~]# ss -antl|grep 25
LISTEN 0 100 127.0.0.1:25 0.0.0.0:*
LISTEN 0 100 [::1]:25 [::]:*
- 修改主机名,防止收件时被误认为垃圾邮件归类至垃圾箱(邮箱页面也需添加白名单)
[root@node2 ~]# hostnamectl set-hostname zabbix.example.com
[root@node2 ~]# bash
[root@zabbix ~]# hostname
zabbix.example.com
- 测试邮寄
echo CONTENT | mail -s THEME
[root@zabbix ~]# echo 'test'| mail -s 'Test' 1252150147@qq.com
脚本执行本地邮件发送命令
//监控端
[root@zabbix ~]# find / -name alertscripts
/usr/local/zabbix/share/zabbix/alertscripts
[root@zabbix ~]# vim /usr/local/zabbix/share/zabbix/alertscripts
...
# Default:
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts#取消注释该行并修改脚本存放路径
//编写脚本
[root@zabbix ~]# vim /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#! /bin/bash
MESSAGE=$(echo $2 | tr "
" "
")
SUBJECT=$(echo $3 | tr "
" "
")
MAILTO=$1
echo "$MESSAGE" | mail -s "$SUBJECT" $MAILTO
//赋予执行权限
[root@zabbix ~]# chmod a+x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
-
测试触发
[root@node1 ~]# echo 1>>/opt/test
基于第三方邮箱发送警报邮件
-
开启发件箱smtp服务
-
添加媒介
-
为用户添加媒介
- 测试触发
[root@node1 ~]# echo 1>>/opt/test
基于脚本的第三方邮件发送
-
编写脚本
[root@zabbix ~]# cat /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh #! /bin/bash MESSAGE=$(echo $2 | tr " " " ") SUBJECT=$(echo $3 | tr " " " ") MAILTO=$1 echo "$MESSAGE" | mail -s "$SUBJECT" $MAILTO
-
配置mail.rc文件,添加smtp相关配置
[root@zabbix ~]# vim /etc/mail.rc ... //添加 set smtp=smtp.sina.cn set smtp-auth=login set smtp-auth-user=15527570185@sina.cn set smtp-auth-password=9d142f94869da946 set from=15527570185@sina.cn
-
修改脚本媒介