分布式系统监视zabbix讲解五之web监控--技术流ken
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
查看监控。
点击name可以查看更详细的信息
分布式系统监视zabbix讲解五之web监控--技术流ken的更多相关文章
- 分布式系统监视zabbix讲解七之分布式监控--技术流ken
分布式监控 概述 Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控 代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器. Pro ...
- 分布式系统监视zabbix讲解五之web监控
Web 监控 概况 你可以使用 Zabbix 检查几个网站可用性方面. 如果要使用 Web 检测功能,必须在 编译Zabbix 的时候加入 cURL(libcurl) 的支持. 要使用 Web 监控, ...
- 分布式系统监视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实现百台服务器的自动化监控--技术流ken
前言 最近有小伙伴通过Q联系到我说:公司现在有百多台服务器,想要部署zabbix进行监控,怎么实现自动化全网监控? 本篇博客将讲解一个我工作时做的一个实际项目,现在写出来供大家以后参考使用. 实现自动 ...
- zabbix实现QQ邮件报警通知--技术流ken
前言 前几天搜了下网上使用zabbix邮件报警通知的文章,大多数还是使用mailx的方法,过程配置起来比较冗余繁琐,这几天想着把自己平时用到的qq邮件报警的方法分享出来供大家参考,以此减少不必要的步骤 ...
随机推荐
- Elasticsearch System Call Filters Failed to Install
Elasticsearch starts to run, error occurs: : system call filters failed to install; check the logs a ...
- 第2周个人作业:WordCount
Github地址: https://github.com/hddddd/Wordcount 1.PSP表格 PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 ...
- post和get请求的参数乱码
对于做Java WEB项目同学来说,中文乱码问题是一个经常遇到而又非常头痛的问题,而最容易出现乱码的环节就是在浏览器向服务器发送请求的过程,至于出现乱码的原因不是本文的关注的重点,想了解的朋友可以参考 ...
- 网络操作系统 第六章 Window Server 2008 活动目录
本章小结 在企业网络中,活动目录是必不可少的,它将网络中各种对象组织起来进行管理,方便了网络对象的查找,增强了网络的安全性,为用户的物流管理提供了极大的便利,本章首先介绍了活动目录的基本概念,然后通过 ...
- Exp2 后门原理与实践-------20164325王晓蕊
Exp2 后门原理与实践 任务一:使用netcat获取主机操作Shell,cron启动 1.windows获取linux shell 1.1 ipconfig 查看本机查看以太网适配器(8)的ipv ...
- Stacking Plates(存档待续.....(没有写思路和程序))
问题描述 盘子装运公司是一家网络零售商,顾名思义,是一家只销售盘子的公司.该公司销售的盘子由不计其数的生产厂商提供,品种是全宇宙最多的,为此公司的员工倍感自豪. 在最近的一次成本分析中,公司员工发现, ...
- Promise(一)
每个Promise对象就是一个值的代理,这个值在Promise创建时可以是未知的.Promise对象允许你为异步事件的成功操作和失败操作分别绑定对应的处理方法,让异步方法可以像同步方法那样返回值,但不 ...
- [转] The QCOW2 Image Format
The QCOW2 Image Format https://people.gnome.org/~markmc/qcow-image-format.html The QCOW image format ...
- 「ZJOI2017」树状数组(二维线段树)
「ZJOI2017」树状数组(二维线段树) 吉老师的题目真是难想... 代码中求的是 \(\sum_{i=l-1}^{r-1}a_i\),而实际求的是 \(\sum_{i=l}^{r}a_i\),所以 ...
- ECDSA数字签名算法
一.ECDSA概述 椭圆曲线数字签名算法(ECDSA)是使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟.ECDSA于1999年成为ANSI标准,并于2000年成为IEEE和NIST标准.它在 ...