web monitoring(监测)属于业务监控,用来监控Web站点多方面的可用性,可以监控Web站点的下载速度、返回码和响应时间。Zabbix能够检测HTML中包含的预先定义的字符串,也可以模拟登录网站和鼠标的动作,对特定的结果进行比较,例如特定字符串、返回码等,从而判断站点服务的可用性。Zabbix支持HTTP和HTTPS协议,并在完成每一步模拟访问时会对cookie进行保存。

在zabbix中设置Web监控时,需要先定义web scenarios(场景),一个webscenarios是由多个HTTP请求(steps)组成,这些steps(步骤)会按照预先定义的顺序执行。和定义监控项一样,web scenarios也可以在主机或模板级别定义。

1、web监控项

Web 监控项主要有两种:Scenario items 和Scenario step items。这些监控项默认历史保存时间为30天,趋势保存时间为90天。

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 替换成你定义的场景的实际名称。

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 <Scenario>:该监控项收集step有关的响应时间的数据,单位为秒。响应时间是从请求开始计时,直到所有信息传输完毕。监控项的key是:web.test.time[Scenario,Step,resp],类型是:Numeric(float)。

※ Response code for step <Step>of scenario <Scenario>:该监控项显示step的返回代码,如50x、40x等在实际环境中应该重点监控。监控项的key是:web.test.rspcode[Scenario,Step],类型是:Numeric(unsigned)。

在创建触发器时也可以使用这些Scenario step item。例如,创建一个ZabbixGUI login is too slow的触发器时,触发器表达式可以定义为:

{zabbix:web.test.time[ZABBIX GUI,Login,resp].last()}>3

 

2、使用变量

配置Web 监控时在Scenario或step级别都可以使用Variables(变量),实际上就是用户自定义的宏变量。在scenario级别定义的变量可以在steps中引用,例如URL、Post变量等。在step级别定义的宏变量可以在GET或POST函数中使用,step级别定义的变量可以覆盖scenario级别的变量或上一个step中定义的变量。

变量定义的格式为:

{macro1}=value1

{macro2}=value2

{macro3}=regex:<regular expression>。

例如{username}=Alexei,{password}=kj3h5kJ34bd,{sid}=regex:name="sid"value="([0-9a-z]{16})" 等。如果是以regex开始,那它的后面是一个正则表达式,会在web页面中搜索,如果发现,会将匹配的值保存到变量中。在step中应用macros时,例如{username}、{password}、{hostid}等,Zabbix会自动替换成实际的值。

在配置变量时,还可以使用Host.* 宏变量和用户自定义的宏变量。需要注意的是变量不能经过URL编码处理。

 

3、配置web监控

在配置–> 主机/模板页面中,点击需要创建web 监控的主机或模板中的web链接,在web监测页面的右上角点击 创建web场景按钮,进入web 监控配置页面

场景标签中各配置参数的含义如下:

名称:唯一的场景名称

应用集:选择一个场景归属的监控项组

新的应用集:输入一个场景归属的新监控项组的名称

数据更新间隔:执行的时间间隔

尝试次数:用于执行web 场景步骤尝试的次数。有时候会因为网络出现问题(超时、连接丢失等)的情况下可以重复执行步骤几次,该设置会影响场景中的每一个步骤。最多可以指定10次,默认值为1。需要注意的是zabbix不会因为一个错误响应代码或一个必须的字符串不匹配而重复执行步骤

客户端:选择一个浏览器客户端,当一个网站针对不同的浏览器返回不同的内容时非常有用。在这里也可以使用用户定义的宏变量

HTTP代理:指定一个HTTP 代理。使用的格式为:http://[username[:password]@]proxy.mycompany.com[:port],默认使用端口1080。如果指定http_proxy、HTTPS_PROXY等代理环境变量,将会覆盖proxy相关的环境变量。需要注意的是HTTP代理只支持简单的认证。在这里也可以使用用户定义的宏变量

变量:场景级别的变量列表

头:当执行请求时HTTP头将被发送。Headers使用HTTP协议的语法列出,这将设置cURL选项CURLOPT_HTTPHEADER。例如:Accept-Charset:utf-8,Accept-Language: en-US,Content-Type: application/xml; charset=utf-8。在这里可以使用Host.*和用户定义的宏变量

已启用:勾选此项为启用该Web场景

