再配置zabbix邮件报警及邮件原理分析

又一次配置zabbix server的邮件报警,配置了半天,这次总算理顺了。

zabbix3.0告警方式

zabbix3.0之后支持告警方式有:电子邮件、脚本、短信、jabber。
电子邮件即使用zabbix系统自带的电子邮件配置模板,使用公共电子邮箱(126,qq)发送邮件。3.0之前电子邮件方式不能添加有密码的邮箱,所以网上大多数教程都是使用脚本方式发邮件。3.0版本使用电子邮件模板配置发邮件也不容易成功,建议不用此种方式。
脚本是使用服务器上的命令发送邮件。linux系统常见发送邮件命令有mail和sendmail。整个邮件传输过程有三个角色MUA(mail user agnet)、MTA(mail transport agent)、MDA(mail delevery agent)。使用公网邮箱发邮件,只需要一个MUA即可。微信报警也是通过脚本方式实现。
短信需要接短信猫,jabber不知道是什么。

邮件告警具体配置

操作系统:centos7.2
前提条件:服务器能连接外网126邮件服务器。

1
2
3
which mail #查看是否有mail命令,如果没有使用yum install mailx 安装
systemctl stop postfix #停止MTA,不需要邮件传输代理。直接通过mail登录到126的MAT发送邮件。
vi /etc/mail.rc #编辑配置文件,添加邮件登录信息

1
2
3
4
5
6
#mail.rc 添加内容
set from=xxxx@126.com
set smtp=smtp.126.com
set smtp-auth-user=xxxxx
set smtp-auth-password=xxxxx #126邮箱需要授权码登录,不是邮箱帐号密码
set smtp-auth=login

测试

1
2
echo "mail content " | mail -s "Subject" abcd@qq.com
tail /var/log/maillog #查看发送日志,之后可登录邮箱查看。

邮件发送过程分析

MUA编写一封邮件–MUA将邮件传递给MTA–MTA将邮件放在MDA保存-用户2使用MUA登录MDA查看邮件
postfix可以担任MUT、MUD角色。可以使用postfix服务,给本机另一个用户发邮件,例echo "mail content"|mail -s "mail subject" user1@localhost。要使用user2登录,而不能su切换到user2,才能查看到邮件。

参考链接

http://www.cnblogs.com/chongchong88/p/6341639.html
http://www.cnblogs.com/fujinzhou/p/5687384.html
https://www.zzxworld.com/blogs/install-mail-sender-in-centos7.html
http://www.cnblogs.com/jamesf/p/4751484.html