Zabbix Web Monitoring

zabbix

本文只介绍Zabbix(5.0.3)的Web监测配置与邮件告警联动,Zabbix安装与汉化请自行搜索。

1、创建Web检测

zabbix-web-01a

这里有两种思路去做Web检测

1.通过配置-模板创建模板,之后可以通过模板绑定实现多个主机监控测试。

2.通过Zabbix服务器单主机节点直接进行检测。

由于网络规模较小,在这里我选择第二种方法,直接使用Zabbix主机作为测试节点进行Web检测。

zabbix-web-02

进入Web检测后点击右上角的创建Web场景。

zabbix-web-03

这里我创建了一个web_status_test的Web检测项目,更新间隔和尝试次数自行设置。参数设置好后不要立即点击更新,选择场景边上的步骤添加一个Web检测步骤。另外我测试过程中发现如果想要检测多个步骤,当上一个步骤的值出现异常拿不到的情况下是不会进行下一个步骤的。

zabbix-web-04

Web方案步骤内配置名称、URL、勾选跟随跳转、选择头部并且设置要求的状态码为200,完成之后点击更新。

zabbix-web-05

到这里为止对某个Web页面的检测项目就已经做好了,在检测-主机-Web检测内选择相应的项目已经可以看到检测状态和图形。

2、创建触发器

zabbix-web-06

之前配置的Web检测只是针对数据的采集,想要通过zabbix检测弹出告警信息还需要创建触发器。进入触发器界面后点击右上角创建触发器。

zabbix-web-07

配置触发器的名称、选择严重性的等级和一些信息描述。最重要的是在问题表现形式添加监控项,这里要需要添加两个监控项。

1.设置获得的HTTP状态码不等于200时触发。

zabbix-web-08

zabbix-web-09

2.设置获取Web检测信息失败时触发。

因为之前配置时测试过如果只配置HTTP 200状态检测,当Web服务挂了或者服务器挂了,检测不到HTTP头状态码时不会触发告警。

zabbix-web-10

zabbix-web-11

两个触发条件设置为逻辑或的关系(A or B)。

为了防止突发一次数据采集或者HTTP状态码失败从而导致频繁报警。我优化配置为近三次状态码异常或近两次数据采集失败时才触发报警。这里参考**zabbix5.0手册**设置触发函数格式。 $$ (A and B and C) or (E and F) $$ 最近的值

**last** (sec|#num,<time_shift>)
最近的值。 sec (可省略) or #num - 最新的第N个值 time_shift (可选) - 参考avg()函数 支持值类型: float, int, str, text, log 注意此处的 #num 参数和在其它函数中的作用不一样。 例如: last() 通常等同于 last(#1) last(#3) - 第三个最新值 (不是三个最新值) 如果在history中同一秒有多个值存在,Zabbix不能保证值的精确顺序。 从Zabbix 1.6.2开始支持 #num 参数。 从Zabbix 1.8.2开始支持 time_shift 参数。

最后我的触发条件(问题表现形式)设置为

({Zabbix server:web.test.rspcode[web_status_test,web-test].last(#1)}<>200 and {Zabbix server:web.test.rspcode[web_status_test,web-test].last(#2)}<>200 and {Zabbix server:web.test.rspcode[web_status_test,web-test].last(#3)}<>200) or ({Zabbix server:web.test.fail[web_status_test].last(#1)}=1 and {Zabbix server:web.test.fail[web_status_test].last(#2)}=1)

在恢复表达式内设置获得的HTTP状态码等于200时触发恢复,这里和之前的触发条件设置基本相同,触发恢复时值设为=200。

{Zabbix server:web.test.rspcode[web_status_test,web-test].last()}=200

这样配置好了触发器,执行结果为连续三次HTTP状态码不等于200或连续两次获取HTTP状态码失败时报警,检测到最近一次HTTP状态码为200时故障恢复。

3、配置邮件告警

通过配置触发器能够出现系统告警,但相关告警想要通过邮件发送出去还需要进行邮件相关配置。

zabbix-web-12

在管理-报警媒介类型-Email内进行基本设置,这里我使用的是网易126邮箱。注意设置你的邮件服务器相关参数尤其是授权密码。完成配置后可以点击测试选项进行邮件发送测试。

zabbix-web-13

在Message templates可以自定义信息模板。

zabbix-web-14

在zabbix用户下设置报警媒介类型、Email地址、邮件告警的严重级别。

zabbix-15

检查一下配置-动作下的发送Email操作是否已经打开。

以上就是zabbix的所有配置。

4、效果与测试

在测试Web服务器返回HTTP404状态码,观察zabbix系统告警、邮件告警与响应时间。

nginx

location ~ ^/get_text {
    	default_type text/html;
    	return 404 'This is 404 test';
	}

重启nginx服务

zabbix-web-16

系统收到告警后会立即发送告警邮件,整个响应过程在2min-3min。

zabbix-web-17

恢复后zabbix会立即响应已解决同时发送邮件,整个响应过程在1min左右。

以上响应时间也可以根据Web检测内的更新时间自行设置。

comments powered by Disqus