分布式系统监视zabbix讲解五之web监控
Web 监控
概况
你可以使用 Zabbix 检查几个网站可用性方面。
要使用 Web 监控,您需要定义 web 场景。Web 场景包括一个或多个 HTTP 请求或“步骤”。Zabbix 服务器根据预定义的命令周期性的执行这些步骤。
从 Zabbix2.2 开始,Web 场景和 Items,Triggers 等一样,是依附在 Hosts/Templates 的。这意味着 web 场景也可以创建一个模板,然后应用于多个主机。
所有的 web 场景会收集下列数据:
- 整个场景中所有步骤的平均下载速度
 - 失败的步骤数量
 - 最后一次错误信息
 
对于 web 场景的所有步骤,都会收集下列数据:
- 平均下载速度
 - 响应时间
 - HTTP 状态码
 
执行 web 场景收集的数据保存在数据库中。数据自动用于图形、触发器和通知。
Zabbix 还支持获取 HTML 内容中是否存在设置的字符串。还可以模拟登陆动作和模拟鼠标单击。
Zabbix web 监控同时支持 HTTP 和 HTTPS。当运行 web 场景时,Zabbix 将选择跟踪重定向。重定向硬编码的最大数量为 10 。在执行 web 场景时,所有 Cookie 都会保存。
配置 Web 场景
配置 web 场景:
- 转到: 配置 (Configuration)–>主机 (或者 模板 )
 - 点击主机 (host)/ 模板 (template) 行中的 Web
 - 点击右上角 创建 web 场景 (或点击场景名字进行编辑现有的场景)
 - 在场景的表单中输入参数
 
场景选项卡允许您配置此 Web 场景的通用参数。


场景参数:
| 参数 | 说明 | 
|---|---|
| 主机 (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 端口。 如果指定,代理将覆盖代理相关联的环境变量,比如 http_proxy 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-8 Accept-Language=en-US Content-Type=application/xml; charset=utf-8 用户宏和 {HOST.*} 宏 和可以在此字段中使用。 从 Zabbix 2.4 开始支持指定自定义头。  | 
| 启用 (Enabled) | 如果选中此复选框,则此场景处于启用状态,否则禁用。 | 
注意,当编辑一个现有的场景时,会出现两个额外的按钮:
![]()  | 
基于现有的场景的属性创建另一个场景。 | 
![]()  | 
删除场景的历史记录和趋势数据。 这将使服务器在删除数据后立即执行场景。 | 
对于 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)。


配置步骤


