Nagios NRPE: Befehl „my_command“ nicht definiert

Nagios NRPE: Befehl „my_command“ nicht definiert

Ich habe es installiert Nagios® Core™ 3.5.1und NRPE v2.14auf meinem Client läuftRHEL 6.3

Ich habe diese Fehlermeldung auf meinem Nagios

NRPE: Command 'check_mysql_connections' not defined

Auf meinem nrpe.cfghabe ich bereits Folgendes eingerichtet allowed_host, include_dir:

allowed_hosts=xx.xx.xx.xx
dont_blame_nrpe=1
include_dir=/etc/nagios/services

mein Befehl ist an/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

Auf dem Nagios-Server habe ich die Datei bereits eingerichtet nagios.cfgund hinzugefügt. Sie commands-custom.cfgenthält /etc/nagios/objectsFolgendes:

define command {
command_name    check_mysql_connections
command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_mysql_connections
}

und /etc/nagios/serversich habe hinzugefügt diemysql.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
}

Ich habe den NRPEProzess bereits beendet, entfernt /var/run/nrpe.pidund den NRPE-Prozess erneut gestartet. Und außerdem läuft mein NRPE NICHT unter xinet.d

Wenn ich versuche, den Befehl lokal auf dem Remote-Host auszuführen, wird ein Ergebnis ausgegeben. Und wenn ich versuche, ihn mit diesem Befehl vom Nagios-Server aus auszuführen:

/usr/lib64/nagios/plugins/check_nrpe -H xx.xx.xx.xx -c check_mysql_connections

es gibt auch ein Ergebnis. Ich weiß nicht, was schiefgelaufen ist, da alle meine anderen Befehle normal ausgeführt werden.

AKTUALISIERT & GELÖST

nach so vielen Jahren erinnere ich mich, wie man dieses Problem löst.

Ich muss die benutzerdefinierten Befehle (auf dem Nagios-Server) bearbeiten commands-custom.cfg, /etc/nagios/objectssodass es folgendermaßen aussieht:

define command {
command_name         check_nrpe
command_line         $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ 
}

und unter „Dienst definieren“ stand es so:

## Define Service ##

define service {
use                     generic-service
hostgroup_name          mysql-databases
service_description     MySQL Connections
check_command           check_nrpe!check_mysql_connections
}

Zusammenfassend muss ich den Befehl trennen, um den Dienst zu überprüfen check_nrpeund die benutzerdefinierten Befehle mit aufzurufencheck_nrpe!check_mysql_connections

Referenz: https://support.nagios.com/forum/viewtopic.php?f=7&t=33448

Antwort1

Beginnen Sie an einem Ende und arbeiten Sie sich zurück.

  • Sie sagten, „/usr/lib64/nagios/plugins/check_mysql_all -K connections -H myHOST -u myUSERNAME -p myPASSWORD“ funktioniert auf der Befehlszeile.
  • Sie sagten, dass NRPE auf diesem Server mit anderen Befehlen funktioniert.
  • Sie sagten, dass der Befehl in der Befehlszeile vom Nagios-Server fehlschlägt.

Das lässt mich vermuten, dass das Problem in der Definition auf dem NRPE-Server liegt. Ist es möglich, dass Ihre verschleierten Variablen für myHOST, myUSERNAME oder myPASSWORD ein Zeichen enthalten, das von NRPE nicht wörtlich interpretiert wird? (Ich gehe davon aus, dass Sie bereits nach Tippfehlern und doppelten Definitionen gesucht haben!)

Antwort2

Befolgen Sie diese Schritte, um eine Remote-Client-Festplattenprüfung hinzuzufügen. Diese Schritte können auch für die Einrichtung von MySQL befolgt werden.

Klient


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 /

Server


Aus der Datei /usr/local/nagios/etc/resource.cfggeht hervor, dass $USER1$=/usr/local/nagios/libexec:

Führen Sie also die Befehle im Terminal aus:

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

Bearbeiten Sie die Datei /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
     }

Bearbeiten /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
    }

Dienste neu starten

/etc/init.d/nagios restart                          //server side
/etc/init.d/nagios-nrpe-server restart             //client side

Sie können die Befehle auch im Terminal als Nagios-Benutzer überprüfen.

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

Antwort3

Normalerweise würde ich bei diesem Plugin ein Berechtigungsproblem vermuten. Führen Sie Ihre manuellen Tests unbedingt als Nagios- (oder Nrpe-)Benutzer aus.

In diesem Fall wird jedoch behauptet, dass der NRPE-Befehl nicht einmal definiert sei, sodass er nicht einmal ausgeführt werden kann ...

Setzen Sie die NRPE-Befehlsdefinition direkt in nrpe.cfg, nicht in eine eingeschlossene Datei. (Und starten Sie NRPE anschließend neu.)

Ich erinnere mich, vor ein paar Jahren ein ähnliches Problem gehabt zu haben (allerdings mit dem NRPE von EPEL), bei dem aus irgendeinem Grund keine weitere Datei in nrpe.cfg aufgenommen wurde. Ich habe allerdings nie herausgefunden, warum die Include-Datei nicht funktionierte.

Antwort4

Ich hatte das gleiche Symptom. Vielleicht spart das also jemand anderem etwas Zeit. Mein Problem war, dass mir die Erweiterung .cfg bei den Dateien im Include-Verzeichnis fehlte.

Mein Include-Verzeichnis warinclude_dir=/etc/nagios/nrpe.d

Auf der Maschine läuft Ubuntu 14.04 als Referenz, mit NRPE v2.15

verwandte Informationen