Zabbix告警配置

背景

之前通过Zabbix安装配置小记一节我们已经成功的启动Zabbix Server并且开始监控,本来以为接下里的事情是水到渠成,直接在web界面点点配置啥的就OK了,结果在告警配置却卡了好久。所以这里将此记录总结下来,其实问题并不难,主要是提醒自己处理问题的思路。

内容

在Zabbix中,告警是由一系列的流程组成的,首先是触发器达到阈值,接下来是Action对事件信息进行处理,其中包括两个部分:第一部分是发送消息,即将告警信息发送给用户;第二部分是执行命令,即将事件用命令进行处理,达到对事件故障自动尝试恢复的效果。

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-06-19-%e4%b8%8a%e5%8d%8811-17-47

如上,Hosts主机们拥有很多Items监控项,一些重要的监控项可以添加Triggers触发器,触发器在满足一定的条件下会调用Action。 Actions主要分为两种,一种是Notice发送告警信息给管理员或者用户,一种是Command尝试在agent执行命令修复问题。

Triggers的使用和配置这里就不再详细赘述了,这个比较基础,资料也很多,而且大部分可以通过zabbix web轻松搞定,我们从Actions说起。

Actions配置

如下,在Zabbix 3.2 中,Actions的配置主要分为3部分:Actions、Operations、Discovery Operations。

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-06-19-%e4%b8%8a%e5%8d%8811-28-41

第一部分Actions为基本信息,主要包括出发actions的条件,你可以根据需求在Conditions里面不断添加,一般情况下主需要配置上面两条其实就足够满足大多数场景了。

A Maintenance status not in maintenance   表示当前主机处于非维护状态
B Trigger name like PROBLEM    表示当Trigger的状态类似于PROBLEM时

这两者取或的关系,即只要有一个满足条件则会触发此action。

第二部分为Operation部分,即触发actions后执行的动作。第二部分主要又分为两部分,下面用红框圈起来的第一部分为告警的宏定义信息,采取默认即可,如果有需求可以自行调整。

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-06-19-%e4%b8%8a%e5%8d%8811-43-47

第三部分为告警恢复部分的设置,采取默认即可,默认会给之前发送过告警的人也发送一个恢复告警。

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-06-19-%e4%b8%8a%e5%8d%8811-45-56

Media配置

Media顾名思义就是配置告警的方式,默认情况下zabbix就存在3种传媒告警方式:分别为邮件、jabber电话、短信。这里我们保持系统的默认配置不变,自己新创建一个邮件告警媒介:

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-06-19-%e4%b8%8a%e5%8d%8811-50-45

如上,我们创建了一个名为mail的媒介方式,采用脚本的方式来发送邮件告警,有三个参数,现在Zabbix Server上直接配置此脚本和邮件发送机制:

1. 修改zabbix server的配置文件,更改告警脚本目录。

2. 下载安装sendEmail并测试

3. 在配置的脚本目录下编写邮件发送脚本

如上,这个sendmail.sh 就是我们之前在web页面配置media的时候指定的脚本,这个脚本接受3个参数,第一个是发送给谁的,第二个是邮件主题,第三个是邮件内容,我们在设定media的时候已经指定宏了,接下来试着去调用一下:

如上,发送成功,我的邮箱也收到了对应的信息:

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-06-19-%e4%b8%8b%e5%8d%8812-11-49

Users 配置

触发都OK了以后,那么也要配置接收告警的用户,说到这里满满的都是血和泪啊,唉一会再提,先说基本的配置方法,其实很简单,也分为三个部分:

1. user基本信息部分

这部分主要为user的基本信息,根据需求创建即可,但要注意的是这里必须选择对应的用户组,选择了以后必须将这个用户组的权限进行调整。

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-06-19-%e4%b8%8b%e5%8d%8812-18-46

2. Media部分,为这个用户的媒介方式

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-06-19-%e4%b8%8b%e5%8d%8812-24-42

3. permision部分表示这个用户所拥有的权限部分

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-06-19-%e4%b8%8b%e5%8d%881-16-41

告警验证

在配置好之后,我们来手动触发一个告警,测试是否可以发送成功。比如我这边登录一台受监控的测试数据库,暂停slave主从复制。

1. zabbix的告警或非正常状态会显示在如下页面中,我们可以从这个页面观察告警是否被成功触发了。

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-06-19-%e4%b8%8b%e5%8d%881-28-18

2. zabbix的报表里面提供了action日志查看功能,我们可以查看邮件告警是否成功发送。

%e5%b1%8f%e5%b9%95%e5%bf%ab%e7%85%a7-2017-06-19-%e4%b8%8b%e5%8d%881-32-20

奇葩问题

在整个安装配置过程中或多或少的遇到一些问题,但基本都可以通过网络搜索或测试解决掉,唯独一个奇葩的问题折腾了我半天,现在都不是很清楚什么原因:

问题:当我配置好以后,默认是将报警发送给了Admin这个user(配置了我的邮箱),但是死活收不到邮件,在action log里面可以看到触发了动作,但是其实它根本没有调用我这个邮件发送脚本(因为日志里面没有记录)。 尝试了无数种办法和权限调整都不管用。

解决:新建了一个用户,但是配置和Admin一模一样,就可以发送成功了,尼玛,我无言以对。

 

发表评论