步骤参数:
| 参数 | 说明 | 
|---|---|
| 名称 (Name) | 唯一步骤名称。 Zabbix 2.2 开始,该名称可以支持用户宏和 {HOST.*} 宏。  | 
| 网址 (URL) | 用于连接和检索数据的网址。 例如: https://www.google.com http://www.zabbix.com/download Zabbix 3.4 以后,可以以 Unicode 编码指定域名。 执行 Web 场景步骤时,它们将自动被禁止转换为 ASCII。 解析 按钮可用于从 URL 中分离可选的查询字段(例如?name = Admin&password = mypassword),将属性和值放到查询字段以进行自动 URL 编码。 变量可以在 URL 中使用,使用 {macro} 语法。 变量可以使用 {{macro}.urlencode()} 语法手动进行 URL 编码。 Zabbix 2.2 开始,{HOST.*} 宏 和用户宏可以在此字段中使用。 Zabbix 2.4 开始,最多字符为 2048 个。  | 
| 查询字段 (Query fields) ? | URL 的 HTTP GET 变量。 指定属性和值对。 值将自动进行 URL 编码。来自场景变量,用户宏或{HOST。*}宏的值将被解析,然后自动进行 URL 编码。 使用{{macro}.urlencode()}语法将对其进行双重 URL 编码。 从 Zabbix 2.2 开始开始支持用户宏和 {HOST.*} 宏 。  | 
| Post | HTTP POST 变量。 在 Form data 模式下,指定属性和值。 值被自动进行 URL 编码。 来自场景变量、用户宏或 {HOST.*} 宏的值将被解析,然后自动进行 URL 编码。 在 Raw data 模式中,属性 / 值显示在一条线上,并与 & 符号连接。 Raw 方式的值可以使用 {{macro}.urlencode()} 或 {{macro}.urldecode()} 手动进行 URL 编码 / 解码。 例如:id=2345&userid={user} 如果 {user} 被定义为 web 场景的变量,则当执行步骤时,它的值会被替换。 如果你想对变量进行 URL 编码,用 {{user}.urlencode()} 替换 {user} 。 Zabbix 2.2 开始支持用户宏和 {HOST.*} 宏 。  | 
| 变量 (Variables) | 可用于 GET 和 POST 方法的步级变量。 指定属性和值。 步骤变量覆盖之前的场景变量或步骤变量。 然而,一个步骤变量的值仅影响之后的步骤(而不是当前步骤)。 它们具有以下格式: {macro}=value {macro}=regex:<regular expression> Zabbix 2.2 开始支持步骤变量。 Zabbix 2.2 开始,{HOST.*} 宏 和用户宏可以在此字段中使用。 在查询字段或提交表单数据时,变量会自动进行 URL 编码,但使用 raw 方式提交数据或者直接在 URL 中使用时,必须手动进行 URL 编码  | 
| HTTP 头 (Headers) | 执行请求时将发送的自定义 HTTP headers。 指定属性和值 步骤级别上的 headers 将覆盖为该场景指定的 headers。 例如,设置“User-Agent:”为空时,将覆盖在场景上设置的 User-Agent 名称。 支持用户宏和 {HOST.*} 宏、\ 这将设置 CURLOPT HTTPHEADER cURL 选项。 Zabbix 2.4 开始,支持指定自定义 HTTP 头  | 
| 跟踪重定向 (Follow redirects) | 选中该复选框以跟踪 HTTP 重定向。 将会设置 CURLOPT FOLLOWLOCATION cURL 选项。 Zabbix 2.4 开始支持此选项。  | 
| 仅检索标头 (Retrieve only headers) | 选中复选框,仅从 HTTP 响应中检索标题。 这将设置 CURLOPT NOBODY cURL 选项。 Zabbix 2.4 开始支持此选项。  | 
| 超时时间 (Timeout) | Zabbix 根据设置的秒数以内来处理 URL。 实际上,此参数定义为连接到 URL 的最大时间和执行 HTTP 请求的最长时间。 因此,Zabbix 不会在步骤上花费超过 2x 超时时间。 例如:15  | 
| 必需的字符串 (Required string) | 必需的正则表达式。 除非检索到的内容(HTML)匹配所需的模式,否则步骤将失败。 如果为空,则不执行检查。 例如: Zabbix 的主页、\ Welcome.*admin 注意 : 在此字段中不支持引用在 Zabbix 前端中创建的 正则表达式。 Zabbix 2.2 开始,支持用户宏和 {HOST.*} 宏  | 
| 状态码 (Required status codes) | 可以设置预期的 HTTP 状态代码列表。 如果 Zabbix 获取的 HTTP 状态码不在列表中,该步骤将认为为失败。 如果为空,则不执行检查。 例如:200,201,210-299 Zabbix 2.2 开始,支持用户宏。  | 
配置身份验证
身份验证选项卡允许您配置场景身份验证选项。


