NRPE, не могущий считать вывод, но почему?

Предполагая, что рассматриваемые библиотеки имеют выполнение Windows Server, мой совет состоит в том, чтобы пойти с примерно любым маршрутизатором малого бизнеса (мы используем Linksys RV042s), и просто выполните PRTG. Можно настроить его для сбора данных, работающих как услуга, и когда клиент будет выполнен, это затем загрузит данные, собранные из сервиса. Я рекомендую маршрутизатор бизнес-класса, потому что у них, более вероятно, будет вид SNMP, сообщая, что Вы ищете.

Существует несколько преимуществ этого:

  • Пользователи не должны входить в систему на реальном маршрутизаторе для сбора информации. По-моему, это уменьшает шанс, что им удастся повредить что-то. PRTG только для чтения.
  • Обучение пользователи на PRTG, вероятно, будет легче, чем обучение их при использовании интерфейса маршрутизатора.
  • Можно использовать PRTG, чтобы сделать простое уведомление по электронной почте, проверяющее ключевые системы или соединения VPN через ping, хотя Вы не можете получить сообщения, если их интернет-соединение (интернет-соединения) снижается полностью, или маршрутизатор снижается.
  • Минимальное время установки, требуемое, и в основном никакие дополнительные аппаратные средства.
  • Для маленьких установок (до 10 мониторов), PRTG свободен.
  • НЕДОСТАТОК: Я использую PRTG, но если существует способ получить числа использования ко времени суток за длительный период, я не знаю о нем. Вы в основном добираетесь в прошлый час (маленьким интервалом), прошедший день к минуте, прошлый месяц к часу и прошлому году днем. Пользовательские отчеты получают Вас немного больше, но не очень.

При противостоянии этому, если библиотека запускает своего рода программное обеспечение управления доступом (прозрачный прокси для фильтрации, и т.д.) затем, Вы, возможно, должны проверить больше в том, что совместимо для рассматриваемых систем. Если бы они в настоящее время не делают так, но хотели бы затем pfSense, могло бы быть лучше для Вас - возможно интегрировать пакеты, такие как SquidGuard или DansGuardian с ним (см. http://forum.pfsense.org/index.php?topic=7464.msg64662), хотя я на самом деле не использовал pfSense или те пакеты (все же, у меня есть клиенты, которые хотят сделать это).

27
задан 20 October 2011 в 14:40
20 ответов

У вас проблема с правами.

Измените команду на:

command[check_openmanage]=sudo /usr/lib/nagios/plugins/additional/check_openmanage -s -e -b ctrl_driver=0 bat_charge

(добавить sudo)

Затем добавьте пользователя nagios в sudoers:

nagios ALL=(ALL) NOPASSWD:/usr/lib/nagios/plugins/additional/check_openmanage

Или вы можно просто изменить файл ... Это тоже работает.

Если вы используете CentOS, Red Hat, Scientific или Fedora, не забудьте отключить Defaults requiretty в файле sudoers.

35
ответ дан 28 November 2019 в 20:04

check_nrpe was getting 'NRPE: Unable to read output' despite the check working locally because the plugin I was using did not work well with SELinux. Disable it and make sure to remove the file's contexts:

$ ls -l check_om_storage
-r-xr-xr--. 1 root nrpe 3808 Feb 27 17:54 check_om_chassis
$ setfattr -x security.selinux check_om_storage
$ ls -l check_om_chassis 
-r-xr-xr-- 1 root nrpe 3808 Feb 27 17:54 check_om_chassis
5
ответ дан 28 November 2019 в 20:04

В моем случае проблема была просто - пользователь nagios не смог выполнить сценарий. После chmod все заработало. Судо не нужно. Это даже зло :)

6
ответ дан 28 November 2019 в 20:04

Краткий ответ: если вы используете плагин Bash, убедитесь, что у вас есть shebang , в котором указывается, какой интерпретатор следует использовать: #! / Bin / bash


Я столкнулся с той же проблемой с плагином Nagios, который я написал сам. Сценарий выполнялся, как ожидалось, при запуске локально, даже при запуске от имени пользователя nagios с использованием следующего оператора:

$ sudo sudo -s -u nagios
$ /path/to/my/plugin.sh
STATUS: OK

Но удаленный запуск с использованием NRPE с сервера Nagios3 не увенчался успехом:

$ /usr/lib/nagios/plugins/check_nrpe -H my-nagios-client -c my_plugin
NRPE: Unable to read output

Я наконец решил этот случай добавив shebang в мой сценарий, поскольку оказалось, что при запуске сценария через NRPE не использовался тот же интерпретатор, что и при запуске через sudo sudo -s -u nagios .

