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、组态-动作-创建动作

centos 6.4+zabbix 2.4.5 邮件报警设置及邮件title和message乱码问题解决

4.1.2、设置动作信息

centos 6.4+zabbix 2.4.5 邮件报警设置及邮件title和message乱码问题解决

名称: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,则设置成功,页面左下角的更新,动作穿件完成。

centos 6.4+zabbix 2.4.5 邮件报警设置及邮件title和message乱码问题解决

4.2、创建示警媒介

4.2.1、管理-示警媒介类型-创建示警媒介

centos 6.4+zabbix 2.4.5 邮件报警设置及邮件title和message乱码问题解决

4.2.2、设置示警媒介参数

名称:Sendmail

类型:脚本

脚本名称:sendmail.sh      #填写最初创建的脚本文件名

已启用:选择

更新

centos 6.4+zabbix 2.4.5 邮件报警设置及邮件title和message乱码问题解决

4.3、设置Zabbix用户报警邮箱地址

4.3.1、组态-用户-创建用户

centos 6.4+zabbix 2.4.5 邮件报警设置及邮件title和message乱码问题解决

4.3.2、设置用户信息

centos 6.4+zabbix 2.4.5 邮件报警设置及邮件title和message乱码问题解决

4.3.3、设置报警媒介

centos 6.4+zabbix 2.4.5 邮件报警设置及邮件title和message乱码问题解决

设置完成后点击添加,保存用户设置

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邮件报警设置完成。