如果在Tomca7上运行一个web应用程序,我不想和我们的Nagios进行核对。 我决定用正则expression式来使用check_http插件。 我正在parsingtomcat的状态页面,并检查列“Running”是否为真。 状态页面的源代码如下所示(剪切):
<td class="row-left" bgcolor="#FFFFFF" rowspan="2"><small>Applicationname</small></td> <td class="row-center" bgcolor="#FFFFFF" rowspan="2"><small>true</small></td>
这两个信息分为两行。 所以我要检查的是以下内容:
./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”)。 另外,当我修改searchstring像这样强制一个关键:
./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'
我不知道这是为什么发生。 有人有任何想法? 谢谢,阿尼
为什么不使用/manager/text/list来查看纯文本pipe理器界面而不是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
从手册页check_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>