用Mailx来实现Zabbix的邮箱报警

Kai zabbix, 工作 3,876 次浏览 没有评论

一、关闭sendmail或者postfix

service sendmail stop #关闭

chkconfig sendmail off #禁止开机启动

service postfix stop

chkconfig postfix off

备注:

使用外部邮箱账号时,不需要启动sendmail或者postfix

如果在sendmail或者postfix启动的同时使用外部邮箱发送报警邮件,首先会读取外部邮箱

配置信息

二、安装邮件发送工具mailx

yum remove mailx #卸载系统自带的旧版mailx

在用yum安装

yum install -y mailx

whereis mailx #查看安装路径

mailx -V #查看版本信息

三、配置Zabbix服务端外部邮箱

vi /etc/mail.rc #编辑,添加以下信息

set from=123456@126.com
set smtp=smtp.126.com
set smtp-auth-user=123456
set smtp-auth-password=123456
set smtp-auth=login

:wq! #保存退出

echo “zabbix test mail” |mail -s “zabbix” xxx@qq.com

#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:xxx@qq.com

#这时候,邮箱xxx@qq.com会收到来自xxx@qq.com的测试邮件

 

 

/usr/lib/zabbix/alertscripts/sendmail.sh
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

四、配置Zabbix服务端邮件报警

1、打开Zabbix

管理-示警媒介类型-创建媒体类型

名称:Sendmail

类型:脚本

脚本名称:sendmail.sh

已启用:勾选

存档

编辑完成后,给脚本权限

chmod +x sendemail.sh chown zabbix.zabbix sendemail.sh

进入zabbix管理页面 

点击管理->报警媒介类型 点击最右边的创建媒体类型

输入脚本名称,类型选择脚本并添加以下3个参数,分别对应sendEmail.sh脚本需要的3个参数:收件人地址、主题、详细内容

{ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}

点击Admin用户点击报警媒介添加

选择sendEmail.sh脚本,输入收件人的邮箱地址

点击用户群组,点击zabbix administrator后面的调用模式,点击一下,就启用了

点击Zabbix administrators组名称 点权限->添加 ,全部选择

选择所有 点击更新。

点击配置->动作 点击默认的动作:

点击操作->编辑:

修改以下内容(实际情况,大家根据自己需求填写,这里仅仅为了展示

修改持续时间为60 

修改步骤为3,表示触发3次动作 

选择用户Admin 

选择仅送到sendemail.sh 

点击更新

解释

默认的步骤是1-1,也即是从1开始到1结束。一旦故障发生,就是执行sendEmail.sh脚本发生报警邮件给Admin用户和zabbix administrator组。 

假如故障持续了1个小时,它也只发送一次。如果改成1-00是表示不限制.无限发送 

间隔就是默认持续时间60秒。那么一个小时,就会发送60封邮件。 

如果需要短信报警的话,可以再创建一条新的动作,选择短信脚本。

发表回复

Go