Nagios3 выдает предупреждение о мониторинге службы HTTP

Уже настроил мою локальную сетевую конфигурацию для мониторинга Nagios3. Я обнаружил проблему, заключающуюся в том, что Nagios3 сообщает о предупреждении в службе мониторинга HTTP сервера Debian с IP-адресом 192.168.1.52, который имеет отдельный виртуальный хост и массовый виртуальный хост для разработки приложений. Я получаю это сообщение о статусе:

ПРЕДУПРЕЖДЕНИЕ HTTP: HTTP /1.1 404 не найден

Я использовал инструменты Nagios для проверки. имя_сервера - это имя сервера vhost, которое я использовал в конфигурации Apache.

/ usr / lib / nagios / plugins / check_http -H имя_сервера -I 192.168.1.52

получение этого сообщения о статусе:

HTTP OK HTTP / 1.1 200 OK - 37900 байт за 0,504 секунды | время =0,503946 с;;;0,000000 размер =37900B;;;0

Но когда я проверяю так:

/usr/lib/nagios/plugins/check_http -I 192.168.1.52

I get the same status message as the warning, so I assume that I don't have Nagios completely well set up because doesn't recognize the vhosts for that server, how it should be as the check_http service shows.

Where should I look to fix that warning?

5 ответов

Решение

Люди . Большое спасибо за помощь, но я нашел ответ сам, прежде чем проверять любой из ваших ответов, извините!

Чтобы решить эту проблему, я создал собственную команду в файле commands.cfg, например:

определить команду {

   command_name    custom_check_http  
   command_line    $USER1$/check_http -H $HOSTNAME$ -I $HOSTADDRESS$  

}

Не совсем уверен насчет цели $USER1$, но он падает без него, с ошибкой в ​​127 облигаций.

Определения хоста уже были правильно написаны с host_name и адресом (извините за отсутствие информации!), Аналогично тому, что написал pQd.

определить хост {

   host_name SERVERNAME
   alias SERVERNAME_ALIAS
   address 192.168.1.52
   ...

}

Наконец, определение сервиса в файле services_nagios2.cfg просто простое, как по умолчанию:

определить услугу {

   hostgroup_name                  http-servers  
   service_description             Apache  
   check_command                   custom_check_http  
   use                             generic-service  
   notification_interval           0 ; set > 0 if you want to be renotified

}

I hadnt' realized the use of variables $HOSTNAME$ and $HOSTADDRESS$ before asking this question. Спасибо еще раз за помощь.

Как вы определяете сервис в nagios?

это должно быть что-то вроде этого:

define command{
command_name    my_check_http
command_line    $USER1$/check_http -H$ARG1$ -I $HOSTADDRESS$
}

define host{
use                     generic-host
host_name               something
alias                   something
address                 192.168.1.52
# ...
}

define service{
use  generic-service
host_name something
check_http_args!nameofvhost
# ...
}

Была такая же проблема на одном из наших веб-серверов. И это появилось после обновления на нашем сайте. они также изменили заголовки в IIS, и поэтому ошибка стала появляться.

решение: изменилось имя сервера на имя сайта; "имя сервера" на "site.com"

В вашем services.cfg либо проверьте имя сервера вместо IP, либо проверьте порт вместо ответа http.

Пример последнего:

check_command check_tcp! 80

Я бы попытался обойти Nagios и использовать wget из командной строки на вашем хосте Nagios, чтобы проверить URL-адреса, которые вы отправляете в Nagios:

wget http://192.168.1.52/
wget http://servername/

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

dig servername

подтвердить.

Общий совет по отладке Nagios - использовать опцию -v, которую большинство плагинов реализуют для получения подробного вывода. Скрипт capture_plugin действительно полезен для захвата отладочной информации, когда плагин работает под Nagios.

Другие вопросы по тегам