Zabbix 邮件报警
前期准备工作:
电脑登录网易邮箱配置,把自己的授权码看一下,并写入配置文件
server端安装配置邮件服务器
代码语言:javascript复制[root@master ~]# yum -y install mailx
[root@master ~]# mailx -V
12.5 7/5/10
配置公网邮箱信息:发邮件:
代码语言:javascript复制[root@master ~]# vim /etc/mail.rc #追加以下内容
set from=cyylog@163.com #(邮箱地址)
set smtp=smtp.163.com #smtp服务器) 发邮件服务器 ---163默认
set smtp-auth-user=cyylog@163.com #(用户名)
set smtp-auth-password=Password #(邮箱密码)授权之后的密码
set smtp-auth=login #默认
###### 测试
[root@master ~]# echo "test mail from zabbix.server.com" |mail -s "test mail" cyylog@163.com
然后163邮箱就会收到信息
报警媒体的配置:
首先需要配置 Zabbix 的邮件功能。 点击 管理->报警媒介类型->创建媒体类型
然后在页面中填入你的报警媒介类型信息,例如下图所示:
注:脚本名称任意,存放于/usr/lib/zabbix/alertscripts
(生产上的测试服放这:s /usr/local/zabbix/share/zabbix/alertscripts)
名称:sendmail //名称任意 类型:脚本 脚本名称:sendmail.sh 脚本参数: //一定要写,否则可能发送不成功 {ALERT.SENDTO} //照填,收件人变量 {ALERT.SUBJECT} //照填,邮件主题变量,变量值来源于‘动作’中的‘默认接收人’ {ALERT.MESSAGE} //照填,邮件正文变量,变量值来源于‘动作’中的‘默认信息’
配置完成后,不要忘记点击存档,保存你的配置。
修改zabbix服务端配置文件&编写脚本:
代码语言:javascript复制# 查看指定脚本的存储路径:
[root@master ~]# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
编写邮件脚本:
[root@master alertscripts]# cd /usr/lib/zabbix/alertscripts
[root@master alertscripts]# vim sendmail.sh
#!/bin/sh
#export.UTF-8 -----字符集可以删除掉
#send mail
messages=echo $3 | tr 'rn' 'n'
subject=echo $2 | tr 'rn' 'n'
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
修改权限:
[root@master alertscripts]# chmod u x sendmail.sh && chown zabbix.zabbix sendmail.sh
创建的脚本名称要和定义的脚本名称一样
修改admin用户的报警媒介: 用户默认是没有设置报警媒介的,设置后就可以接收报警消息了。
触发器的配置:
接下来,点击配置->主机
我们给 agent-19 这台主机增加一个触发器。点击 agent-19 这一行中的“触发器”,然后再点击创建触发器。 该页各配置项含义如下: 名称:填入触发器的名字 表达式:用于配置触发器的触发条件,点击添加按钮有条件选项。 —-键值 多重事件产生:如果选中,则问题如果持续多重的发生则每次都触发,否则只触发一次 点击表达式右侧的添加按钮:
再点击项目右侧的选择,选择我们之前配置过的“web.server.online.monitor”,并设置触发的阀值,如下图所示
Zabbix 会自动生成表达式。接下来根据情况选择事件的严重性。配置完毕后,点击存档保存。
动作的配置: 点击:配置->动作->事件源下拉菜单中选择触发器->创建动作 可以在内容中使用 Zabbix 内置宏,邮件发出时会自动将宏替换成对应的值。
名称: 任意写
默认接收人:
代码语言:javascript复制故障级别:{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}
恢复邮件: 恢复主题:
代码语言:javascript复制服务器:【{HOSTNAME1}】故障已恢复。故障原因:{TRIGGER.NAME}
恢复信息:恢复邮件的正文。当故障恢复正常后也发邮件通知一下。
点击:操作->编辑:
发送间隔:60秒 步骤:发送10次发送到:admin用户 仅使用:sendmail方式发送 —-脚本。 方式可以自行设置,根据实际工作要求
需要特别解释一下的是“步骤”部分的配置。所谓步骤是指报警可以有多个步骤,做不同的报警。例如,自从 1 到 3,就是指报警的步骤有三个。步骤持续时间就是一定时间后如果监控人员仍未响应报警就进入下一个报警步骤。 例如,发邮件给你报警,如果60 秒后你没响应,那就发 jabber 信息提醒你。如果 60 秒后还没响应,那就发短信给你。要是还没响应,就没有然后了。你可以形象的把它理解为 Zabbix 的一哭二闹三上吊。 到此,一个邮件报警功能就配置完毕了。如果你想立即看到结果,可以修改触发器的条件,将条件的阀值设置为 N>0.0003。你马上就会收到 Zabbix 发来的报警邮件了。
补充:邮件美化
(修改默认信息)
代码语言:javascript复制<table border="1" bordercolor="black" cellspacing="0px" cellpadding="4px">
<tr >
<td>告警主机</td>
<td bgcolor="#FF3333">{HOSTNAME1}</td>
</tr>
<tr>
<td>告警时间</td>
<td>{EVENT.DATE} {EVENT.TIME}</td>
</tr>
<tr>
<td>告警等级</td>
<td>{TRIGGER.SEVERITY}</td>
</tr>
<tr>
<td>告警信息</td>
<td>{TRIGGER.NAME}</td>
</tr>
<tr>
<td>告警项目</td>
<td>{TRIGGER.KEY1}</td>
</tr>
<tr >
<td>问题详情</td>
<td bgcolor="#FF3333">{ITEM.NAME}: {ITEM.VALUE}</td>
</tr>
<tr>
<td>当前状态</td>
<td>{TRIGGER.STATUS}: {ITEM.VALUE1}</td>
</tr>
<tr>
<td>事件ID</td>
<td>{EVENT.ID}</td>
</tr>
</table>