centos 6.4+zabbix 2.4.5 邮件报警设置及邮件title和message乱码问题解决
外部邮箱发送报警
1、安装邮件发送工具mailx
yum install mailx #安装
whereis mailx #查看安装路径
mailx -V #查看版本信息
2、 安装sendmail(邮件传送代理MTA)
(标注:如果直接使用外部邮箱发送邮件可以不需要配置sendmail或postfix,直接把这两个软件关掉,直接跳到第3步:配置mail即可实现)
[[email protected] ~]# yum -y install sendmail #在线yum安装sendmail
[[email protected] ~]# /etc/init.d/sendmail start #启动sendmail服务
[[email protected] ~]# /etc/init.d/sendmail status #查看sendmail启动情况
sendmail dead but subsyslocked #sendmail进程锁住,原因是postfix服务启动导致sendmail服务进程锁住,需要关闭postfix服务。
sm-client (pid 1759) isrunning...
[[email protected] ~]# /etc/init.d/postfix stop #暂停postfix服务提示失败,原因是postfix进程正在使用,需要使用kill命令杀掉postfix进程
Shutting downpostfix: [FAILED]
[[email protected] ~]# /etc/init.d/postfix status #查看postfix服务可以查看到进程号
master (pid 1647) isrunning...
[[email protected] ~]# kill -9 1647 #杀掉postfix服务进程号
[[email protected] ~]# /etc/init.d/postfix status #查看postfix状态
master dead but pid fileexists
[[email protected] ~]# chkconfig postfix off #设置postfix开机不启动
[[email protected] ~]# /etc/init.d/sendmail stop #暂停sendmail服务
Shutting downsm-client: [ OK ]
Shutting downsendmail: [FAILED]
[[email protected] ~]# /etc/init.d/sendmail start #启动sendmail服务
Starting sendmail: [ OK ]
Startingsm-client: [ OK ]
3、配置Zabbix服务端外部邮箱
3.1、编辑,添加以下信息 vi /etc/mail.rc
[[email protected] ~]# vim /etc/mail.rc
set from= [email protected].com #网易注册的个人邮箱,用于zabbi服务端转发邮件到指定邮箱
set smtp= smtp.163.com #填写网易发送邮箱服务器地址smtp
set smtp-auth-user= [email protected] #网易个人邮箱用户
set smtp-auth-password=xxxxxxx #网易个人邮箱密码(网易邮箱设置为授权码,而非个人登录密码)
set smtp-auth=login #登录
3.2、:wq! #保存退出
3.3、测试发送邮件echo "zabbix test mail" |mail-s "zabbix" [email protected]
#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:[email protected]
#这时候,邮箱[email protected]会收到来自[email protected]的测试邮件
3.4、添加Zabbix服务端邮件发送脚本
3.4.1、cd/usr/local/zabbix/share/zabbix/alertscripts #进入脚本存放目录
3.4.2、[[email protected] tmp]# vim/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh编辑,添加以下代码
mail=$1
title=$2
message=$3
title_2312=`iconv -t GB2312 -f UTF-8 << EOF #标题编码格式转换
$title
EOF`
message_2312=`iconv -t GB2312 -f UTF-8 << EOF #内容编码格式转换
$message
EOF`
echo "${message_2312}" | mailx -s"${title_2312}" ${mail} >> /tmp/mailx.log 2>&1
exit $?
chown zabbix.zabbix/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#设置脚本所有者为zabbix用户
chmod +x/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#设置脚本执行权限
3.4.3、[[email protected] ~]# vim /usr/local/zabbix/etc/zabbix_server.conf#zabbix_server.conf中要增加sendmail.sh的目录,以便服务器可以拿到脚本路径,添加以下代码:
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
4、配置Zabbix服务端邮件报警
4.1、创建发送邮件动作
4.1.1、组态-动作-创建动作
4.1.2、设置动作信息
名称:Action-Email
默认接收人:故障{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}
已启用:打钩
4.1.3、设置操作参数
设置完操作细节后点击操作细节中的更新,会在动作操作中显示步骤1,则设置成功,页面左下角的更新,动作穿件完成。
4.2、创建示警媒介
4.2.1、管理-示警媒介类型-创建示警媒介
4.2.2、设置示警媒介参数
名称:Sendmail
类型:脚本
脚本名称:sendmail.sh #填写最初创建的脚本文件名
已启用:选择
更新
4.3、设置Zabbix用户报警邮箱地址
4.3.1、组态-用户-创建用户
4.3.2、设置用户信息
4.3.3、设置报警媒介
设置完成后点击添加,保存用户设置
5、测试Zabbix报警
5.1、关闭Zabbix客户端服务
[[email protected] ~]# service zabbix_agentd stop
查看[email protected]邮箱,会收到报警邮件
5.2、再开启Zabbix客户端服务
[[email protected] ~]# service zabbix_agentd start
查看[email protected]邮箱,会收到恢复邮件
使用外部邮箱账号发送报警邮件设置完成。
至此,Zabbix邮件报警设置完成。