Плагин nagios nrpe: проблема с разрешением
У меня проблема с разрешением, которая сводит меня с ума. Я пытаюсь отслеживать звездочку на виртуальной машине 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), но я не понимаю, как я могу предоставить ему соответствующие разрешения.
3 ответа
Правильное решение:
в /etc/asterisk/asterisk.conf измените владельца сокета на
[files]
astctlpermissions = 0660
astctlowner = asterisk
astctlgroup = asterisk
И добавьте пользователя nrpe или nagios (вы используете пользователя, которого вы можете увидеть в nrpe.cfg) в группу звездочек.
Согласно странице руководства для плагина, вам нужно запустить плагин с помощью команды sudo, поэтому вы получите успешный результат, когда вы запустите плагин с помощью sudo.
Я выделил инструкции со страницы для вас:
Чтобы предоставить пользователю nagios права на выполнение сценария, попробуйте что-то вроде следующего в вашем файле / etc / sudoers:
nagios ALL=(ALL) NOPASSWD: /path/to/plugins/directory/check_asterisk_peers
Затем вызовите плагин с помощью sudo:
/path/to/sudo check_asterisk_peers
В конце концов мне удалось решить проблему, предоставив 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