步骤标签配置页面如下所示,步骤配置页面中各参数的含义如下

名称:唯一的步骤名称

URL:需要监控的URL,支持HTTP或HTTPS协议。GET参数可以直接写在URL中,也可以使用宏变量,长度不能超过2048个字符

Post:HTTP请求中的 POST变量。例如id=2345&userid={user},如果 {user} 是在web scenario中定义的宏变量,在step执行时会自动替换相应的值。这个变量会原样发送,不会进行URL编码

变量:步骤级别的变量列表

头(Headers):当执行请求时HTTP headers将被发送。Headers使用HTTP协议的语法列出。步骤级别上定义的Headers会覆盖scenario级别的Headers。在这里可以使用HOST.*和用户定义的宏变量。这将设置cURL选项CURLOPT_HTTPHEADER

跟随跳转:勾选此项允许HTTP redirects(重定向)。这将设置cURL选项CURLOPT_FOLLOWLOCATION

仅获取头信息:勾选此项仅接收HTTP响应的headers。这将设置cURL选项CURLOPT_NOBODY

超时:超过设置的秒数后Zabbix不会再处理URL。实际上这个参数定义了最大的连接时间和完成HTTP请求的最大时间。因此Zabbix在步骤中处理URL不会超出2倍的设置时间

要求的字串:需要的正则表达式。除非接收的HTML中的内容匹配正则表达式,否则step将执行失败。如果该字段为空时不执行检测。这里需要注意不能引用在Zabbix 前端页面中创建的正则表达式。在这里也可以使用宏变量

要求的状态码:设置期望的HTTP状态码列表,例如200,201,202-229。如果Zabbix收集的状态码在这个列表中没有时step将执行失败。如果该字段为空时不执行检测。在这里也可以使用宏变量

配置第一个步骤:

配置第二个步骤:

认证标签配置页面如下所示,认证标签配置页面中各参数的含义如下:

HTTP 认证:身份验证选项。包括:

无:不使用身份验证。

基础的:使用基本身份验证。

NTLM:使用NTLM(Windows NT LAN Manager)身份验证。

选择基础的或NTLM时页面会出现用户名和密码的输入字段,在用户名和密码字段中可以使用宏变量

SSL验证对端:勾选此项为验证web服务器的SSL证书。服务器证书会自动从系统CA的存储位置获得。你可以使用Zabbixserver或 proxy server的配置文件中设置参数SSLCALocation保存证书。这将设置cURL选项CURLOPT_SSL_VERIFYPEER。

SSL 验证主机:勾选此项为验证web服务器证书匹配的Common Name 字段或Subject Alternate Name 字段。这将设置cURL选项CURLOPT_SSL_VERIFYHOST。

SSL 证书文件:用于客户端身份验证的 SSL 证书文件的名称。证书文件必须是 PEM1 格式。如果证书文件还包含私钥,则将 SSL Key文件字段留空。如果对密钥进行加密,在 SSL Key密码字段中指定密码。Zabbixserver或 proxy server的配置文件中设置参数SSLCALocation保存证书文件。在这里可以使用HOST.*和用户定义的宏变量。这将设置cURL选项CURLOPT_SSLCERT。

SSL 秘钥文件:用于客户端身份验证 SSL 私钥文件的名称。私钥文件必须是PEM1格式。Zabbix server或 proxy server的配置文件中设置参数SSLCALocation保存证书文件。在这里可以使用HOST.*和用户定义的宏变量。这将设置cURL选项CURLOPT_SSLKEY。

SSL 秘钥密码:SSL 私钥文件密码。在这里可以使用用户定义的宏变量。这将设置cURL选项CURLOPT_KEYPASSWD。

这里的例子选择认证无

当所有的步骤添加后,点击添加按钮保存所有的配置。然后到监测中–> 最新数据页面中浏览items的数据以及图形

 

 

部分内容参考来源:https://www.ixdba.net/archives/2018/04/1138.htm

