Nagios check_http - 使用正则表达式和 linespan 检查 tomcat 应用程序状态

Nagios check_http - 使用正则表达式和 linespan 检查 tomcat 应用程序状态

我想要使​​用我们的 Nagios 检查 Web 应用程序是否在 Tomca7 上运行。我决定使用带有正则表达式的 check_http 插件。我正在解析 tomcat 的状态页面并检查“正在运行”列是否为真。状态页面的源代码如下所示(已剪辑):

<td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small>Applicationname</small></td>
<td class="row-center" bgcolor="#FFFFFF" rowspan="2"><small>true</small></td>

这 2 条信息位于 2 行不同的内容中。因此,我要检查的内容如下:

./check_http -I 111.111.111.111 -p 8080 -a user:password -u /manager/html -rl 'Applicationname</small></td>\n.<td class="row-center" bgcolor="#FFFFFF" rowspan="2"><small>true'

问题是,当我使用参数“-l”时,插件的响应始终为真(“HTTP OK”)。此外,当我像这样修改搜索字符串以强制执行关键操作时:

./check_http -I 111.111.111.111 -p 8080 -a user:password -u /manager/html -rl 'Applicationname</small></td>\n.<td class="row-center" bgcolor="#FFFFFF" rowspan="2"><small>fail_true'

我不知道为什么会发生这种情况。有人知道吗?谢谢,Arny

答案1

为什么不使用/manager/text/list来查看纯文本管理器界面而不是 HTML 界面:

./check_http -I 111.111.111.111 -p 8080 -a user:password -u /manager/text/list -s 'Applicationname:running'

HTTP OK: HTTP/1.1 200 OK - 510 bytes in 0.003 second response time |time=0.003004s;;;0.000000 size=510B;;;0

答案2

来自手册页检查http“-s, --string=STRING 内容中预期的字符串”您尝试过使用“-s”吗?

$  ./check_http  -I localhost -p 80 -s True -u /test.html
HTTP CRITICAL: HTTP/1.1 200 OK - string 'True' not found on 'http://localhost:80/test.html' -    419 bytes in 0.001 second response time |time=0.000667s;;;0.000000 size=419B;;;0

$  ./check_http  -I localhost -p 80 -s true -u /test.html
HTTP OK: HTTP/1.1 200 OK - 419 bytes in 0.001 second response time |time=0.000776s;;;0.000000    size=419B;;;0

$  cat /var/www/html/test.html 
<td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small>Applicationname</small></td>
<td class="row-center" bgcolor="#FFFFFF" rowspan="2"><small>true</small></td>

相关内容