1、关闭自带的postfix
2、下载sendmail并启动
yum -y install sendmail
systemctl status sendmail
systemctl start sendmail
3、下载mailx
yum -y install mailx
4、修改mailx配置文件,在末尾添加如下信息:
vim /etc/mail.rc
set from=daxingqi@163.com #注册的个人邮箱,用于zabbi服务端转发邮件到指>定邮箱
set smtp=smtps://smtp.163.com:465 #填写发送邮箱服务器地址smtp
set smtp-auth-user=daxingqi@163.com #个人邮箱用户
set smtp-auth-password=XXESOYVNOUU #第三方授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/zabbix/.certs
问题:could not connect: Connection timed out “/root/dead.letter” 11/318 . . . message not sent. 分析:阿里云服务器关闭了25端口,发送邮件连接不上服务器的缘故,而且官方不允许打开该端口
解决链接:https://blog.csdn.net/qq_42859864/article/details/84862977
解决:
①请求数字证书
依次完成以下命令
mkdir -p /root/.certs/ ####创建目录,用来存放证书
echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt ####向163请求证书
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt ####添加一个SSL证书到证书数据库中
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt ####添加一个Global 证书到证书数据库中
certutil -L -d /root/.certs ####列出目录下证书
②配置发件人:修改配置文件
vi /etc/mail.rc
set from=daxingqi@163.com #注册的个人邮箱,用于zabbi服务端转发邮件到指定邮箱
set smtp=smtps://smtp.163.com:465 #填写发送邮箱服务器地址smtp
set smtp-auth-user=daxingqi@163.com #个人邮箱用户
set smtp-auth-password=XXESOYVNOUUJB #第三方授权密码
set smtp-auth=login
set ssl-verify=ignore #ssl认证方式
set nss-config-dir=/root/.certs
测试:echo “test” |mail -s “zabbix” daxingqi@163.com
如果报以下错误说明证书不被信任:
Error in certificate: Peer’s certificate issuer is not recognized. smtp-server: 535 Error: authentication failed “/root/dead.letter” 11/306 . . . message not sent.
解决:
cd /root/.certs/
ll
certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 163.crt
重新发送邮件测试
echo “test” |mail -s “test linux” daxingqi@163.com
通过
5、写邮件发送脚本
cd /etc/zabbix/scripts
vim sendmail.sh
#!/bin/bash
file=/tmp/zabbix_mail.txt
echo "$3" > $file
dos2unix -k $file
/bin/mail -s "$2" $1 < $file
# echo "$3" | mail -s "$2" $1 #如果发送邮件完全是英文的,可以只使用这一条
备注:$3 是前端定义的邮件内容,$2是前端定义的标题,$1是前端定义的收件人
6、使用dos2unix工具是为解决zabbix发送邮件出现乱码和收到的邮件是*.bin的情况。
yum install dos2unix -y
7、①web端配置
名称:自定义
类型:脚本
脚本名称:zabbix_server配置文件中位置对应的脚本名称
脚本参数:固定格式
②配置用户,选择admin用户
添加报警媒介
创建报警动作,配置----动作----创建动作----新建动作
Problem started at {EVENT.TIME} on {EVENT.DATE}
Problem name: {TRIGGER.NAME}
Host: {HOST.NAME}
Severity: {TRIGGER.SEVERITY}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
添加恢复操作
添加确认操作:
遇到问题:
1、测试时用的是root账号,可以正常发送邮件。配置完成后,测试显示的邮件已送达,事实上,邮箱中没有收到任何邮件。
原因:web端配置时用的账号是zabbix账号,服务器中zabbix没有权限
解决:修改.cert目录权限,使zabbix用户拥有读写执行权限