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

nagios check_http возвращает 200 в командной строке, 404 в веб-интерфейсе

Не уверен, в чем проблема, но я устанавливаю тест для двух виртуальных хостов, которые работают на одном веб-сервере. Я просто хочу убедиться, что GET on / возвращается с HTTP 200. Когда я запускаю это в командной строке, проблем нет:

st:/etc/nagios3# /usr/lib/nagios/plugins/check_http www.example.com
HTTP OK: HTTP/1.1 200 OK - 14144 bytes in 0.055 second response time   |time=0.055208s;;;0.000000 size=14144B;;;0

как только я вставляю это в конфигурации, я получаю ПРЕДУПРЕЖДЕНИЕ, предупреждение 404:

в моем command.cfg:

define command {
    command_name check_http
    command_line $USER1$/check_http -H $HOSTNAME$
}

и в моем services.cfg:

define service {
 use generic-service
 host_name myhost
 service_description HTTP-WWW
 check_command check_httpname!www.example.com
}

В качестве общего примечания вам, вероятно, следует заглянуть в файлы журнала Apache, чтобы узнать, что происходит на стороне сервера.

Команда, которую вы запускаете в командной строке, не совпадает с командой в вашем файле конфигурации. В командной строке вы запускаете:

check_http host.example.com

Но в вашем файле конфигурации вы запускаете:

check_http -H host.example.com

Они делают две совершенно разные вещи! Читать документация Чтобы получить больше информации. Если вы используете виртуальные хосты на основе имен, эти две команды отправляют запросы на разные виртуальные серверы.

Думаю, у вас может быть опечатка:

define command {
    command_name check_http
    command_line $USER1$/check_http -H $HOSTNAME$
}

Может вы имели в виду:

define command {
    command_name check_httpname
    command_line $USER1$/check_http -H $HOSTNAME$
}