Я уже настроил конфигурацию моей локальной сети для мониторинга 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.