O regex 'ok {3}' corresponderia à letra 'o' seguido por exatamente 3 'k's. Não me lembro como o nagios é compatível com pcre, então eles podem funcionar:
ok.*ok.*ok
ou
(ok.*?){3}
Eu tenho um URL que posso consultar para garantir que meu aplicativo esteja sendo executado corretamente. Os resultados são algo como abaixo. Verificar se "ok" está na string não me diz que está tudo bem, eu preciso saber que isso ocorre 3 vezes.
{"host":"host-name","http":{"status":"ok"},"mysql":{"status":"ok"},"mongo":{"status":"ok"}}
Estou tentando o seguinte comando, mas acho que não estou fazendo o regex corretamente, alguém pode sugerir?
/usr/lib/nagios/plugins/check_http host-name -4 -w 3 -c 5 -u '/app/system/status' -r 'ok{3}' -p 8080
me dá
HTTP CRITICAL: HTTP/1.1 200 OK - pattern not found - 245 bytes in 0.011 second response time |time=0.010820s;3.000000;5.000000;0.000000 size=245B;;;0
O regex 'ok {3}' corresponderia à letra 'o' seguido por exatamente 3 'k's. Não me lembro como o nagios é compatível com pcre, então eles podem funcionar:
ok.*ok.*ok
ou
(ok.*?){3}
Qual é o objetivo de verificar todos os serviços em uma única verificação? Digamos, o httpd se despede e seu aplicativo não estará disponível sem ele.
Você pode verificar toda a resposta na página:
-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"}}"