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

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

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

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

Для проверки я использовал инструменты Nagios. servername - это имя 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 size = 37900B ;;; 0

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

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

Я получаю то же сообщение о состоянии, что и предупреждение, поэтому я предполагаю, что у меня нет полностью настроенного Nagios, потому что он не распознает vhosts для этого сервера, как это должно быть, как показывает служба check_http.

Где мне искать, чтобы исправить это предупреждение?

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

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

define command {

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

}

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

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

define host {

   host_name SERVERNAME
   alias SERVERNAME_ALIAS
   address 192.168.1.52
   ...

}

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

define service {

   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

}

Я не осознавал использование переменных $ HOSTNAME $ и $ HOSTADDRESS $, прежде чем задавать этот вопрос. Спасибо еще раз за помощь.

как вы определяете сервис в 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.