He instalado Nagios® Core™ 3.5.1
y NRPE v2.14
en mi cliente que se ejecutaRHEL 6.3
Tengo este mensaje de error en mi Nagios
NRPE: Command 'check_mysql_connections' not defined
En mi nrpe.cfg
ya configuré allowed_host, include_dir
:
allowed_hosts=xx.xx.xx.xx
dont_blame_nrpe=1
include_dir=/etc/nagios/services
mi comando está activado/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
En Nagios Server, ya configuré el nagios.cfg
archivo y agregué el commands-custom.cfg
que /etc/nagios/objects
contiene algo así:
define command {
command_name check_mysql_connections
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_mysql_connections
}
y en /etc/nagios/servers
he añadido elmysql.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
}
Ya terminé el NRPE
proceso, eliminé /var/run/nrpe.pid
y comencé el proceso NRPE nuevamente. Y además mi NRPE NO se ejecuta bajo xinet.d
Cuando intento ejecutar el comando localmente en el host remoto, da resultado. Y cuando intento ejecutar desde el servidor nagios usando este comando:
/usr/lib64/nagios/plugins/check_nrpe -H xx.xx.xx.xx -c check_mysql_connections
también da resultado. No sé qué salió mal, porque todos mis demás comandos se ejecutan normalmente.
ACTUALIZAR Y RESOLVER
Después de tantos años, recuerdo cómo solucionar este problema.
Necesito editar los comandos personalizados (en Nagios Server) commands-custom.cfg
en /etc/nagios/objects
, por lo que será así:
define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
y en "Definir servicio" era así:
## Define Service ##
define service {
use generic-service
hostgroup_name mysql-databases
service_description MySQL Connections
check_command check_nrpe!check_mysql_connections
}
En resumen, necesito separar el comando para verificar el servicio check_nrpe
y llamar a los comandos personalizados usandocheck_nrpe!check_mysql_connections
Referencia: https://support.nagios.com/forum/viewtopic.php?f=7&t=33448
Respuesta1
Comience por un extremo y avance hacia atrás.
- Dijiste que "/usr/lib64/nagios/plugins/check_mysql_all -K conexiones -H myHOST -u myUSERNAME -p myPASSWORD" funciona en la línea de comando.
- Dijiste que NRPE funciona en ese servidor con otros comandos.
- Dijiste que el comando falla en la línea de comando del servidor nagios.
Esto me sugiere que el problema está en la definición del servidor NRPE. ¿Es posible que sus variables ofuscadas para myHOST, myUSERNAME o myPASSWORD contengan un carácter que NRPE interpreta de forma no literal? (¡Supongo que ya has comprobado si hay errores tipográficos y definiciones duplicadas!)
Respuesta2
Siga estos pasos para agregar una verificación de disco de cliente remoto. Estos pasos también se pueden seguir para la configuración de 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
Del archivo /usr/local/nagios/etc/resource.cfg
se proporciona como $USER1$=/usr/local/nagios/libexec
:
Entonces, ejecute los comandos en la 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 el archivo /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 servicios
/etc/init.d/nagios restart //server side
/etc/init.d/nagios-nrpe-server restart //client side
También puedes verificar los comandos en la terminal como usuario de 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
Respuesta3
Normalmente, sospecharía que hay un problema de permisos con ese complemento. Asegúrese de ejecutar sus pruebas manuales como usuario de nagios (o nrpe).
Pero en este caso, afirma que el comando NRPE ni siquiera está definido, por lo que ni siquiera llega a ejecutarlo...
Coloque el comando NRPE def directamente en nrpe.cfg, no en un archivo incluido. (Y luego reinicie NRPE).
Recuerdo haber tenido un problema similar (pero con el NRPE de EPEL), hace unos años, donde no incluía otro archivo en nrpe.cfg por alguna razón. Sin embargo, nunca supe por qué el archivo de inclusión no funcionó.
Respuesta4
Tuve el mismo síntoma. Entonces, tal vez esto le ahorre algo de tiempo a alguien más. Mi problema era que me faltaba la extensión .cfg en los archivos del directorio de inclusión.
Mi directorio de inclusión erainclude_dir=/etc/nagios/nrpe.d
La máquina ejecuta Ubuntu 14.04 como referencia, usando NRPE v2.15