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.