认证参数:
| 参数 | 说明 | 
|---|---|
| 验证 (Authentication) | 验证参数。 None – 未使用身份验证。 基本认证 – 使用基本认证。 NTLM authentication – 使用 NTLM 身份验证。 选择身份验证方法将提供两个附加字段,用于输入用户名和密码。 从 Zabbix 2.2 开始 ,用户宏可以在用户和密码字段中使用 。  | 
| 对等 SSL 验证 (SSL verify peer) | 选中复选框以验证 Web 服务器的 SSL 证书。 服务器证书将自动从系统的证书颁发机构(CA)位置获取。 您可以使用 Zabbix 服务器或代理配置参数 SSLCALOCATION覆盖 CA 文件的位置。 这将设置 CURLOPT SSL VAERIFYPEERcURL 参数. Zabbix 2.4 开始支持此选项。  | 
| SSL 验证主机 (SSL verify host) | 选中复选框以验证 Web 服务器证书的 公用名称 (Common Name) 字段或 主题备用名称 (Subject Alternate Name) 字段是否匹配、\ 这将会设置 CURLOPT SSL VERIFYHOST cURL 参数。 Zabbix 2.4 开始支持此选项。  | 
| SSL 证书文件 (SSL certificate file) | 用于客户端认证的 SSL 证书文件的名称。 证书文件必须为 PEM1格式。 如果证书文件还包含私钥,请将 SSL 密钥文件 (SSL key file) 字段留空。 如果密钥加密,请在 SSL 密钥密码 (SSL key password) 字段中指定密码。 包含此文件的目录由 Zabbix 服务器或代理配置参数 SSL CerLocation 指定。HOST.*宏和用户宏可以在此字段中使用。这将会设置 CURLOPT SSLCERT cURL 参数、\ Zabbix 2.4 开始支持此选项。  | 
| SSL 密钥文件 (SSL key file) | 用于客户端认证的 SSL 私钥文件的名称。 私钥文件必须为 PEM1格式。 包含此文件的目录由 Zabbix 服务器或代理配置参数 SSLKEYLOCATION 指定。HOST.* 宏和用户宏可以在此字段中使用。这将设置 CURLOPT SSLKEY cURL 参数。 Zabbix 2.4 开始支持此选项。  | 
| SSL 密钥密码 (SSL key password) | SSL 私钥文件密码。 用户宏可以在此字段中使用。 这将设置 CURLOPT KEYPASSWD cURL 参数. Zabbix 2.4 开始支持此选项。  | 
openssl pkcs12 -in ssl-cert.p12 -clcerts -nokeys -out ssl-cert.pem
openssl pkcs12 -in ssl-cert.p12 -nocerts -nodes -out ssl-cert.key
cat client.crt client.key > client.pem
Display
要查看定义的 Web 场景的详细数据,请转到 监控中 (Monitoring)→Web 或 最新数据 (Latest data)。 单击方案名称以查看更详细的统计信息。


可以在 监控中 (Monitoring)→仪表板 (Dashboard) 中查看 Web 监控场景的概述。
场景示例
概述
我们使用 Zabbix Web 监控来监控 Zabbix 的 Web 界面。我们想知道它是否可用、是否正常工作以及响应速度。
场景
Web 场景步骤 1
关闭网站服务。
[root@ken ~]# systemctl stop httpd
[root@ken ~]# ss -tnl | grep 80
查看监控。


点击name可以查看更详细的信息


Continue Reading
分布式系统监视zabbix讲解五之web监控的更多相关文章
- 分布式系统监视zabbix讲解五之web监控--技术流ken
		
Web 监控 概况 你可以使用 Zabbix 检查几个网站可用性方面. 如果要使用 Web 检测功能,必须在 编译Zabbix 的时候加入 cURL(libcurl) 的支持. 要使用 Web 监控, ...
 - 分布式系统监视zabbix讲解七之分布式监控--技术流ken
		
分布式监控 概述 Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控 代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器. Pro ...
 - 分布式系统监视zabbix讲解七之分布式监控
		
分布式监控 概述 Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控 代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器. Pro ...
 - 分布式系统监视zabbix讲解六之自定义监控项--技术流ken
		
宏 概述 Zabbix支持许多在多种情况下使用宏.宏是一个变量,由如下特殊语法标识: {MACRO} 根据在上下文中, 宏解析为一个特殊的值. 有效地使用宏可以节省时间,并使Zabbix变地更加高效. ...
 - 分布式系统监视zabbix讲解六之自定义监控项
		
