Я спробував використовувати check_http, але маю успіх, навіть якщо веб-сайт переспрямований на сторінку помилок
Це можна вирішити за допомогою check_http --expect
. Ось документація з check_http --help :
-e, --expect = STRING список рядків, обмежених комами, принаймні один з них очікується в першому (статусному) рядку відповіді сервера (за замовчуванням: HTTP / 1.) Якщо вказане, пропускає всю іншу логіку рядка стану ( напр .: обробка 3хх, 4хх, 5хх)
Наступний приклад поверне "ОК" для коду відповіді HTTP 200 ОК , але дасть критичну помилку для переадресації 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"
check_http
Плагін підтримує-s string
варіант , який дозволяє вам шукати певну струну відповіді HTTP. Якщо сторінка успішно друкує певний рядок, ви можете перевірити її, щоб відрізнити її від помилки.