9. Web 监控

概况

你可以使用 Zabbix 检查几个网站可用性方面。

如果要使用 Web 检测功能,必须在 编译 Zabbix 的时候加入 cURL(libcurl) 的支持。

要使用 Web 监控,您需要定义 web 场景。Web 场景包括一个或多个 HTTP 请求或“步骤”。Zabbix 服务器根据预定义的命令周期性的执行这些步骤。

从 Zabbix2.2 开始,Web 场景和 Items,Triggers 等一样,是依附在 Hosts/Templates 的。这意味着 web 场景也可以创建一个模板,然后应用于多个主机。

所有的 web 场景会收集下列数据:

  • 整个场景中所有步骤的平均下载速度

  • 失败的步骤数量

  • 最后一次错误信息

对于 web 场景的所有步骤,都会收集下列数据:

  • 平均下载速度

  • 响应时间

  • HTTP 状态码

更多详情,请参见 web 监控项

执行 web 场景收集的数据保存在数据库中。数据自动用于图形、触发器和通知。

Zabbix 还支持获取 HTML 内容中是否存在设置的字符串。还可以模拟登陆动作和模拟鼠标单击。

Zabbix web 监控同时支持 HTTP 和 HTTPS。当运行 web 场景时,Zabbix 将选择跟踪重定向(请参见下面的选择跟踪重定向)。重定向硬编码的最大数量为 10 (使用 cURL 选项 CURLOPT_MAXREDIRS)。在执行 web 场景时,所有 Cookie 都会保存。

web 监控使用 HTTPS 协议请参阅 已知问题

配置 Web 场景

配置 web 场景:

  • 转到: 配置 (Configuration)–>主机 (或者 模板 )

  • 点击主机 (host)/ 模板 (template) 行中的 Web

  • 点击右上角 创建 web 场景 (或点击场景名字进行编辑现有的场景)

  • 在场景的表单中输入参数

场景选项卡允许您配置此 Web 场景的通用参数。

?600

场景参数:

参数 说明
主机 (Host)场景所属的主机名或模板的名字。
名称 (Name)唯一的场景名称。Zabbix 2.2 开始,这个名字支持用户宏和 {HOST.}
应用 (Application)选择一个场景属于的应用 。Web 场景监控项在 监测中 (Monitoring)→最新数据 (Latest data) 栏中将会分组在选择的应用中。
新的应用 (New application)对场景创建个新的应用。
更新间隔 (Update interval) (秒)执行场景时间间隔,以秒为单位。
重试次数 (Attempts)尝试执行 web 场景中步骤的次数。对于网络问题(超时,没有连接,等等) Zabbix 可以多次重复执行步骤。这个数字对场景的中的所有步骤都会生效。尝试次数最大可以设置为 10,默认值为 1。 注意 : Zabbix 不会因为一个错误的响应代码或者期望的字符串没有出现就会触发这个重试。Zabbix 2.2 开始支持此参数。
代理 (Agent)选择一个客户端。zabbix 会模拟选择的浏览器,当一个网站对不同的浏览器返回不同的内容的时候是非常有用的。zabbix 2.2 开始 ,这块可以使用用户自定义宏。
HTTP 代理 (HTTP proxy)您可以指定要使用一个 HTTP 代理,使用格式 http://[username[:password]@]proxy.mycompany.com[:port]默认使用 1080 端口。如果指定,代理将覆盖代理相关联的环境变量,比如 httpproxy HTTPS_PROXY。如果没有指定,那么代理将不会覆盖代理相关的环境变量。输入的值是通过“是 (as is)”, 不需要进行完整性检查。你也可以输入 SOCKS 代理地址。如果您指定了错误的协议,连接会失败,项目将成为不受支持的。没有指定的协议,代理将被视为一个 HTTP 代理、\ 注意 : HTTP 代理仅支持简单身份验证。此字段中可以使用用户宏。_Zabbix 2.2 开始支持此参数。
变量 (Variables)可以在场景中的步骤(URL,POST 变量)中使用变量。它们具有以下格式:{macro1}=value1{macro2}=value2{macro3}=regex:<regular expression>例如:{username}=Alexei{password}=kj3h5kJ34bd{hostid}=regex:hostid is ([0-9]+)然后可以在{username},{password}和{hostid}的步骤中引用宏。 Zabbix 将自动将其替换为实际值。请注意,使用regex:的变量:需要一个步骤来获取正则表达式的值,因此提取的值只能应用于后续步骤。如果值部分以 regex: 开头,那么它之后的部分将被视为正则表达式,将搜索网页,如果找到,则将匹配存储在变量中。 注意,必须存在至少一个子组,以便可以提取匹配的值。Zabbix 2.2 开始支持变量中的正则表达式匹配。Zabbix 2.2 开始,{HOST.} 和用户宏可以在此字段中使用。在查询字段或提交表单数据时,变量会自动进行 URL 编码,但使用 raw 方式提交数据或者直接在 URL 中使用时,必须手动进行 URL 编码
HTTP 头 (Headers)执行请求时将发送的自定义的 HTTP headers。应使用与在 HTTP 协议中出现的语法相同的语法列出标题,可选地使用 CURLOPT_HTTPHEADER cURL 选项支持的一些其他功能。例如:Accept-Charset=utf-8Accept-Language=en-USContent-Type=application/xml; charset=utf-8用户宏和 {HOST.*} 和可以在此字段中使用。从 Zabbix 2.4 开始支持指定自定义头。
启用 (Enabled)如果选中此复选框,则此场景处于启用状态,否则禁用。

注意,当编辑一个现有的场景时,会出现两个额外的按钮:

9. Web 监控 - 图2基于现有的场景的属性创建另一个场景。
9. Web 监控 - 图3删除场景的历史记录和趋势数据。 这将使服务器在删除数据后立即执行场景。

如果 HTTP proxy 字段留空,使用 HTTP 代理的另一种方法是设置代理相关的环境变量。
对于 HTTP 检查 - 为 Zabbix 服务器用户设置 http_proxy 环境变量。 例如, http_proxy=http://proxy_ip:proxy_port.

对于 HTTPS 检查 - 设置 HTTPS_PROXY 环境变量。 例如, HTTPS_PROXY=http://proxy_ip:proxy_port. 通过运行 shell 命令可以获得更多详细信息:# man curl.

“步骤”选项卡允许您配置 Web 场景步骤。 要添加 Web 场景步骤,请在 步骤 (Steps) 单击 添加 (Add)

9. Web 监控 - 图4

配置步骤

9. Web 监控 - 图5

步骤参数:

参数 说明
名称 (Name)唯一步骤名称。Zabbix 2.2 开始,该名称可以支持用户宏和 {HOST.*}
网址 (URL)