Предполагая, что рассматриваемые библиотеки имеют выполнение Windows Server, мой совет состоит в том, чтобы пойти с примерно любым маршрутизатором малого бизнеса (мы используем Linksys RV042s), и просто выполните PRTG. Можно настроить его для сбора данных, работающих как услуга, и когда клиент будет выполнен, это затем загрузит данные, собранные из сервиса. Я рекомендую маршрутизатор бизнес-класса, потому что у них, более вероятно, будет вид SNMP, сообщая, что Вы ищете.
Существует несколько преимуществ этого:
При противостоянии этому, если библиотека запускает своего рода программное обеспечение управления доступом (прозрачный прокси для фильтрации, и т.д.) затем, Вы, возможно, должны проверить больше в том, что совместимо для рассматриваемых систем. Если бы они в настоящее время не делают так, но хотели бы затем pfSense, могло бы быть лучше для Вас - возможно интегрировать пакеты, такие как SquidGuard или DansGuardian с ним (см. http://forum.pfsense.org/index.php?topic=7464.msg64662), хотя я на самом деле не использовал pfSense или те пакеты (все же, у меня есть клиенты, которые хотят сделать это).
У вас проблема с правами.
Измените команду на:
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.
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
В моем случае проблема была просто - пользователь nagios не смог выполнить сценарий. После chmod все заработало. Судо не нужно. Это даже зло :)
Краткий ответ: если вы используете плагин 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
.
Проверить путь, разрешения, 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.
Возможно, вы не установили плагины Nagios, NRPE не может их найти или получить к ним доступ.
Мне никогда не приходилось добавлять свои команды в Sudoers. Убедитесь, что команды принадлежат пользователю Nagios и их можно читать.
NRPE не может их найти или получить к ним доступ.Мне никогда не приходилось добавлять свои команды в Sudoers. Убедитесь, что команды принадлежат пользователю Nagios и доступны для чтения.
NRPE не может их найти или получить к ним доступ.Мне никогда не приходилось добавлять свои команды в Sudoers. Убедитесь, что команды принадлежат пользователю Nagios и доступны для чтения.
Думаю, вы должны добавить плагины в свой локальный каталог / usr / lib64 / nagios / plugins / *
.
У меня была та же проблема, что и у вас, и я могу решить ее с помощью этого решения.
У меня возникла проблема, которую вы пишете. Я провел тест на Perl. Поместите эту строку в файл /etc/nagios/nrpe.cfg
, чтобы он заработал.
command [check_memory] = /usr/bin/perl /usr/lib64/nagios/plugins/check_memory -w 75-c 90
Есть действительно хорошая статья, которая охватывает всю установку и настройку NRPE агента с большим количеством примеров check_commands, я использую эту статью, когда мне нужно установить NRPE на новом сервере. Более того, в конце страницы вы можете найти классный скрипт, который автоматически устанавливает и настраивает NRPE для вас (на основе установленных вами переменных), статью можно найти: Здесь
Отсутствуют плагины 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 /
Обычно это происходит, когда сервер NRPE запускается с пользователем nrpe, а не с nagios.
Изменение значения nrpe_user
на nagios в файле /etc/nagios/nrpe.cfg
должно решить Вашу проблему.
При необходимости можно изменить и значение nrpe_group
.
Это вопрос разрешения, просто дайте право на выполнение сценария, и все будет хорошо :
вот пример : 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.
В моем случае отказал только один плагин, а несколько других работали нормально. Оказалось, что это локальная проблема.
Плагин был check_mem.sh
и выполнял команду grep для Mem
на выходе free
. Но общесистемный LOCALE вернул Speicher
(немецкий) вместо Mem
, поэтому все полученные значения были пустыми строками.
Еще одна вещь, которую следует проверить: если ваша команда использует 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
Замена последней части на место, где находятся ваши исполняемые файлы
В моем случае контролируемый файл журнала принадлежал root: adm, поэтому добавление пользователя nagios в группу adm сделало команду check_log успешной, но только при выполнении непосредственно на контролируемых хостах. Он продолжал терпеть неудачу при использовании check_nrpe на сервере Nagios, пока я не перезапустил службу nagios-nrpe-server на отслеживаемых хостах, например
service nagios-nrpe-server restart
Таким образом, очевидно, что перезапуск службы был необходим, чтобы изменение разрешений вступило в силу для NRPE, но это заняло у меня время, чтобы понять это.
В моем случае проблема была связана с 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
В случае использования настраиваемых подключаемых модулей NRPE обязательно распечатайте несколько вывод вместе со значением выхода. Если нет вывода из сценария, NRPE будет жаловаться, говоря «NRPE не может прочитать вывод» . Вы можете включить отладку в nrpe.cfg и увидеть эту ошибку.
Только что возникла эта проблема во 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
, и проблема была решена.
Может быть аналогичная проблема в других операционных системах, просто еще одна вещь, чтобы проверить, если вы проверили все другие возможные проблемы с разрешениями, и вы все еще сталкиваетесь с этой проблемой.
У меня была такая же проблема, и мне удалось решить ее, убив процесс нагиос (на контролируемой машине):
ps -ef | grep nagios
kill -9 [NagiosProcessNumber]
/etc/init.d/nagios-nrpe-server start
После этого все прошло нормально.