У меня есть рабочая установка Nagios, где я, например, отслеживать использование диска с помощью демона NRPE без анализа аргументов с помощью NRPE из соображений безопасности. Итак, я знаю, что NRPE работает.
Теперь я хотел бы проверить NFS с помощью check_mountpoints плагин, но я получаю
NRPE: Unable to read output
На хосте Nagios Monitor я установил
define command {
command_name check_mountpoints
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5666 -c check_mountpoints
}
define service {
use generic-service
name check_mountpoints
host_name example.com
service_description Check_mountpoints for nfs cifs davfs
check_command check_nrpe!check_mountpoints
contact_groups linux-admins
}
На удаленном хосте я установил
command[check_mountpoints]=/usr/lib/nagios/plugins/check_mountpoints.sh /nas1/home
Чтобы проверить правильность аргументов, команда выводит это
[root@nas ~]# /usr/lib/nagios/plugins/check_mountpoints.sh /nas1/home
OK: all mounts were found ( /nas1/home)
[root@nas ~]#
И на хосте монитора Nagios, и на удаленном хосте работает работающий демон NRPE.
Вопрос
Как мне отладить что-то подобное?
По моему опыту, эта ошибка вызвана отсутствием разрешений. Вы пытались выполнить клиентский сценарий nrpe от имени пользователя root. Попробуйте выполнить его от имени пользователя, от имени которого запущен демон nrpe. Это должно подсказать вам причину. Если это не помогает, попробуйте запустить
strace usr/lib/nagios/plugins/check_mountpoints.sh /nas1/home
как пользователь nrpe.
У меня была та же проблема, много раз это было разрешение. Установка разрешения или использование sudoers решают эту проблему.
Попробуйте войти в систему с пользователем nrpe / nagios (su - nrpe) и попробуйте выполнить команду.
Другой возможный вариант - это selinux, попробуйте отключить его для ТЕСТИРОВАНИЯ:
echo 0 > /selinux/enforce
Чтобы решить эту проблему, не делая плагин nagios общедоступным и / или исполняемым, добавьте пользователя nrpe в группу nagios.