CentOS7.3下Zabbix3.5之邮件报警配置

一、邮件客户端以及脚本相关配置

1、安装sendmail,一般操作系统默认安装了
安装

yum install sendmail 

启动

service sendmail start    

设置开机启动 

chkconfig sendmail on 

2、安装邮件发送工具mailx,一般操作系统默认安装了

yum install mailx -y

3、设置发送邮件的email,用于邮件发送
vim  /etc/mail.rc

 #一般公司会有专门的报警发件邮箱,如果没有,可以找公司申请
set from=xxx@sina.cn
#公司发件服务器地址smtp
set smtp=smtp.sina.com
#发件邮箱用户名
set smtp-auth-user=xxx@sina.cn
#发件邮箱密码
set smtp-auth-password=xxxxxxx
#登录
set smtp-auth=login 

4、给zabbix服务器端编写邮件发送脚本
在/etc/zabbix/zabbix_server.conf 文件下找到放监控脚本的目录,找到后可以自定义目录,也可以使用该目录,我使用了默认的目录
/usr/lib/zabbix/alertscripts
vim /usr/lib/zabbix/alertscripts/sendmail.sh

#!/bin/bash
#$3消息内容 messages=`echo $3 | tr '\r\n' '\n'`
#$2消息主题 subject=`echo $2 | tr '\r\n' '\n'`
#$1收件人邮箱 echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

 5、给脚本执行权限和zabbix属主、属组

chown zabbix.zabbix /etc/zabbix/alertscripts/sendmail.sh
chmod +x /etc/zabbix/alertscripts/sendmail.sh

6、给日志赋予权限:

chown zabbix.zabbix /tmp/sendmail.log

 7、测试

/usr/lib/zabbix/alertscripts/sendmail.sh  xxx@qq.com "邮件标题test" "邮件内容test"

 二、zabbix后台配置,登录zabbix控制台
1、zabbix控制台上依次选择 Administration---->Media types---->Create media type ,进入告警方式配置界面,创建sendmail.sh告警方式

说明:

Name:可以随便自己定义
Type:选择scripts;
Script name:输入linux下编写的脚本名称,即sendmail.sh
Script parameters:点击Add分别添加,3个参数,分别对应sendEmail.sh脚本需要的3个参数:收件人地址、主题、详细内容然后点击Add添加完成.
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
2、点击Administration---->Users,进入用户配置界面

     点击Admin用户,在”Media”选项卡中配置用户接收告警的邮箱地址。点击”Add”,在弹出的窗口中输入用户邮箱

     点击User groups,点击zabbix administrator组status,启用enable状态

 3、设置Zabbix触发报警的动作

Configuration--->Action 点击右上方的Create action创建action (也可以修改已有的Actions)

Name       名字自己随便定义(命名方式便于区分报警类型)

condition 通add按钮定义新的action关联条件
点击 Configuration---> Actions --->Operations:

Default subject    定义收到邮件头的信息.
Default message  定义邮件的内容信息
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
点击 Configuration---> Actions --->Recovery  Operations:
Recovery message
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

修改以下内容(实际情况,根据需求填写)

Default operation step duration 为60秒
Steps 为3,表示触发3次动作
Send to User groups 选择Zabbix administrators
Send to Users 选择 Admin (Zabbix Administrator)
Send only to 选择 sendmail.sh
点击Add --->update--update
说明:
默认的步骤是1-1,也即是从1开始到1结束。一旦故障发生,就是执行sendEmail.sh脚本发生报警邮件给Admin用户和zabbix administrator组。
假如故障持续了1个小时,它也只发送一次。如果改成1-0,0是表示不限制.无限发送间隔就是默认持续时间60秒。那么一个小时,就会发送60封邮件
查看Reports | Action log 查看日志信息和发送状态.

 

posted @ 2018-01-22 16:24  wclwcw  阅读(992)  评论(0编辑  收藏  举报