Назад | Перейти на главную страницу

check_http! - ssl фактически проверяет http

При мониторинге службы SSL на хосте, который работает по протоколу HTTPS, но не по протоколу HTTP, Icinga предупреждает о коде возврата 403 Forbidden. Но это предупреждение касается HTTP, а не HTTPS.

Выполнение команды check_http вручную с параметром -S или --ssl возвращает код 200 OK (и ответ 403 Forbidden при запуске только с HTTP).

Но автоматическая проверка службы возвращает ошибку 403 с любым переключателем - check_http! -S или check_http! - ssl.

Icinga не жалуется на другие хосты SSL, контролируемые с помощью этой проверки службы, возможно потому, что все они также используют HTTP.

Icinga использует плагины Nagios, поэтому я думаю, что это либо проблема Nagios, либо (что более вероятно) проблема конфигурации.

Как исправить этот ошибочный отчет? На хосте работает служба SSL.

Это для Icinga 1.7.1-7, работающего на Debian wheezy. Спасибо!

Вы не можете просто передать "-S" или "--ssl" в качестве ARG для проверки, если это специально не написано для этого.

Иди посмотри на /etc/nagios-plugins/config/http.cfg, и все должно быть ясно. Пакеты Debian поставляются с более чем дюжиной различных команд check_http для различных случаев использования. Вы, вероятно, захотите использовать check_https или его вариант.

Для получения дополнительной информации см. Макросы и как они работают документы

Небольшое дополнение к ответу Кита: в настоящее время Icinga2 в Debian может включать /usr/share/icinga2/include/command-plugins.conf вместо того /etc/nagios-plugins, что не дублирует автоматически $HOSTADDRESS$ макрос для -H вариант.

Таким образом, check_http в конечном итоге запрашивает vhost по умолчанию для IP-адреса хоста, что может незаметно дать неожиданные результаты.

Узнав об этой ошибке, моя основная служба config. теперь выглядит так:

apply Service "check_https" {
    import "generic-service"

    check_command = "http"
    vars.http_warn_time = 10
    vars.http_critical_time = 50
    vars.http_vhost = "$address$"
    vars.http_ssl = true
    vars.http_sni = true
    vars.sla = "24x7"

    check_interval = 5m
    retry_interval = 2m

    assign where "https-website" in host.groups
}