Eu instalei Nagios® Core™ 3.5.1
e NRPE v2.14
no meu cliente que está rodandoRHEL 6.3
Eu tenho essa mensagem de erro no meu Nagios
NRPE: Command 'check_mysql_connections' not defined
No meu nrpe.cfg
eu já configurei allowed_host, include_dir
:
allowed_hosts=xx.xx.xx.xx
dont_blame_nrpe=1
include_dir=/etc/nagios/services
meu comando está ativado/etc/nagios/services/check_mysql_connections.cfg
command[check_mysql_connections]=/usr/lib64/nagios/plugins/check_mysql_all -K connections -H myHOST -u myUSERNAME -p myPASSWORD
No Nagios Server, já configurei o nagios.cfg
arquivo, e adicionei o commands-custom.cfg
que /etc/nagios/objects
contém assim:
define command {
command_name check_mysql_connections
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_mysql_connections
}
e em seguida /etc/nagios/servers
adicionei omysql.cfg
## Define Host Group ##
define hostgroup {
hostgroup_name mysql-databases
alias MySQL Databases
}
#######################
## Define Hosts ##
define host {
use linux-server
host_name bdgbnbpmydb02
alias MySQL Database
address xx.xx.xx.xx
hostgroups mysql-databases
contact_groups admins
check_command check-host-alive
}
#######################
## Define Service ##
define service {
use generic-service
hostgroup_name mysql-databases
service_description MySQL Connections
check_command check_mysql_connections
}
Já mato o NRPE
processo, removo /var/run/nrpe.pid
e inicio o processo NRPE novamente. E também meu NRPE NÃO está rodando em xinet.d
Quando tento executar o comando localmente no host remoto, ele dá resultado. E quando tento executar no servidor nagios usando este comando:
/usr/lib64/nagios/plugins/check_nrpe -H xx.xx.xx.xx -c check_mysql_connections
também dá resultado. Não sei o que deu errado, porque todos os meus outros comandos estão funcionando normalmente.
ATUALIZAÇÃO E RESOLVIDO
depois de tantos anos, lembro-me de como resolver esse problema.
Preciso editar os comandos customizados (no Servidor Nagios) commands-custom.cfg
no /etc/nagios/objects
, então ficará assim:
define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
e em "Definir Serviço" ficou assim:
## Define Service ##
define service {
use generic-service
hostgroup_name mysql-databases
service_description MySQL Connections
check_command check_nrpe!check_mysql_connections
}
Resumindo, preciso separar o comando para verificar o serviço check_nrpe
e chamar os comandos personalizados usandocheck_nrpe!check_mysql_connections
Referência: https://support.nagios.com/forum/viewtopic.php?f=7&t=33448
Responder1
Comece em uma extremidade e volte.
- Você disse que "/usr/lib64/nagios/plugins/check_mysql_all -K conexões -H myHOST -u myUSERNAME -p myPASSWORD" funciona na linha de comando.
- Você disse que o NRPE funciona nesse servidor com outros comandos.
- Você disse que o comando falha na linha de comando do servidor nagios.
Isso me sugere que o problema está na definição do servidor NRPE. É possível que suas variáveis ofuscadas para myHOST, myUSERNAME ou myPASSWORD contenham um caractere que é interpretado de forma não literal pelo NRPE? (Presumo que você já tenha verificado erros de digitação e definições duplicadas!)
Responder2
Siga estas etapas para adicionar uma verificação de disco do cliente remoto. Estas etapas também podem ser seguidas para a configuração do mysql.
Cliente
vi /etc/nagios/nrpe.cfg
allowed_hosts=127.0.0.1,nagios_server_ip_here
dont_blame_nrpe=1
#checking root partion
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 25% -c 20% -p /
Servidor
Do arquivo /usr/local/nagios/etc/resource.cfg
é dado como $USER1$=/usr/local/nagios/libexec
:
Então, execute os comandos no terminal:
locate check_nrpe //find the location of check_nrpe
cp /usr/lib/nagios/plugins/check_nrpe /usr/local/nagios/libexec/
cd /usr/local/nagios/libexec/
chown nagios:nagios check_nrpe
Edite o arquivo /usr/local/nagios/etc/objects/commands.cfg
:
define command{
command_name check_disk
command_line $USER1$/check_nrpe -H '$HOSTADDRESS$' -t 30 -c check_disk
}
Editar /usr/local/nagios/etc/servers/clients.cfg
:
define service {
use generic-service
host_name BI Server
service_description Disk
check_command check_disk
notifications_enabled 1
}
Reiniciar serviços
/etc/init.d/nagios restart //server side
/etc/init.d/nagios-nrpe-server restart //client side
Você também pode verificar os comandos no terminal como usuário nagios,
su - nagios
cd /usr/local/nagios/libexec/
./check_nrpe -H nagios_client_ip_here -t 30 -c check_mysql
./check_nrpe -H nagios_client_ip_here -t 30 -c check_disk
Responder3
Normalmente, eu suspeitaria de um problema de permissão com esse plugin. Certifique-se de executar seus testes manuais como usuário do nagios (ou nrpe).
Mas neste caso, ele está alegando que o comando NRPE nem está definido, então nem chega a executá-lo...
Coloque o comando NRPE def diretamente em nrpe.cfg, não em um arquivo incluído. (E então reinicie o NRPE.)
Lembro-me de ter tido um problema semelhante (mas com o NRPE da EPEL), há alguns anos, onde não incluía outro arquivo no nrpe.cfg por algum motivo. Eu nunca descobri por que o arquivo de inclusão não funcionou.
Responder4
Eu tive o mesmo sintoma. Então talvez isso economize algum tempo para outra pessoa. Meu problema era que estava faltando a extensão .cfg nos arquivos do diretório include.
Meu diretório de inclusão erainclude_dir=/etc/nagios/nrpe.d
A máquina está executando o Ubuntu 14.04 para referência, usando NRPE v2.15