一、报警通知媒介介绍
当我们给一个已存在的item定义了一个触发器后,当这个触发器产生作用时,也需要以某种方式通知管理员,而这个通知管理的方式我们称之为媒介。在zabbix中提供了如下几种报警媒介:
1)email:报警信息使用自带的sendmail发送邮件,从这边出去的邮件基本是垃圾邮件。
2)script:自定义脚本,把报警信息传递给脚本,调用脚本进行告警发送、脚本中可以定义邮件、飞信发短信、调用短信接口发送短信等等。
3)sms短信网关(用得比较少):服务器安装串口GSM短信猫。
4)ez texting:Ez Texting是zabbix的技术合作伙伴,主要提供短信服务,用手机注册账号,便可以使用它来发送短信了,不过他只支持美国和加拿大的手机号码,并且应该是收费的,没有美国/加拿大手机号码的朋友请绕行。
5)jabber:Jabber有第三方插件,能让Jabber用户和MSN、YahooMessager、ICQ等IM用户相互通讯。因为Google遵从Jabber协议,并且Google已经将Gtalk的服务器开放给了其它的Jabber服务器。所以PSI、Giam等Jabber客户端软件支持GTalk用户登陆,国内没啥人用。
Zabbix报警通知流程:
首先我们需要定义一种报警发送方式,也就是选择一种媒介。
然后就是对此媒介进行action配置,action由action(动作)和conditions(条件)以及operations(操作)组成。比如报警媒介选择email,那么action就是用来配置邮件报警和恢复时的内容,以及邮件发送的满足条件等等。
最后就是把此媒介对应到用户和用户邮箱,使之生效。
二、配置使用email报警媒介
第一步:配置email报警媒介
报警信息将会使用系统自带的sendmail发送,配置比较简单。
Administration→Media types->Click on Create media type
以下是zabbix媒介的默认配置,使用zabbix系统本地的邮件系统,默认是Postfix邮件系统。
name:媒介名称,在用户选择报警媒介时用到,具有唯一性。
type:选择报警媒介email。
smtp server:设置smtp服务器,默认使用本地postfix邮件系统。
Smtp server port:设置smtp服务器的端口,默认是25。
smtp helo:smtp helo值,通常情况下是顶级域名就行。
smtp email:设置发件人地址,这个邮件地址会显示到收件人的From里。
Connection security:是否使用安全连接。
Authentication:是否启用密码认证,如果你使用公网邮件系统,一般都是需要输入用户名和密码的,如果你是使用zabbix本机邮件系统发送邮件可以不需要。
Username:输入用户名。
Password:输入密码。
下图是一个使用163邮箱作为发件的配置,需要设置163服务器的smtp地址,设置你的163邮件,以及最后需要设置你的163邮箱账号和密码即可。
第二步:配置action报警机制
配置zabbix报警也就是zabbix的action配置,action支持如下source event(事件源):
触发器事件(triggers):触发器状态在OK和PROBLEM之间变化。
自动发现事件(discovery):用来定义监控模板中自动发现后采取的动作。
自动注册事件(auto registration):客户端自动注册到zabbix服务器。
内部事件(internal):item转变为unsupported状态,触发器转变为unknown状态。
这里我们只需要关注action中的triggers事件,zabbix提供了一个默认的triggers事件,已经定义好了默认邮件发送内容,如下图:
看一下这个事件内容:Report problems to Zabbix administrators,就是说所有有问题的trigger都会走这个action进行邮件发送通知。
动作(Action)配置
常用报警信息可以有如下选择:
告警主机:{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}
告警时间: {EVENT.DATE} {EVENT.TIME}
告警信息: {TRIGGER.NAME}
当前值: {ITEM.VALUE}
条件(Conditions)配置
Type Of calculation:各种条件之间的关系,包含AND、OR 以及AND/OR,如上图是AND关系,同时要满足以上机器不在维护状态以及触发器值为PROBLEM才会触发报警的动作。
操作(Operations)配置
其中默认操作步骤持续时间默认为3600秒,跟步骤是对应的,可调。
默认的步骤是1-1,也即是从1开始到1结束。一旦故障发生,就是执行报警邮件给zabbix administrator组的所有用户。假如默认的故障持续时间为1个小时,也就是说1小时内它也只发送一次报警。如果改成1-0,0是表示不限制,无限发送,间隔就是默认持续时间60秒。那么一个小时,就会发送60封邮件。如果需要短信报警的话,可以再创建一条新的动作,选择短信脚本。
第三步:配置用户媒介
首先设置完报警发送媒介后,然后配置一下报警触发的动作,最后就是就是把报警发送媒介添加到用户Media上面应用,操作如下:
Administration–>Users–>Media–>Add
type:选择媒介类型,这里选择上面刚刚定义的默认媒介,注意选择上面媒介就会以此媒介发送报警信息。
send to:发送到那个邮件。
when active:报警事件时间设置,默认是7×24。
use if serverity:设置报警接收的严重性类型,只接收指定的类型,例如info不想接收,那我不勾选即可。
Enable:开启即可生效。
做完以上步骤后,就可以关闭一下zabbix服务器的agent,就可以收邮件了。
当然,当报警恢复后,我们也能收到恢复后的报警邮件。