Я хочу создать nagios-проверку моего безопасного веб-сайта. Все, что нужно сделать для проверки, - это войти на сайт с данными для входа, которые я передаю скрипту.
Кто-нибудь знает плагин или скрипт, которые позволят мне это сделать?
Я пробовал использовать check_http
, но я добиваюсь успеха, даже если веб-сайт перенаправляется на страницу с ошибкой.
Я пробовал использовать check_http, но мне это удается, даже если веб-сайт перенаправляется на страницу с ошибкой
Это можно решить с помощью check_http --expect
. Вот документация от check_http --help:
-e, --expect = STRING Список строк, разделенных запятыми, по крайней мере одна из них ожидается в первой (статусной) строке ответа сервера (по умолчанию: HTTP / 1.) Если указано, пропускает всю остальную логику строки статуса ( например: обработка 3xx, 4xx, 5xx)
В следующем примере будет возвращено «ОК» для 200 ОК Код ответа HTTP, но выдаст критическую ошибку для перенаправления 302.
host % check_http --expect=200
HTTP CRITICAL - Invalid HTTP response received from host: HTTP/1.0 301 OK
Для безопасного веб-сайта (через SSL) и аутентификации также ознакомьтесь с check_http --ssl
и --authorization
флаги.
-S, --ssl Подключиться через SSL. Порт по умолчанию 443
-a, --authorization = AUTH_PAIR Имя пользователя: пароль на сайтах с базовой аутентификацией
Или, возможно, вы на самом деле не хотите входить в систему, а просто хотите убедиться, что для страницы требуется имя пользователя / пароль, потому что это имя пользователя / пароль может стать проблемой для безопасности. В этом случае попробуйте что-нибудь вроде следующего / 401
- это код ответа HTTP для «Неавторизовано» или «Требуется авторизация» - 401
является обязательным, последующая текстовая строка является необязательной и может говорить одну из нескольких разных вещей, поэтому я просто говорю Nagios ожидать 401
.
check_http --expect="401"
Вы можете создавать более сложные проверки (в духе Behavior Driven Development / Monitoring) с помощью Огурец-нагиос.