如何用Zabbix HTTP Agent获取发现项的最终HTTP响应状态码?
解决方案
你的思路完全正确——利用HTTP agent item获取包含所有重定向的完整响应,再通过依赖项+正则预处理提取最终状态码,完美适配Zabbix 6.4.0之前无法创建Web场景发现原型的限制。
具体实现步骤
- 确认HTTP agent item已开启Follow redirects选项,确保能捕获包含所有重定向步骤的完整HTTP响应内容。
- 创建一个Dependent item,关联到上述HTTP agent item。
- 在依赖项的预处理规则中,添加「正则表达式」预处理,选择提取操作,使用以下正则表达式:
若要更严谨匹配HTTP版本格式,可使用:.*\nHTTP.* (\d{3}).*\nHTTP\/\d+(\.\d+)? (\d{3}) - 预处理的「多个结果」选项设置为保留最后一个(由于正则采用贪婪匹配,实际只会匹配到最后一组符合条件的状态码,此设置可进一步确保结果准确)。
正则说明
.*为贪婪匹配模式,会优先匹配到文本末尾前的所有内容,直到找到最后一行以HTTP开头的响应行,最终捕获该行中的三位数状态码,即重定向完成后的最终HTTP状态码。
内容的提问来源于stack exchange,提问作者Pierre de LESPINAY
相关产品推荐
相关产品推荐

