Ich habe es installiert Nagios® Core™ 3.5.1
und NRPE v2.14
auf meinem Client läuftRHEL 6.3
Ich habe diese Fehlermeldung auf meinem Nagios
NRPE: Command 'check_mysql_connections' not defined
Auf meinem nrpe.cfg
habe 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.cfg
und hinzugefügt. Sie commands-custom.cfg
enthält /etc/nagios/objects
Folgendes:
define command {
command_name check_mysql_connections
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_mysql_connections
}
und /etc/nagios/servers
ich 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 NRPE
Prozess bereits beendet, entfernt /var/run/nrpe.pid
und 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/objects
sodass 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_nrpe
und 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.cfg
geht 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