У меня есть URL-адрес, который я могу запросить, чтобы убедиться, что мое приложение работает правильно. Результаты примерно такие, как показано ниже. Проверка того, что в строке есть "ok", не говорит мне, что все в порядке, мне нужно знать, что это происходит 3 раза.
{"host": "host-name", "http": {"status": "ok"}, "mysql": {"status": "ok"}, "mongo": {"status": "ok "}}
Я пытаюсь выполнить следующую команду, но, полагаю, я неправильно выполняю регулярное выражение, может кто-нибудь предложить?
/ 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 size = 245B ;;; 0
Регулярное выражение «ok {3}» будет соответствовать букве «o», за которой следует ровно 3 «k». Я не помню, насколько nagios совместим с pcre, поэтому они могут работать:
ok.*ok.*ok
или
(ok.*?){3}
Какой смысл проверять все услуги одним чеком? Скажем, httpd прощается, и ваше приложение не будет доступно без него.
Вы можете проверить весь ответ на странице:
-s, --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"}}"