Я не хочу проверять с нашими Nagios, работает ли веб-приложение на 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'
Проблема в том, что ответ плагина всегда истинный («HTTP OK»), когда я использую параметр «-l». Также, когда я изменяю строку поиска, чтобы вызвать критическое:
./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
чтобы увидеть интерфейс менеджера простого текста вместо интерфейса 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>