Я слежу за несколькими серверами Linux с помощью NRPE, и большинство проверок работают. Собственно, единственная проверка, которая не работает, - это check_disk
. Запуск пульта check_disk
из серверного терминала Nagios:
[root@nagios]# /usr/lib64/nagios/plugins/check_nrpe -H 10.200.X.X -c check_disk -a '-w 20% -c 10% /'
DISK OK - free space: / 271971 MB (97% inode=99%);| /=8321MB;236233;265762;0;295292
Запуск местного check_disk
с терминала отслеживаемого сервера:
[root@Monitored ~]# /usr/lib64/nagios/plugins/check_nrpe -H 127.0.0.1 -c check_disk -a '-w 20% -c 10% /'
DISK OK - free space: / 271971 MB (97% inode=99%);| /=8321MB;236233;265762;0;295292
это check_disk
команда возвращает ошибку "CHECK_NRPE: Error receiving data from daemon"
на каждом сервере, который он проверяет, что наводит меня на мысль, что проблема связана с тем, как написаны служба или команда, поэтому вот они: Команда из /etc/nagios/nrpe.cfg
файл:
[root@Monitored ~]# grep disk /etc/nagios/nrpe.cfg
command[check_local_disk]=sudo /usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
Команда из /etc/nagios/commands.cfg
файл:
# 'check_local_disk' command definition
define command{
command_name check_local_disk
command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}
Сервис от services.cfg
файл:
define service{
servicegroups Basic Functionality
hostgroup_name db_hosts,vm_hosts,linux_hosts
host_name localhost
service_description Check free disk space /
check_command check_nrpe!check_local_disk!20%!10%!/
use generic-service
}
Вот определение команды check_nrpe
:
define command{
command_name check_nrpe
command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
Вот информация о NRPE от /var/log/messages
на наблюдаемом сервере:
Jun 10 12:57:01 virt2 nrpe[755]: INFO: SSL/TLS initialized. All network traffic will be encrypted.
Jun 10 12:57:01 virt2 nrpe[756]: Starting up daemon
Jun 10 12:57:01 virt2 nrpe[756]: Server listening on 0.0.0.0 port 5666.
Jun 10 12:57:01 virt2 nrpe[756]: Server listening on :: port 5666.
Jun 10 12:57:01 virt2 nrpe[756]: Warning: Daemon is configured to accept command arguments from clients!
Jun 10 12:57:01 virt2 nrpe[756]: Listening for connections on port 0
Jun 10 12:57:01 virt2 nrpe[756]: Allowing connections from: 127.0.0.1,10.200.X.X
Вы знаете, как решить эту проблему? заранее спасибо
Данные, которые вы нам показываете, противоречивы.
На nagios
, вы показываете, что вызываете проверку на сервере monitored
используя check_nrpe следующим образом:
[корень @ nagios] # / usr / lib64 / nagios / plugins / check_nrpe -H 10.200.X.X -c check_disk -a '-w 20% -c 10% /'
но когда ты показываешь нам monitored
с nrpe.cfg
файл, проверка определена под другим именем:
команда [check_local_disk] = sudo / usr / lib64 / nagios / plugins / check_disk -w $ ARG1 $ -c $ ARG2 $ -p $ ARG3 $
(Прошу прощения за отсутствие форматирования, но мне нужна была возможность выделять больше, чем моноширинный шрифт). Мне кажется, что порядок параметров тоже неправильный, но я не эксперт по конфигурациям nrpe, которые позволяют передавать аргументы.
Во всяком случае, -c foo
аргумент check_nrpe
должен соответствовать command[foo]
в nrpe.cfg
, а это не так. Это может означать только то, что либо то, что вы нам показали, не так, или вы доказываете, что можете вызывать check_nrpe
против неправильного сервера.
редактировать: Я думаю, я уже довольно ясно пытался решить эту проблему. Вы говорите, что графический интерфейс неправильно выполняет проверку. ХОРОШО. Итак, вы правы, что обычный следующий шаг - запустить его из командной строки, но очень важно выполнить ту же проверку для одного и того же клиента. Вы показали нам клиента nrpe.cfg
, так предполагая, что клиент действительно 10.200.X.X
, с сервера покажите нам результаты
[root@nagios]# /usr/lib64/nagios/plugins/check_nrpe -H 10.200.X.X -c check_local_disk -a '-w 20% -c 10% /'
Было бы полезно увидеть check_nrpe
запись с сервера commands.cfg
файл, просто чтобы убедиться, что все в порядке. Теперь мы будем пытаться делать то, что делает сервер, поэтому, если приведенная выше команда не сработает, мы можем отладить и исправить сбой. Если это удастся, нам придется углубиться немного глубже.