Jak sprawdzić kod odpowiedzi HTTP zabezpieczonej strony za pomocą Nagios?

10

Chcę utworzyć czek nagios na mojej bezpiecznej stronie. Wszystko, co musisz zrobić, to zalogować się na stronie ze szczegółami logowania, które przekazuję skrypt.

Czy ktoś wie o wtyczce lub skrypcie, który pozwoli mi to zrobić?

Próbowałem użyć check_http, ale osiągam sukces, nawet jeśli witryna zostanie przekierowana na stronę błędu.

Simon Foster
źródło
check_httpWtyczka obsługuje -s stringopcję, która pozwala spojrzeć na pewien ciąg odpowiedzi HTTP. Jeśli strona pomyślnie drukuje określony ciąg, możesz go sprawdzić, aby odróżnić go od błędu.
Khaled

Odpowiedzi:

16

Próbowałem użyć check_http, ale odnoszę sukces, nawet jeśli strona jest przekierowana na stronę błędu

Można to rozwiązać za pomocą check_http --expect. Oto dokumentacja od check_http --help :

-e, --expect = STRING Rozdzielana przecinkami lista ciągów, przynajmniej jeden z nich jest oczekiwany w pierwszej linii (statusowej) odpowiedzi serwera (domyślnie: HTTP / 1.) Jeśli podana zostanie pominięta cała logika linii statusu ( np .: przetwarzanie 3xx, 4xx, 5xx)

Poniższy przykład zwróci „OK” dla kodu odpowiedzi 200 OK HTTP, ale da błąd krytyczny dla przekierowania 302.

host % check_http --expect=200
HTTP CRITICAL - Invalid HTTP response received from host: HTTP/1.0 301 OK

Aby uzyskać bezpieczną stronę internetową (przez SSL) i uwierzytelnianie, sprawdź także check_http --ssli --authorizationflagi.

-S, --ssl Połącz przez SSL. Domyślny port to 443

-a, --authorization = AUTH_PAIR Nazwa użytkownika: hasło w witrynach z podstawowym uwierzytelnianiem

Być może nie chcesz się logować do systemu, ale po prostu upewnij się, że strona wymaga nazwy użytkownika / hasła, ponieważ ta nazwa użytkownika / hasło może stać się zagrożeniem dla bezpieczeństwa. W takim przypadku spróbuj czegoś takiego: / 401to kod odpowiedzi HTTP dla „Nieautoryzowany” lub „Wymagana autoryzacja” - 401jest obowiązkowy, łańcuch tekstowy jest opcjonalny i może powiedzieć jedną z kilku różnych rzeczy, więc po prostu mówię Nagiosowi oczekiwać 401.

check_http --expect="401"
Stefan Lasiewski
źródło
2

Za pomocą Cucumber-Nagios możesz tworzyć bardziej złożone kontrole (w duchu rozwoju / monitorowania napędzanego zachowaniem) .

joschi
źródło