Как заставить check_http -r искать ровно n экземпляров строки

У меня есть URL, который я могу запросить, чтобы убедиться, что мое приложение работает правильно. Результаты примерно такие как ниже. Проверка того, что "ok" в строке не говорит мне, что все хорошо, мне нужно знать, что это происходит 3 раза.

{"Хозяин": "имя хоста", "HTTP":{"Статус": "ОК"},"MySQL":{"Статус": "ОК"},"Монго":{"Статус": "ОК "}}

Я пытаюсь выполнить следующую команду, но думаю, что я не выполняю регулярные выражения правильно, может кто-то предложить?

/ usr / lib / nagios / plugins / check_http имя хоста -4 -w 3 -c 5 -u '/app/system/status' -r 'ok{3}' -p 8080

дает мне

HTTP CRITICAL: HTTP/1.1 200 OK - шаблон не найден - 245 байт за 0,011 секунды Время отклика | время =0,010820 с;3,000000;5,000000;0,000000 размер =245B;;;0

2 ответа

Регулярное выражение 'ok{3}' будет соответствовать букве 'o', за которой следуют ровно 3 'k. Я не помню, как pcre-совместимые nagios, так что они могут работать:

ok.*ok.*ok

или же

(ok.*?){3}

Какой смысл проверять все услуги за одну проверку? Скажем, httpd прощается, и ваше приложение не будет доступно без него.

Вы можете проверить весь ответ на странице:

-s, --string = STRING

String to expect in the content
/usr/lib/nagios/plugins/check_http host-name -4 -w 3 -c 5 -u '/app/system/status' -s "{"host":"host-name","http":{"status":"ok"},"mysql":{"status":"ok"},"mongo":{"status":"ok"}}"
Другие вопросы по тегам