如何在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
有关所有步骤的更详细信息,请参阅教程。
我有一个 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
有关所有步骤的更详细信息,请参阅教程。