第十章 Web 监控
近日完成《深入浅出 zabbix 4.0》视频教程的录制并正式发布,该教程基于 zabbix 4.2 ,对Zabbix进行全面讲解。欢迎大家围观。课程链接:https://edu.youkuaiyun.com/course/detail/24870
Web monitoring是用来监控Web站点多方面的可用性,可以监控Web站点的下载速度、返回码和响应时间。Zabbix能够检测HTML中包含的预先定义的字符串,也可以模拟登录网站和鼠标的动作,对特定的结果进行比较,例如特定字符串、返回码等,从而判断站点服务的可用性。Zabbix支持HTTP和HTTPS协议,并在完成每一步模拟访问时会对cookie进行保存。
在Zabbix中设置Web监控时,需要先定义web scenarios(场景),一个webscenarios是由多个HTTP请求(steps)组成,这些steps(步骤)会按照预先定义的顺序执行。和定义监控项一样,web scenarios也可以在主机或模板级别定义。
10.1 Web监控项
Web 监控项主要有两种:Scenario items 和Scenario step items。这些监控项默认历史保存时间为30天,趋势保存时间为90天。
10.1.1 Scenario items
Web Scenario创建完成后Zabbix会自动添加下面的监控项,并连接它们到已经选中的应用。
-
Download speed for scenario<Scenario>:该监控项收集整个Scenario有关的平均下载速度数据,单位为bytes per second。监控项的key是:web.test.in[Scenario,,bps],类型是:Numeric(float)。
-
Failed step of scenario<Scenario>:该监控项将显示整个Scenario中失败的step的数量,如果所有step都执行成功返回0。监控项的key是:web.test.fail[Scenario],类型是: Numeric(unsigned)。
-
Last error message of scenario<Scenario>:该监控项返回Scenario的最后的错误信息文本,如果Scenario中有失败的step时会保存一个新的值,如果所有step都成功执行时没有新的值被保存。监控项的key是:web.test.error[Scenario],类型是: Character。
Scenario items也可以用来创建触发器和定义通知条件。
例如:
-
创建一个Web ScenarioFailed的触发器时, 触发器表达式可以定义为: {host:web.test.fail[Scenario].last()}<>0
-
创建一个Web ScenarioFailed的触发器时,在触发器名称中使用问题的描述信息。触发器名称可以定义为:
Web scenario "Scenario" failed: {ITEM.VALUE}
触发器表达式可以定义为:
{host:web.test.error[Scenario].strlen()}>0 and{host:web.test.fail[Scenario].min()}>0
-
创建一个Webapplication is slow的触发器时,触发器表达式可以定义为:
{host:web.test.in[Scenario,,bps].last()}<10000
在实际环境中,请把Scenario 替换成你定义的场景的实际名称。
10.1.2 Scenario step items
在Scenario中每个step创建完成后Zabbix会自动添加下面的监控项,并连接它们到选中的应用。
-
Download speed for step<Step> of scenario <Scenario>:该监控项收集step有关的平均下载速度数据,单位为 bytesper second。监控项的key是: web.test.in[Scenario,Step,bps],类型是: Numeric(float)。
-
Response time for step<Step> of scenario <Scen