Не уверен, в чем проблема, но я устанавливаю тест для двух виртуальных хостов, которые работают на одном веб-сервере. Я просто хочу убедиться, что 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$
}