一、使用外部邮箱地址发送邮件(使用sendmail发送邮件,不能显示内容)
1、安装sendmail、mailx
yum install sendmail mailx
vim /etc/mail.rc #添加相关发件人内容
set from=lgs6666@yeah.net smtp=smtp.yeah.net
set smtp-auth-user=lgs6666@yeah.net smtp-auth-password= ….
set smtp-auth=login
2、登录外部邮箱,启用SMTP登录
service sendmail start
echo “test.hahahahaha” | mail -s “test” 469234634@qq.com #发邮件进行测试
测试sendmail成功,登陆我的QQ邮箱可以收到邮件!
3、添加zabbix邮件报警脚本
[root@iZ25kscmkn3Z ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
[root@iZ25kscmkn3Z ~]# vim /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#!/bin/bash
echo “ 3"|mail−s" 2” $1
#其中 1是zabbix传递过来的收件人信息, 2是邮件主题,$3是邮件内容;
[root@iZ25kscmkn3Z ~]# chmod +x /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
1)zabbix进入网页设置邮件报警
选择 管理——示警媒介类型
2)点击sendmail进入设置界面:选择类型——脚本,输入前面写的脚本名称;
在Script parameters添加参数,3.0版本必须添加,2.0不需要添加
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
3)编辑用户
选择 管理-用户
点击示警媒介
添加
更新
点击许可权,设置所有权限
选择-用户群组
点击 Zabbix administrator
点击许可权
添加所有组合许可权、主机群组、主机
4)添加动作
选择 组态-动作
点击Report problems to Zabbix administrators
名称:Report problems to Zabbix administrators
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复信息:打钩
恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
选择条件,计算方式选择Or
选择操作,编辑操作
更新——更新
测试
[root@iZ25kscmkn3Z ~]# /etc/init.d/zabbix_agentd stop
一分钟后会收到报警邮件
附件的.bin文件就是报警内容,需要使用第三方软件打开
二、使用外部邮箱地址发送邮件(使用sendmail发送邮件,显示内容)
1、安装组件
yum install perl-Net-SSLeay perl-IO-Socket-SSL -y
2、安装sendEmail
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar zxf sendEmail-v1.56.tar.gz -C /usr/src
cd /usr/src/sendEmail-v1.56/
cp -a sendEmail /usr/local/bin
chmod +x /usr/local/bin/sendEmail
/usr/local/bin/sendEmail -f lgs6666@yeah.net -t 469234634@qq.com -s smtp.yeah.net -u zabbix -o message-content-type=html -o message-charset=utf8 -xu lgs6666@yeah.net -xp liuguangshuN0820 -m “test邮件” //测试发送邮件
注意:perl版本必须是5.10.0,centos7以上版本perl默认是5.16,需要将perl版本换为5.10.0
perl -v
cd
wget http://www.cpan.org/src/5.0/perl-5.10.0.tar.gz
tar -zxf perl-5.10.0.tar.gz -C /usr/src/
cd /usr/src/perl-5.10.0/
./configure.gnu -des -Dprefix=/usr/local/perl
echo $?
make -j2
make install
mv /usr/bin/perl /usr/bin/perl.bak
ln -s /usr/local/perl/bin/perl /usr/bin/perl
perl -v
/usr/local/bin/sendEmail -f lgs6666@yeah.net -t 469234634@qq.com -s smtp.yeah.net -u zabbix -o message-content-type=html -o message-charset=utf8 -xu lgs6666@yeah.net -xp ‘liuguangshuN0820’ -m “test邮件”
Mar 14 15:45:58 iz25kscmkn3z sendEmail[11484]: Email was sent successfully! //发送成功
3、编辑sendmail.sh文件
vim /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#!/bin/bash
#echo “ 3"|mail−s" 2” $1
to=$1
subject=$2
body=$3
/usr/local/bin/sendEmail -f lgs6666@yeah.net -t “ to"−ssmtp.yeah.net−u" subject” -o message-content-type=html -o message-charset=utf8 -xu lgs6666@yeah.net -xp liuguangshuN0820 -m “$body”
#echo “ body"|mail−s" subject” $to
#其中 1是zabbix传递过来的收件人信息, 2是邮件主题,$3是邮件内容;
4、修改动作,因为我用sendmail.sh脚本格式指定html,所以添加换行符
告警主机: {HOSTNAME1}
告警时间: {EVENT.DATE} {EVENT.TIME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目: {TRIGGER.KEY1}
问题详情: {ITEM.NAME}: {ITEM.VALUE}
当前状态: {TRIGGER.STATUS}: {ITEM.VALUE1}
事件ID: {EVENT.ID}
5、收到的报警内容