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

Nagios check_by_ssh возвращает статус 3, хотя выполнение команды вручную работает?

После виртуализации центра обработки данных я заменяю старый сервер Nagios, предназначенный только для внутреннего использования, новым на новой виртуальной машине. Для простоты и поскольку мы знаем, что это работает, я просто скопировал старую систему, включая переустановку Nagios 3.

Большинство подробных проверок хостов выполняется с помощью check_by_ssh, доступ к удаленным системам осуществляется с помощью ключей ssh. Это всегда отлично работало в старой системе, однако в новой все проверки дают (например) «Удаленная команда check_disk -w5% -c3% -p / data -u GB вернула статус 3» в журнале nagios.log файл и на экране.

Установив ключи, я могу запускать команды вручную, и они возвращают ожидаемые значения, например:

ssh -i ~ng3/.ssh/id_rsa user@server "/usr/local/nagios/libexec/check_disk -w25% -c10% -p /store-web -u MB"

возвращается

DISK OK - free space: /store-web 1405862 MB (70%);| /store-web=609875MB;1511802;1814162;0;2015736

Но журнал и передняя часть говорят

UNKNOWN - check_by_ssh: Remote command 'check_disk -w5% -c3% -p /store-web -u MB' returned status 3 

Кто-нибудь может подсказать, что может быть не так? Нет баннеров SSH, прерывающих передачу данных, SSH без пароля был проверен, и полный доступ доступен для правильных пользователей, а команды либо указаны полностью, либо в пути - и запуск их вручную из окна Nagios работает нормально. Результаты одинаковы, независимо от того, указан ли закрытый ключ явно или только что принят пользователем.

Если бы это был самодельный плагин, я мог бы видеть, что проблема заключается в выдаче неправильных (или отсутствия) кодов выхода, но поскольку результаты такие же, как и в официальных плагинах Nagios (в данном случае check_disk), я предполагаю, что это не так.