плагин nagios nrpe: проблема с разрешением

2706
aag

У меня проблема с разрешением, которая сводит меня с ума. Я пытаюсь отслеживать звездочку на виртуальной машине Arch Linux, используя плагин "check_asterisk_peers". Я установил NRPE (удаленный агент Nagios). Соответствующий раздел nrpe.cfg:

command[check_users]=/usr/lib/monitoring-plugins/check_users -w 5 -c 10 command[check_asterisk_peers]=/usr/lib/monitoring-plugins/check_asterisk_peers -p monika_gigaset 

Вот что я получаю:

/usr/lib/monitoring-plugins/check_nrpe -H 10.10.10.10 -c check_users USERS OK - 2 users currently logged in |users=2;5;10;0 

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

Если я просто запускаю плагин (без вызова check_nrpe), я получаю:

aag ~ $ /usr/lib/monitoring-plugins/check_asterisk_peers -p monika_gigaset CRITICAL: Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?) 

однако, если я запускаю его с помощью sudo, он работает нормально (из этого я заключаю, что плагин не имеет достаточных привилегий при запуске без полномочий root):

aag ~ $ sudo /usr/lib/monitoring-plugins/check_asterisk_peers -p monika_gigaset OK: monika_gigaset 

Однако, если я запускаю плагин звездочки, я получаю:

aag ~ $ /usr/lib/monitoring-plugins/check_nrpe -H 10.10.10.10 -c check_asterisk_peers CRITICAL: Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?) 

То же самое, если я запускаю его с помощью sudo:

aag ~ $ sudo /usr/lib/monitoring-plugins/check_nrpe -H 10.10.10.10 -c check_asterisk_peers CRITICAL: Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?) 

Я уверен, что проблема является одним из разрешений, но не могу ее решить. Файл sudoers (отрывок) выглядит так:

root ALL=(ALL) ALL http ALL = NOPASSWD: /usr/sbin/asterisk -rx database *  nrpe ALL=(ALL) NOPASSWD: /usr/sbin/service,/usr/lib/monitoring-plugins/check_asterisk_peers asterisk ALL=(ALL) ALL  %wheel ALL=(ALL) ALL %admins ALL= (ALL) ALL Defaults targetpw # Ask for the password of the target user ALL ALL=(ALL) ALL # WARNING: only use this together with 'Defaults targetpw' 

Любая подсказка будет с благодарностью! Мой диагноз состоит в том, что плагин "check_asterisk_peers" не имеет разрешения для связи со звездочкой (которая запускается от имени root), но я не понимаю, как я могу предоставить ему соответствующие разрешения.

0

3 ответа на вопрос

1
Simon MC. Cheng

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

Я выделил инструкции со страницы для вас:

Чтобы предоставить пользователю nagios права на выполнение скрипта, попробуйте что-то вроде следующего в вашем файле / etc / sudoers:

nagios ALL=(ALL) NOPASSWD: /path/to/plugins/directory/check_asterisk_peers 

Затем вызовите плагин с помощью sudo:

/path/to/sudo check_asterisk_peers 
Спасибо Саймон. Вызов плагина с помощью sudo действительно работает. Но сервер Nagios вызывает nrpe, как в 'check_nrpe -H 10.10.10.10 -c check_asterisk_peers'. Я не могу заставить эту часть работать. Как вы видите, строка sudoers уже включена в мои sudoers (за исключением того, что она говорит «nrpe» вместо nagios, так как nrpe - рассматриваемый здесь демон). aag 8 лет назад 0
Мне интересно, не могли бы вы попытаться изменить значения команды с помощью sudo и посмотреть, работает ли она, например, команда [check_asterisk_peers] = / path / to / sudo / usr / lib / Monitoring-plugins / check_asterisk_peers -p monika_gigaset Simon MC. Cheng 8 лет назад 1
все еще нет радости. Я ввел в nrpe.cfg следующую команду `command [check_asterisk_peers] = sudo / usr / lib / monitor-plugins / check_asterisk_peers -p monika_gigaset`, и это приводит к` NRPE: Невозможно прочитать выходные данные`. Однако ввод точно такой же команды в командную строку работает просто отлично! Я начинаю отчаиваться ... aag 8 лет назад 0
это идентифицирует меня как общее n00b, ну и что. В журнале говорится: `pam_unix (sudo: auth): auth не может идентифицировать пароль для [root]`. Я до сих пор не знаю, как это исправить, но у меня есть предчувствие, что я приближаюсь ... aag 8 лет назад 0
Я думаю, что вы можете проверить два места: 1. передать полный путь для команды sudo, поэтому значение вашей команды изменится на `command[check_asterisk_peers]=/usr/bin/sudo /usr/lib/monitoring-plugins/check_asterisk_peers -p monika_gigaset`, 2. chcek out the link [link](http://serverfault.com/questions/596614/nagios-nrpe-unable-to-read-output), it said even if you mentioned the NRPE to use different user, for some application will still use nagios user account Simon MC. Cheng 8 лет назад 1
1
arheops

Правильное решение:

в /etc/asterisk/asterisk.conf измените владельца сокета на

[files] astctlpermissions = 0660 astctlowner = asterisk astctlgroup = asterisk 

И добавьте пользователя nrpe или nagios (вы используете пользователя, которого вы можете увидеть в nrpe.cfg) в группу звездочек.

0
aag

В конце концов мне удалось решить проблему, предоставив NOPASSWD nrpe и его группам. Однако безопасность не является оптимальной и может принести пользу от более строгих настроек. Вот соответствующая часть sudoers:

root ALL=(ALL) ALL http ALL = NOPASSWD: /usr/sbin/asterisk -rx database * nrpe ALL=(ALL) NOPASSWD: ALL asterisk ALL=(ALL) ALL %admins ALL= (ALL) NOPASSWD: ALL %wheel ALL=(ALL) NOPASSWD: ALL %sudo ALL=(ALL) NOPASSWD: ALL 
Это потенциально дыра в безопасности. Единственная цель пользователя nrpe - изолировать плагины nrpe или nrpe deamon от корневой среды. Вы отбрасываете все это этим файлом sudoers. С тем же результатом вы можете запустить nrpe под пользователем root. arheops 8 лет назад 1
Согласен. Я был счастлив получить его и запустить, но я был недоволен последствиями для безопасности. aag 8 лет назад 0

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