nagios nrpe plugin: problema de permissão

0

Eu tenho um problema de permissão que está me deixando louco. Eu estou tentando monitorar o asterisco em uma máquina virtual de arco linux, usando o plugin "check_asterisk_peers". Eu instalei o NRPE (o agente remoto do Nagios). A seção relevante do 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

Aqui está o que estou recebendo:

/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

Agora, isso me diz que o NRPE está funcionando bem e que todas as permissões estão definidas corretamente.

Se eu simplesmente executar o plug-in (sem invocar check_nrpe), recebo:

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?)

no entanto, se eu rodá-lo com o sudo funciona bem (a partir do qual eu concluo que o plugin não tem privilégios suficientes quando executado como não-raiz):

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

Se, no entanto, executar o plug-in asterisco, obtenho:

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?)

mesma coisa se eu rodar com o 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?)

Tenho certeza de que o problema é de permissão, mas não consigo resolvê-lo. O arquivo sudoers (trecho) é como:

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'

Qualquer dica seria muito apreciada! Meu diagnóstico é que o plug-in "check_asterisk_peers" não tem permissão para entrar em contato com o asterisco (que é executado como root), mas não entendo como posso conceder as permissões apropriadas a ele.

    
por aag 06.08.2016 / 19:36

3 respostas

1

Solução correta:

no /etc/asterisk/asterisk.conf altere o proprietário do soquete para

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

E adicione o usuário nrpe ou nagios (usuário que você pode ver em nrpe.cfg) ao grupo asterisco.

    
por 07.08.2016 / 19:55
1

De acordo com a página de manual do plug-in, você precisa executar o plug-in com o comando sudo, portanto você tem um resultado bem sucedido quando você executa o plugin com o sudo.

Eu destaquei as instruções da página para você:

Para conceder as permissões de usuário nagios para executar o script, tente algo como o seguinte em seu arquivo / etc / sudoers:

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

Em seguida, chame o plug-in usando o sudo:

/path/to/sudo check_asterisk_peers
    
por 06.08.2016 / 19:50
0

Eu finalmente consegui resolver o problema concedendo o NOPASSWD para o nrpe e seus grupos. A segurança, no entanto, é sub-ótima e pode se beneficiar de ajustes mais restritivos. Aqui está a parte relevante dos 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
    
por 07.08.2016 / 16:53