11
ответ дан 28 November 2019 в 20:04

Проверить путь, разрешения, selinux, iptables.

У меня была проблема с путями в client: nrpe.cfg, дважды проверьте путь команды к имени плагина check_ *. Это может сбивать с толку (lib / local) (libexec / plugins) в качестве пути. Я по ошибке выдернул и поместил пути из предварительно запакованного cfg файла nrpe с комментариями для создания команд. Программа make install или yum plugin install помещает их в другой каталог.

по команде: / usr / local / nagios / libexec / check_disk

против

realpath: / usr / lib / nagios / plugins / check_disk

С сервера я смог подтвердить, что это не брандмауэр проблема, могла бы telnet к порту 5666, могла бы запустить blanket check_nrpe и получить статус как возвращаемое значение. Смогли выполнить команды локально, но nrpe указал неверный путь на клиенте в nrpe.cfg.

4
ответ дан 28 November 2019 в 20:04

Возможно, вы не установили плагины Nagios, NRPE не может их найти или получить к ним доступ.

Мне никогда не приходилось добавлять свои команды в Sudoers. Убедитесь, что команды принадлежат пользователю Nagios и их можно читать.

NRPE не может их найти или получить к ним доступ.

Мне никогда не приходилось добавлять свои команды в Sudoers. Убедитесь, что команды принадлежат пользователю Nagios и доступны для чтения.

NRPE не может их найти или получить к ним доступ.

Мне никогда не приходилось добавлять свои команды в Sudoers. Убедитесь, что команды принадлежат пользователю Nagios и доступны для чтения.

0
ответ дан 28 November 2019 в 20:04

Думаю, вы должны добавить плагины в свой локальный каталог / usr / lib64 / nagios / plugins / * . У меня была та же проблема, что и у вас, и я могу решить ее с помощью этого решения.

0
ответ дан 28 November 2019 в 20:04

У меня возникла проблема, которую вы пишете. Я провел тест на Perl. Поместите эту строку в файл /etc/nagios/nrpe.cfg , чтобы он заработал.

command [check_memory] = /usr/bin/perl /usr/lib64/nagios/plugins/check_memory -w 75-c 90 
0
ответ дан 28 November 2019 в 20:04

Есть действительно хорошая статья, которая охватывает всю установку и настройку NRPE агента с большим количеством примеров check_commands, я использую эту статью, когда мне нужно установить NRPE на новом сервере. Более того, в конце страницы вы можете найти классный скрипт, который автоматически устанавливает и настраивает NRPE для вас (на основе установленных вами переменных), статью можно найти: Здесь

0
ответ дан 28 November 2019 в 20:04

Отсутствуют плагины Nagios на клиенте nrpe.

Не используйте yum install nagios-plugins (nagios-plugins-2.0.3-1.el6.x86_64). Он не устанавливает все плагины. Загрузите nagios-plugins-1.4.11.tar.gz и следуйте инструкциям в этом документе.

http://www.thegeekstuff.com/2008/06/how-to-monitor-remote-linux-host-using- nagios-30 /

-1
ответ дан 28 November 2019 в 20:04

Обычно это происходит, когда сервер NRPE запускается с пользователем nrpe, а не с nagios.

Изменение значения nrpe_user на nagios в файле /etc/nagios/nrpe.cfg должно решить Вашу проблему.

При необходимости можно изменить и значение nrpe_group.

.
0
ответ дан 28 November 2019 в 20:04

Это вопрос разрешения, просто дайте право на выполнение сценария, и все будет хорошо :

вот пример : Before / Remote Host:

[root@puppet1 nrpe.d]# ls -l /usr/lib/nagios/plugins/check_mem.sh
-rwxr--r-- 1 root root 1598 Jul  7 10:55 /usr/lib/nagios/plugins/check_mem.sh

NRPE server :

[root plugins]# ./check_nrpe -H 172.19.9.200 -c check_mem_vb
NRPE: Unable to read output

After : Remote Host :

[root@puppet1 plugins]# chmod o+x /usr/lib/nagios/plugins/check_mem.sh

[root plugins]# ./check_nrpe -H 172.19.9.200 -c check_mem_vb
Memory: OK Total: 1980 MB - Used: 139 MB - 6% used|Total=2076479488;;;Used=145076224;;;Cache=1528111104;;Buffer=211890176;;;

Problem Resolved.

2
ответ дан 28 November 2019 в 20:04

В моем случае отказал только один плагин, а несколько других работали нормально. Оказалось, что это локальная проблема.

