
Ich habe NRPE und SNMP auf einem Server installiert, da ich diesen Server mit Nagios überwachen möchte. Ich habe einige Prüfungen, die bereits ordnungsgemäß ausgeführt werden, und ich erhalte die gewünschte Ausgabe. Heute habe ich den check_ifstatus
Nagios-Befehl installiert, um den Status der Netzwerkschnittstellenkarten auf einem meiner mysql
Server zu überwachen. Während der check_ifstatus
lokalen Ausführung auf dem Server erhalte ich die relevanten Informationen korrekt:
[root@dbr4 nagios]# /usr/lib64/nagios/plugins/check_ifstatus -H localhost
OK: host 'localhost', interfaces up: 4, down: 0, dormant: 0, excluded: 0, unused: 0 |up=4,down=0,dormant=0,excluded=0,unused=0
[root@dbr4 nagios]#
aber wenn ich den Befehl von meinem Nagios-Server aus ausführe, erhalte ich die folgende Fehlermeldung:
[root@monitorvm ~]# /usr/lib64/nagios/plugins/check_ifstatus -H amadbr4
CRITICAL: No response from remote host 'dbr4' for 1.3.6.1.2.1.2.2.1.8 with snmp version 1
[root@monitorvm ~]#
Bedeutet das, dass ich SNMP auf dem Server aktivieren muss, den ich prüfen möchte? Gibt es eine Möglichkeit, NRPE zu verwenden, um diese Prüfung durchzuführen? SELINUX ist auf allen Rechnern deaktiviert.
Antwort1
Warum verwenden Sie NRPE, um Dinge über SNMP zu überprüfen? Sie können diese direkt von der Nagios-Box aus überprüfen, vorausgesetzt, SNMP lauscht auf einer externen Schnittstelle (was Sie den Netstat-Kommentaren zufolge anscheinend wollen, obwohl Sie nach dem falschen Port suchen).
Sie sollten -n nicht verwenden, es sei denn, Sie haben NRPE ohne SSL-Unterstützung kompiliert.
(Außerdem müssen Sie nicht angeben-p 5666, da dies die Standardeinstellung ist. Dasselbe gilt für-t 10.)
- Stellen Sie sicher, dass die IP Ihrer Nagios-Box in der Liste „allowed_hosts“ steht.
- Überprüfen Sie, ob Sie überhaupt mit dem NRPE-Daemon kommunizieren können, indem Sie "check_nrpe -H dbr4" ohne weitere Argumente ausführen. Sie sollten die NRPE-Versionsnummer zurückerhalten
- Überprüfen Sie, ob Ihre Zeile „command[check_ifstatus]“ in nrpe.cfg mit Ihrem manuellen Test übereinstimmt.
Antwort2
Die Antwort von Keith ist die richtigste; Sie müssen NRPE nicht verwenden, um SNMP-Prüfungen durchzuführen, und es fügt unnötige Komplexität hinzu.
Das wahrscheinlichste unmittelbare Problem ist hier SELinux, es sei denn, Sie wissen, dass Sie es ausgeschaltet haben. Führen Sie es getenforce
auf dem NRPE-Host aus. Wenn dort „Enforcing“ steht, ist SELinux aktiviert. Wenn SELinux aktiviert ist, führen Sie den check_nrpe
Befehl von Ihrem Nagios-Host aus und überprüfen Sie dann /var/log/audit/audit.log
den NRPE-Host. Wenn dort Zeilen mit „type=AVC“ stehen, die „avc: denied“ lauten, stoßen Sie wahrscheinlich auf eine SELinux-Einschränkung.
Dies lässt sich ganz einfach vermeiden, indem Sie SELinux deaktivieren, indem Sie Folgendes bearbeiten /etc/selinux/config
und SELINUX
auf permissive
(wenn Sie SELinux auf diesem System irgendwann wieder aktivieren möchten) oder disabled
(wenn Sie sicher sind, dass Sie SELinux auf diesem System nicht mehr ausführen möchten) setzen. Wenn Sie dies tun, verlieren Sie natürlich die Vorteile von SELinux.
Sie können dies möglicherweise beheben, indem Sie den SELinux-Kontext des check_ifstatus
Plugins ändern. Sie können seinen Kontext mit überprüfen ls -Z
. Auf meinem System (mit der standardmäßigen Zielrichtlinie) hat es den Kontext „system_u:object_r:nagios_system_plugin_exec_t:s0“, von dem „nagios_system_plugin_exec_t“ der wichtige Teil ist. Wenn das Einstellen auf „nagios_system_plugin_exec_t“ (mit chcon -t nagios_system_plugin_exec_t check_ifstatus
) nicht funktioniert, versuchen Sie es mit „nagios_unconfined_plugin_exec_t“. Wenn eine dieser Änderungen funktioniert, müssen Sie sie mit dauerhaft machen semanage fcontext -a -t nagios_system_plugin_exec_t '/usr/lib(64)?/nagios/plugins/check_ifstatus'
.
Wenn nichts davon funktioniert, stoßen Sie wahrscheinlich auf einige der Einschränkungen bei Prozessen, die die Loopback-Adresse verwenden, und Sie müssen sich die AVC-Nachrichten ansehen und Ihre eigenen SELinux-Richtlinien erstellen. Ich habe das nicht genug getan, um Ratschläge zu geben (abgesehen von „prüfen Sie SNMP direkt von Ihrem Nagios-Host aus; dafür ist SNMP da“), aber es gibt eine Handvoll Referenzen online, die dies tun. Vielleicht möchten Sie sich ansehen audit2allow
, was den Prozess der Anpassung einer SELinux-Richtlinie erleichtert.