概述 Zabbix支持许多在多种情况下使用宏.宏是一个变量,由如下特殊语法标识: {MACRO} 根据在上下文中, 宏解析为一个特殊的值. 有效地使用宏可以节省时间,并使Zabbix变地更加高效. 在 ...
 - 分布式系统监视zabbix讲解二之邮件报警通知--技术流ken
		
概述 在上一篇博客<分布式系统监视zabbix讲解一技术流ken>中已经详细讲解了如何安装zabbix,本篇博客将详细讲解如何使用zabbix监控另外一台主机,并实现email报警通知机制 ...
 - 分布式系统监视zabbix讲解二之邮件报警通知
		
概述 在上一篇博客<分布式系统监视zabbix讲解一技术流ken>中已经详细讲解了如何安装zabbix,本篇博客将详细讲解如何使用zabbix监控另外一台主机,并实现email报警通知机制 ...
 - 分布式系统监视zabbix讲解一之zabbix安装--技术流ken
		
zabbix概述 Zabbix是什么 Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持. Zabbix 是一个企业级的分布式开源监控方案. Zabbi ...
 - 分布式系统监视zabbix讲解十之监控tomcat--技术流ken
		
前言 在Zabbix中,JMX监控数据的获取由专门的代理程序来实现,即Zabbix-Java-Gateway来负责数据的采集,Zabbix-Java-Gateway和JMX的Java程序之间通信获取数 ...
 
随机推荐
- 前端 go.js 流程图基于vue开发项目案例
			
一.流程图效果 最近一段时间在研究go.js,它是一款前端开发画流程图的一个插件,也是一个难点,要说为什么是难点,首先,它是依赖画布canvas知识开发.其次,要依赖于内部API开发需求,开发项目需求 ...
 - JavaScript学习系列博客_22_JavaScript this(上下文对象)
			
this(上下文对象) - 我们每次调用函数时,解析器都会将一个上下文对象作为隐含的参数传递进函数. 使用this来引用上下文对象,根据函数的调用形式不同,this代表的对象也不同.不同的情况: 1. ...
 - Go Channel 详解
			
原文链接:Go Channel 详解 Channel类型 Channel类型的定义格式如下: ChannelType = ( "chan" | "chan" & ...
 - Intelligence Beyond the Edge: Inference on Intermittent Embedded Systems
			
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文. Abstract 能量收集技术为未来的物联网应用提供了一个很有前景的平台.然而,由于这些 ...
 - 宝塔,一个免费好用的 Linux/Windows 服务器管理面板
			
宝塔面板是什么? 宝塔面板是一款服务器管理软件,支持windows和linux系统,可以通过Web端轻松管理服务器,提升运维效率.例如:创建管理网站.FTP.数据库,拥有可视化文件管理器,可视化软件管 ...
 - 访问github太慢?我写了一个开源小工具一键变快
			
前言 GitHub应该是广大开发者最常去的站点,这里面有大量的优秀项目,是广大开发者寻找资源,交友学习的好地方.尤其是前段时间GitHub公布了一项代码存档计划--Arctic Code Vault, ...
 - Asp.Net Core Swagger 接口分组(支持接口一对多暴露)
			
开始之前,先介绍下swagger常用方法. services.AddSwaggerGen //添加swagger中间件 c.SwaggerDoc //配置swagger文档,也就是右上角的下拉 ...
 - python爬取酷我音乐(收费也可)
			
第一次创作,请多指教 环境:Python3.8,开发工具:Pycharm 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的 ...
 - A little something to get you started(Hacker101 CTF)
			
打开题目的页面发现只有”Welcome to level 0. Enjoy your stay.“这么一行普通的文字,然后习惯性的打开浏览器的开发者工具的“network”模块,按下F5发现网页在请求 ...
 - php中无参函数的RCE
			
学习一下php中无符号的问题. 1.无参数 <?php if(';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['code'])) { ev ...
 
			
		