Плагин был check_mem.sh и выполнял команду grep для Mem на выходе free . Но общесистемный LOCALE вернул Speicher (немецкий) вместо Mem , поэтому все полученные значения были пустыми строками.

4
ответ дан 28 November 2019 в 20:04

Еще одна вещь, которую следует проверить: если ваша команда использует sudo -u <другой пользователь> для выполнения команды, каталог libexec ( и каталоги над ним) должны быть доступны для чтения пользователю, к которому выполняется sudoed.

Например, если ваша команда:

command[check_tomcat]=sudo -u tomcat /usr/local/nagios/libexec/check_tomcat ...

Пользователь tomcat должен иметь доступ к этому файлу.

Один из способов исправить это:

chmod 0775 /usr/local/nagios/
chmod 0755 /usr/local/nagios/libexec

Замена последней части на место, где находятся ваши исполняемые файлы

0
ответ дан 28 November 2019 в 20:04

У меня была эта проблема, и я решил отключить selinux

setenforce 0

-2
ответ дан 28 November 2019 в 20:04

В моем случае контролируемый файл журнала принадлежал root: adm, поэтому добавление пользователя nagios в группу adm сделало команду check_log успешной, но только при выполнении непосредственно на контролируемых хостах. Он продолжал терпеть неудачу при использовании check_nrpe на сервере Nagios, пока я не перезапустил службу nagios-nrpe-server на отслеживаемых хостах, например

service nagios-nrpe-server restart

Таким образом, очевидно, что перезапуск службы был необходим, чтобы изменение разрешений вступило в силу для NRPE, но это заняло у меня время, чтобы понять это.

1
ответ дан 28 November 2019 в 20:04

В моем случае проблема была связана с selinux (запущен RHEL 6.5, selinux настроен на принудительное исполнение).

Установка nagios-plugins- * через yum создаст ваши файлы плагинов в / usr / lib64 / nagios / плагины. Если вы проверите fcontext в этих файлах плагина (ls -lZ), вы увидите, что для файлов установлен тип контекста «nagios_system_plugin_exec_t», который является типом контекста, который ожидает check_nrpe.

В моем случае я создал собственный скрипт "check_mem.sh" с использованием "vi". У результирующего файла был установлен тип контекста «lib_t». Это приводило к тому, что nrpe выводил сообщение «NRPE: Unable to read output».

Изменение контекста файла на «nagios_system_plugin_exec_t» решило проблему:

chcon -t nagios_system_plugin_exec_t /usr/lib64/nagios/_megins/shcheck

Обычное устранение неполадок с selinux тоже указывало бы мне на эту проблему (проверка /var/log/audit/audit.log), но это, конечно, последнее, о чем я думал

Правка: chcon просто временно изменяет контекст. Чтобы его постоянно менять, используйте semanage fcontext -a -t nagios_system_plugin_exec_t /usr/lib64/nagios/plugins/check_mem.sh restorecon -vF /usr/lib64/nagios/plugins/check_mem.sh[12144 impression

1
ответ дан 28 November 2019 в 20:04

В случае использования настраиваемых подключаемых модулей NRPE обязательно распечатайте несколько вывод вместе со значением выхода. Если нет вывода из сценария, NRPE будет жаловаться, говоря «NRPE не может прочитать вывод» . Вы можете включить отладку в nrpe.cfg и увидеть эту ошибку.

1
ответ дан 28 November 2019 в 20:04

Только что возникла эта проблема во FreeBSD. После того, как в течение часа бился головой о стену, я понял, что проблема в том, что /usr/local/nagios/etc/nrpe.cfg указывал не на то место для sudo.

Чтобы найти правильное местоположение для указания для запуска команды sudo:

# whereis sudo

Затем я изменил command_prefix в nrpe.cfg с:

command_prefix = / usr / local / sudo

на:

command_prefix = / usr / local / bin / sudo

Затем запустил service nrpe restart , и проблема была решена.

Может быть аналогичная проблема в других операционных системах, просто еще одна вещь, чтобы проверить, если вы проверили все другие возможные проблемы с разрешениями, и вы все еще сталкиваетесь с этой проблемой.

0
ответ дан 28 November 2019 в 20:04

У меня была такая же проблема, и мне удалось решить ее, убив процесс нагиос (на контролируемой машине):

ps -ef | grep nagios
kill -9 [NagiosProcessNumber]
/etc/init.d/nagios-nrpe-server start

После этого все прошло нормально.

0
ответ дан 28 November 2019 в 20:04

Теги

Похожие вопросы