您可以使用 Zabbix 对多个网站进行可用性方面监控:
要使用 Web 监控,您需要定义 web 场景。Web 场景包括一个或多个 HTTP 请求或“步骤”。Zabbix 服务器根据预定义的命令周期性的执行这些步骤,如果主机是通过Proxy代理监控的话,这些步骤将由proxy代理执行。
从 Zabbix2.2 开始,Web 场景和 Items,Triggers 等一样,是依附在 Hosts/Templates 上的。这意味着 web 场景也可以创建到一个模板里,然后应用于多个主机。
任何web场景都会收集下列数据:
对于web场景的所有步骤,都会收集下列数据:
执行 web 场景收集的数据保存在数据库中。数据自动用于图形、触发器和通知。
Zabbix 还支持获取 HTML 内容中是否存在设置的字符串。还可以模拟登录动作和模拟鼠标单击。
Zabbix web 监控同时支持 HTTP 和 HTTPS。当运行 web 场景时,Zabbix 将选择跟踪重定向。重定向硬编码的最大数量为 10 。在执行 web 场景时,所有 Cookie 都会保存。
配置 web 场景:
场景选项卡允许您配置此 Web 场景的通用参数。
“步骤”选项卡允许您配置 Web 场景步骤。 要添加 Web 场景步骤,请在 步骤 (Steps) 单击 添加 (Add)。
Name:Home
URL:https://www.baidu.com
Follow redirects:√
Timeout:15s
Required status codes:200
要查看定义的 Web 场景的详细数据,请转到 监控中 (Monitoring)→Web 或 最新数据 (Latest data)。 单击方案名称以查看更详细的统计信息。
可以在 监控中 (Monitoring)→仪表板 (Dashboard) 中查看 Web 监控场景的概述。
我们将添加一个场景来监控Zabbix的Web界面,该场景将执行多个步骤。
点击 配置 → 主机, 选择一个主机,然后在该主机行中单击 Web。 然后单击 创建Web场景。
在新的场景中,我们将场景命名为 Zabbix frontend,并为其创建一个新的 Zabbix frontend 应用。
注意,我们还需要创建两个变量:{user}和{password}。
单击 步骤 选项卡中的 添加 按钮添加单独的步骤。
Web 场景步骤 1
单击 Steps 选项卡中的 Add 按钮添加单独的步骤。
我们首先检查第一页响应是否正确,返回HTTP响应代码200,并包含文本“Zabbix SIA”。
Name:First page
URL:http://192.168.10.30/zabbix/index.php
Follow redirects: √
Timeout:15s
Required string:Zabbix SIA
Required status codes:200
完成配置步骤后,单击 添加。
Web 场景步骤 2
我们继续登录Zabbix前端,通过我们在场景级别{user}和{password}上定义的宏(变量)来实现。
注意,Zabbix前端在登录时使用JavaScript重定向,因此,我们必须先登录,只有在下一步的步骤中,我们才能检查登录功能。此外,登录步骤必须使用完整的URL以获取index.php文件 。
Follow redirects:√
Timeout:15s
Required status codes:200
Web 场景步骤 3
登录后,我们现在应该验证一下是否登陆成功。为此,我们检查一个仅在登录后可见的字符串 - 例如Zabbix-itcast。
Timeout:15s
Required string:Zabbix-itcast
Required status codes:200
Web 场景步骤 4
现在我们已经验证了前端是可访问的,我们可以登录并检索登录的内容,我们也应该注销 - 否则Zabbix数据库将被大量打开的会话记录占用资源。
Follow redirects:√
Timeout:15s
Required status codes:200
Web 场景步骤 5
我们可以通过查找用户名字符串来检查我们是否已经注销了。
Name:Logout check
URL:http://192.168.10.30/zabbix/index.php
完成步骤配置
Web 场景步骤的完整配置应如下所示:
通过以下方式查看场景 Monitoring → Web:
单击场景名称以查看更详细的统计信息:
Zabbix-Get是Zabbix中的一个程序,用于Zabbix-Server到Zabbix-Agent的数据获取,通常可以用来检测验证客户端的配置是否正确。
[root@linux30 zabbix]# zabbix_get -s 192.168.10.31 -k system.uname
Linux linux31 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64
[root@linux30 zabbix]#