如何使用 Zabbix 代理监控 HTTP URL

如何使用 Zabbix 代理监控 HTTP URL

我有一个监控场景,我想监控 LAN 中的一些 HTTP URL,并将结果发送到 Internet 上的 Zabbix 服务器。Zabbix 可用于监控 HTTP URL,而无需使用代理,然后主服务器将在 Web 监控场景中直接监控 HTTP URL,并且 URL 应该对 Zabbix 服务器可见。但在我的场景中,HTTP 服务位于 NAT 后面,因此我应该使用“Zabbix 活动代理”来监控它们。我在 Zabbix 代理中找不到任何用于此目的的项目。有人知道我应该如何完成这项任务吗?

编辑:我知道 zabbix 可用于本地主机的聚合监控,但代理可用于主机的监控项目。我找不到任何用于监控主机(主动或被动主机)上 HTTP URL 的项目。

问候 Sajad

答案1

这就是 Zabbix代理人是为了。

您在网络内部安装一个 Zabbix 代理,它可以到达要监控的设备,然后在 Zabbix 服务器中添加代理并选择将通过代理监控的主机。

查看文档有关设置 Zabbix 代理的完整详细信息。

答案2

您可以创建自定义用户参数,在其中运行 curl 以监控您想要监控的 URL。如下所示:

UserParameter=host.url[*],curl -iLs $1 | grep -c "HTTP/1.1 200"

更多详细信息请参阅文档

答案3

1)在服务器上的 zabbix-agent conf 中启用 EnableRemoteCommands: sed -i 's/# EnableRemoteCommands=0/EnableRemoteCommands=1/' /path/to/zabbix_agentd.conf

2)在zabbix-agent conf中创建一个UserParameter来检查URL: UserParameter=check.url[*],curl -s -o /dev/null -w '%{http_code}' $1

3)重新启动Zabbix代理: systemctl restart zabbix-agent.service

现在你可以检查任何 URL:

zabbix_get -s server-IP-or-DNS -k 'check.url[https://www.google.com]'
200

如果返回 200,则表示 URL 正常。您可以检查所有 HTTP 状态代码这里

如果需要,您可以为 curl 命令添加超时时间--connect-timeout 30(以秒为单位)

答案4

  1. 在您的网络内安装 Zabbix 代理。(PROXY-A)
  2. 在您的网络内部,在计算机上安装 Zabbix 代理。(计算机 B)
  3. 在 Zabbix 控制台上添加新主机 COMPUTER-B,但请确保选择由代理 PROXY-A 监控
  4. 在COMPUTER-B的属性上,创建一个指向要监控的内部网站的Web场景。

Zabbix 代理 PROXY-A 应该处于活动状态。

COMPUTER-B 应该处于活动状态。

相关内容