问题描述
一个简单的问题,我已经花了几个小时寻找答案:
尽管可以证明其有效性,但以下 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 内部(值以某种方式传输,或随后添加到数据包中),还是使用其他变量(其他网关、操作系统、站点)的测试都无法让我更接近解决方案。
有人可以帮我吗?
编辑:
测试:
解决方法
您的问题不可重现。
# 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