Triggers 如何在zabbix中检查HTTP响应代码?

Triggers 如何在zabbix中检查HTTP响应代码?,triggers,zabbix,http-response-codes,Triggers,Zabbix,Http Response Codes,我有一台Zabbix服务器2.2和一些带有网站的linux主机。如果HTTPs响应代码不是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

我有一台Zabbix服务器2.2和一些带有网站的linux主机。如果HTTPs响应代码不是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。例如,在您的web场景中:

    https://owncloud.example.com/index.php
请注意,Zabbix前端在登录时使用JavaScript重定向,因此首先我们必须登录,只有在进一步的步骤中,我们才能检查登录的功能。此外,登录步骤必须使用index.php文件的完整URL。-

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

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

您已经设置了一个表达式

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

我对应用程序和Web场景进行了如下配置: 如果已配置主机,请转至步骤1

1按配置选择主机->主机组->选择主机示例服务器1

2转到配置>主机>[上面创建的主机]>应用程序,然后单击创建应用程序

3现在您必须使用状态代码检查创建Web场景,在我的示例中,我检查了状态代码200。因此,请转到配置>主机>[上面创建的主机]>Web场景,然后单击创建Web场景

备注:您必须选择在步骤2创建的上一个应用程序

4之后,不点击添加按钮,进入步骤窗口,您必须为chek配置主机和参数。然后单击Add。在我的cas e中,检查HTTP请求的状态代码200响应


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

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

用于从Nginx或Apache访问日志中提取所有值的regex I是 ^\S++\S++\[\w:\/]+\S[+\-]\d{4}\]\\S++\S?\S?\S+?\\d{3}-\d++-\S?[^\]*\?\S?[^\]*?\S

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

101交换协议 301永久搬迁 302重定向 304未修改 400错误请求 401未经授权 403禁止 404找不到 500服务器错误 同样重要的是,您的Zabbix代理具有读取主机上日志文件的权限。可以使用此命令将zabbix代理添加到www数据组

$sudo usermod-a-G www-data-Zabbix

有关所有步骤的详细信息,请参见教程


您可以在web场景的特定步骤中定义所需的状态代码,请参见。这已经有帮助了吗?没有,我已经在那里设置了200,但没有成功。