一、安装邮件发送工具mailx
下载mailx:(安装的时候最好切到root用户,不然记得在编译安装过程中要记得加sudo,否则会有些权限的问题)
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
tar jxvf mailx-12.4.tar.bz2 #解压
cd mailx-12.4 #进入目录
make #编译
make install UCBINSTALL=/usr/bin/install #安装
ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接
ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
whereis mailx #查看安装路径
mailx -V #查看版本信息
二、配置Zabbix服务端外部邮箱 (注意一点比较容易出问题的一点:现在的邮箱大部分在其他客户端登陆需要用授权码去登陆,包括163 qq等,所以有的邮箱要用授权码登陆,例如163和QQ的邮箱不用授权码,在下面配置完测试的时候就会报535错误,一般情况下可以配置自己公司的邮箱)
vi /etc/mail.rc #编辑,添加以下信息
set from=xxx@163.com smtp=smtp.163.com
set smtp-auth-user=xxx@163.com smtp-auth-password=你的密码(现在很多邮箱要授权码-----看看是否需要填写授权码来代替密码)
set smtp-auth=login
:wq! #保存退出
echo "zabbix test mail" |mail -s "zabbix" yyy@163.com
#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:yyy@163.com
#这时候,邮箱yyy@163.com会收到来自xxx@163.com的测试邮件
三 然后登陆zabbix的web页面进行设置和创建邮件脚本:
(1)创建Media types
administration--》media types--》create media type--》:
name:sendmail (给新建的mediatypes起个名字)
type:script(脚本)
script name(脚本名称):sendmail.sh (这个脚本我们在后面会创建,到时候有动作触发,要发邮件的时候就会去执行)
(2)给Zabbix用户配置报警邮箱地址
Administration-user-Admin (Zabbix Administrator)
点击admin进去后选择media标签
然后点击add--add --save
(3)设置zabbix触发报警动作(需要我们自定义一个action):
如下图:
然后输入一个action的名字 自己随意diy。
然后选择conditions标签:
然后回到conditions标签页面,点击add
(4)最后的最后我们要编写Zabbix服务端邮件发送脚本(就是我们前面选择的sendmailsh,这个我们现在创建)
cd /usr/lib/zabbix/alertscripts#进入脚本存放目录 (这里说的是ubantu的路径,centos存放发送邮件脚本的路径不在这里)
vi sendmail.sh #编辑,添加以下代码
#!/bin/sh
echo "$3" | mail -s "$2" $1
:wq! #保存退出
chown zabbix.zabbix /usr/lib/zabbix/alertscripts/sendmail.sh
#设置脚本所有者为zabbix用户
chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh 或者chmod 777 /usr/lib/zabbix/alertscripts/sendmail.sh 所有的读写可执行权限都给了
#设置脚本执行权限
五、测试Zabbix报警
关闭Zabbix客户端服务
sudo /etc/init.d/zabbix-agent stop
查看xxx@163.com邮箱,会收到报警邮件
再开启Zabbix客户端服务
service zabbix_agentd start
查看xxx@163.com邮箱,会收到恢复邮件