如何在zabbix中查看HTTP响应码?

How to check HTTP response code in zabbix?

我有一个 Zabbix server 2.2 和几个 linux 有网站的主机。如果 HTTP(s) 响应代码不是 200,我如何从 Zabbix 获得通知?

我试过这些触发器但没有成功:

    {owncloud:web.test.rspcode[Availability of owncloud,owncloud availability].last(,10)}#200

    {owncloud:web.test.error[Availability of owncloud].count(10,200)}<1

    {owncloud:web.test.error[Availability of owncloud].last(#1,10)}=200

但没有任何效果。我从来没有收到通知,代码不再是 200,即使它是 404,因为我已经将 owncloud 的 index.php 重命名为 index2.php

我发现了问题。您需要指定 URL 来检查文件。例如在您的网络场景中是这样的:

    https://owncloud.example.com/index.php

"Note that Zabbix frontend uses JavaScript redirect when logging in, thus first we must log in, and only in further steps we may check for logged-in features. Additionally, the login step must use full URL to index.php file." - https://www.zabbix.com/documentation/2.4/manual/web_monitoring/example

我还使用了以下表达式作为触发器:

    {owncloud:web.test.fail[Availability of owncloud].last()}>0

你已经设置了触发器 bye Expression

{host name:web.test.rspcode[Scenario name,Steps name].last()}=200

我按如下方式配置了应用程序和 Web 场景: 如果您已经配置主机,请转到步骤 1

1) Select host by Configuration-> Host groups -> select host (example server 1)

2) 转到 Config > Hosts > [Host Created Above] > Applications 并单击 Create Application

3) 现在您必须创建带有状态代码检查的 Web 场景,在我的例子中,我检查了状态代码 200。因此转到 Configuration > Hosts > [Host Created Above] > Web Scenarios 并单击 创建 Web 场景 .

备注:您必须select之前在第2步创建的应用程序

4) 之后,无需单击“添加”按钮,转到步骤 window,您必须为 chek 配置主机和参数。之后点击 添加 。在我的案例中,检查 HTTP 请求的状态代码 200 响应。

问题已得到充分回答,但我将提供一个更高级的解决方案,您可以将其用于所有 HTTP 状态代码。

我创建了一个项目来监视代理的所有 HTTP 状态代码,将它们绘制成图表,然后设置多个不同类型的触发器来观察最后的值和最后 N 分钟的计数。

我用来从 Nginx 或 Apache 访问日志中提取所有值的正则表达式是 ^(\S+) (\S+) (\S+) \[([\w:\/]+\s[+\-]\d{4})\] \"(\S+)\s?(\S+)?\s?(\S+)?\" (\d{3}|-) (\d+|-)\s?\"?([^\"]*)\"?\s?\"?([^\"]*)\"?\s

然后我设置了许多与我的特定情况相关的触发器

  • 101 切换协议
  • 301 永久移动
  • 302 重定向
  • 304 未修改
  • 400 次错误请求
  • 401 未经授权
  • 403 禁止
  • 404 未找到
  • 500 服务器错误

您的 Zabbix 代理具有读取主机上日志文件的权限也很重要。您可以使用此命令将 zabbix-agent 添加到 www-data 组。

$ sudo usermod -a -G www-data Zabbix

有关所有步骤的更详细信息,请参阅教程。