Portál AbcLinuxu, 6. května 2025 06:18
Zdravím,
Chtěl jsem ze zeptat, zda někdo neví jak přemluvit check_http plugin Nagiosu aby bral v potaz nezbytnost ověření odpovědi pomoci regexpu a pokud tam daný patern nenajde tak zahlásil status failed nebo alespoň warning...
Současná situace je následující:
Následující check jsem si odladil v terminálu a pak jsem ho zapsal do konfigurace nagiosu...
/usr/lib/nagios/plugins/check_http -H jméno_stroje-u "/servlet/něco.něcojiného.ještěněco?Parametr1=hodnota1¶metr2=hodnota2" -v -r 'regexp_string' --post=tělopostu
Krásně to funguje ale pokud se stane že vypadne ta služba který zajištuje aby v odpovědi na POST byl správný 'regexp_string' tak mi Nagios nic nenahlásí a stále má status této služby jako OK a pouze ve status information najdu hlášku "HTTP Critical - pattern not found". Pokud je vše v pořádku tak to hlásí "HTTP OK HTTP/1.1 200 OK -0.01 second response time"
Nevíte někdo jak to přemluvit? A nebo se to dá vyřešit jen modifikací check_http pluginu?
Dobry den,
Bez upravy kodu to nepujde, nasel jsem tam chybu:
-----------------------------------------
else if ((errcode == REG_NOMATCH && invert_regex == 0) || (errcode == 0 && invert_regex == 1)) {
if (invert_regex == 0)
msg = strdup(_("pattern not found"));
else
msg = strdup(_("pattern found"));
printf (("%s - %s%s|%s %s\n"),
_("HTTP CRITICAL"),
msg,
(display_html ? "</A>" : ""),
perfd_time (elapsed_time), perfd_size (pagesize));
exit (STATE_CRITICAL);
-----------------------------------------
Ale pokud to vrati "pattern not found" tak to nevyhodi exit status,
ale jede to dal, takze to opravime asi takto:
else if ((errcode == REG_NOMATCH && invert_regex == 0) || (errcode == 0 && invert_regex == 1)) {
if (invert_regex == 0)
msg = strdup(_("pattern not found"));
printf (("%s - %s%s|%s %s\n"),
_("HTTP CRITICAL"),
msg,
(display_html ? "</A>" : ""),
perfd_time (elapsed_time), perfd_size (pagesize));
exit (STATE_CRITICAL);
else
msg = strdup(_("pattern found"));
printf (("%s - %s%s|%s %s\n"),
_("HTTP CRITICAL"),
msg,
(display_html ? "</A>" : ""),
perfd_time (elapsed_time), perfd_size (pagesize));
exit (STATE_CRITICAL);
-----------------------------------------
Skuste to jinak se to da postnout jako bug.
NN
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.