zabbix web监测的更多相关文章

  1. Zabbix系列之六——添加web监测

    zabbix提供了web监测功能,监控到站点的响应时间,还可以根据站点返回的状态码,或者响应时间做报警,列入服务保证官网确打不开等现象. 官网地址:https://www.zabbix.com/doc ...

  2. 19 Zabbix web监控实例

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 9 Zabbix web监控实例 通过前面的介绍你已经了解Web scenario的配置,下面我们 ...

  3. zabbix web 登录成功后提示(红色提示):zabbix server is not running:the information displayed may not be current

    原因是$ZBX_SERVER,我配了外网地址,这里应该配成内网的: # cat /etc/zabbix/web/zabbix.conf.php <?php // Zabbix GUI confi ...

  4. zabbix web url监控

    一, web监控 这个监控为通过cookie的值来监控网站是否能正常使用 这里测试环境为bbs网站 二, 配置web监控 01, 创建web监控项 02,配置步骤1 查看数据是否成功 第一查看首页时候 ...

  5. 【3】循序渐进学 Zabbix:配置 Zabbix Web

    上一篇 [2]循序渐进学 Zabbix:安装配置 Zabbix Server 服务端 配置 Zabbix Web 访问 上一篇完成了 Zabbix Server 的安装,但是那对于我们而言只是一个服务 ...

  6. zabbix web端有数据但是没有图形

    zabbix web端有数据但是没有图形 我遇到的情况是,在配置 zabbix 网站目录时,修改了zabbix 目录的所有者和所属组,以使得 zabbix/conf/zabbix.conf.php 文 ...

  7. CentOS7 redhat7 linux系统1分钟安装Zabbix web 监控 服务器

    一.准备工作OS:centos7.4Zabbix version:3.4.6(2018/1/15日上线的新版本)Database:MariaDB关闭防火墙:systemctl stop firewal ...

  8. 毕业设计之zabbix=[web检测

    网站对一个公司来说非常重要,里边包含了公司的业务,介绍和订单等相关信息,网站的宕掉了对公司的影响非常重大,所以要很好的对网站的页面进行监控 创建web场景 各部分介绍: Name:唯一的scenari ...

  9. zabbix web场景模拟监控配置

    一,zabbix2.2.3 VMware Vsphere exsi监控配置步骤, 1,添加监控主机 2,添加聚集macro;{$PASSWORD} = yoodo.com{$URL} = http:/ ...

随机推荐

  1. BZOJ1483 [HNOI2009]梦幻布丁 【链表 + 启发式合并】

    题目 N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色. 例如颜色分别为1,2,2,1的四个布丁一共有3段颜色. 输入格式 第一行给出N,M表示 ...

  2. input输入限制(持续更新)

    1.只读文本框内容 <!-- 在input里添加属性值 readonly --> <input type="text" value="" re ...

  3. spring in action 学习笔记五:@Autowired这个注解如何理解

    @Autowired这个注解的意思就是自动装配.他把一个bean对象自动装配到另一个对象中.下面的案例证明了spring的自动装配. 定义一个Sixi类.代码如下: package com.qls.a ...

  4. tornado获取application/json类型的入参

    tornado本身是不支持直接获取json入参的,在BaseHandler中定义方法get_json_argument,以供调用 class BaseHandler(tornado.web.Reque ...

  5. Linux命令之Nano基础指南

    Nano基础指南 1.  Nano基础 目的 这是篇nano简明使用指南,帮助你快速了解nano的基本用法.如想获取更多的帮助信息,请参阅: http://www.nano-editor.org 打开 ...

  6. strtol函數的用法 atof, atoi, atol, strtod, strtoul

    相关函数: atof, atoi, atol, strtod, strtoul表头文件: #include <stdlib.h>定义函数: long int strtol(const ch ...

  7. HTTP GET与POST区别

    HTTP定义了与服务器交互的不同方法,最基本的方法是 GET 和 POST. HTTP-GET和HTTP-POST是使用HTTP的标准协议动词,用于编码和传送变量名/变量值对参数,并且使用相关的请求语 ...

  8. python描述符的应用

    使用描述符为python实现类型检测 class Typed: def __get__(self, instance, owner): print(instance) print(owner) def ...

  9. RobotFramework自动化4-批量操作案例【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/robotframework/ 前言 有时候一个页面上有多个对象需要操作,如果一个个去定 ...

  10. AC日记——Little Elephant and Shifts codeforces 221e

    E - Little Elephant and Shifts 思路: 一次函数线段树(疯狂debug): b不断循环左移,判断每次最小的|i-j|,a[i]=b[j]: 仔细观察发现,每个bi移动时, ...