Estou tentando adicionar uma verificação NRPE para monitorar o agente Puppet, mas estou com dificuldades para fazer com que o plug-in retorne o resultado correto quando executado localmente.
Estou usando este plug-in:
ao executar o script localmente no cliente nagios, o resultado está correto, mas a execução com o nrpe resulta em um resultado crítico. Eu suponho que perdi algo na minha configuração. Outros plugins nrpe estão sendo executados com sucesso.
Eu reiniciei o nrpe.d (e verifiquei enquanto estava inativo que nenhum nrpe pid estava rodando)
Permissões, ownder e group para o arquivo check_puppet são as mesmas que minhas outras verificações
[root@puppet-master]# /usr/lib64/nagios/plugins/check_nrpe -H server.addr -c check_puppet
CRITICAL: Puppet daemon not running or something wrong with process
[root@git nrpe.d]# /usr/lib64/nagios/plugins/check_puppet
OK: Puppet agent "3.4.3" running catalogversion 1398787991, and executed at Tue 29 Apr 2014 04:13:25 PM UTC for last time
nagios_commands.cfg:
define command {
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 15 -c check_puppet
command_name check_nrpe_puppet
}
nagios_service.cfg:
define service {
## --PUPPET_NAME-- (called '_naginator_name' in the manifest) check_puppet
check_command check_nrpe_puppet
host_name server.addr
service_description check_puppet
use generic-service
}
/etc/nrpe.d/nrpe-check_puppet
# Configuration for check_puppet (from the generic template)
command[check_puppet]=/usr/lib64/nagios/plugins/check_puppet
Para referência, aqui está uma configuração de trabalho minha
define command {
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 15 -c check_ram
command_name check_nrpe_ram
}
define service {
## --PUPPET_NAME-- (called '_naginator_name' in the manifest) check_ram_server.addr
check_command check_nrpe_ram
host_name server.addr
service_description ram
use generic-service
}
/etc/nrpe.d/nrpe-check_ram
# Configuration for check_ram (from the generic template)
command[check_ram]=/usr/lib64/nagios/plugins/check_ram -w 10% -c 5%
Atualização:
Eu adicionei o usuário Nagios aos sudoers conforme instruído no leia-me, mas não tinha testado a execução da verificação como usuário do Nagios. Isso falhou porque o caminho permitido na lista de sudoers estava incorreto (meu plugin está em Lib64), também o NRPE é executado como usuário nrpe em meus sistemas.
Eu corri sudoers para conceder sudo nopasswed para a pasta correta para nrpe usuário e adicionei um shell nrpe para que eu possa testar como esse usuário (foi definido como nologin)
bash-4.1$ whoami
nrpe
bash-4.1$ /usr/lib64/nagios/plugins/check_puppet
UNKNOWN: last_run_summary.yaml not found, not readable or incomplete
bash-4.1$ exit
exit
[root@ip-10-185-165-196 plugins]# ps auxww | grep nrpe
nrpe 16353 0.0 0.0 41320 1364 ? Ss 23:33 0:00 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -d
root 16814 0.0 0.0 103236 856 pts/0 S+ 23:53 0:00 grep nrpe
[root@ip-10-185-165-196 plugins]#
No servidor nagios:
[root@puppet-master plugins]# ./check_nrpe -H <myserver> -t 15 -c check_puppet
CRITICAL: Puppet daemon not running or something wrong with process
Estou executando uma instalação mínima do CentOS 6.5
Eu desabilitei o requiretty com:
Defaults:nrpe !requiretty
UPDATE 3:
Parece que o SELinux é o culpado. setenforce 0 resolveu os problemas.
$ setenforce 0