Nagios 插件:为什么 check_http -v 在 html 输出之间添加奇数?

问题描述

一个简单的问题,我已经花了几个小时寻找答案: 尽管可以证明其有效性,但以下 HTTP 检查不起作用: ./check_http --sni -H www.wikimedia.de -u /ueber-uns/ -S -s "cli-privacy-readmore"

通过访问源代码搜索它来验证这一点:https://www.wikimedia.de/ueber-uns/

冗长的开关提供了更多的洞察力,尽管这就是我所知道的:

> ./check_http --sni -H www.wikimedia.de -u /ueber-uns/ -S -s "cli-privacy-readmore" -v | grep cli-privacy-rea -A2 -n
1348:                <a class="cli-privacy-rea
1349-3000
1350-dmore" data-readmore-text="Zeig mehr" data-readless-text="Zeige weniger"></a>            </div>

为什么里面有 3000(第 1349 行)?我已经发现它是十六进制的并且以某种方式用于长度估计。但是无论是查看 tcpdump 内部(值以某种方式传输,或随后添加到数据包中),还是使用其他变量(其他网关、操作系统、站点)的测试都无法让我更接近解决方案。

有人可以帮我吗?

编辑:

测试:

  • Archlinux check_http v2.3(监控插件2.3)
  • Ubuntu 18.04 check_http v2.2(监控插件 2.2)

解决方法

您的问题不可重现。

# check_http --version
check_http v2.3.3 (nagios-plugins 2.3.3)
# check_http --sni -H www.wikimedia.de -u /ueber-uns/ -S -s "cli-privacy-readmore" -v | grep cli-privacy-rea -A2 -n
1340:                <a class="cli-privacy-readmore" data-readmore-text="Zeig mehr" data-readless-text="Zeige weniger"></a>            </div>
1341-        </div>
1342-        <div class="cli-col-12 cli-align-items-stretch cli-px-0 cli-tab-section-container">
# check_http --sni -H www.wikimedia.de -u /ueber-uns/ -S -s "cli-privacy-readmore"
HTTP OK: HTTP/1.1 200 OK - 95466 bytes in 0.375 second response time |time=0.375144s;;;0.000000 size=95466B;;;0

尝试更新版本的插件。

编辑:您可能也不需要为此使用 Nagios 插件,因为这是一个非常基本的用例,除非您需要 perfdata 或类似的东西,否则您可以这样做:

# curl --silent https://www.wikimedia.de/ueber-uns/ | grep -q "cli-privacy-readmore" ; echo $?
0

# curl --silent https://www.wikimedia.de/ueber-uns/ | grep -q "banana" ; echo $?
1