NRPE CentOS 7 Konfig-Verzeichnis konnte nicht geöffnet werden

2166
user3063045

Ich habe gerade NRPE auf CentOS 7 via Chef installiert. Dies ist das gleiche Rezept, das ich für alle meine CentOS 6-Server verwende - und dort funktioniert. NRPE startet, aber hier gibt es Fehler:

Jun 13 15:12:21 myserver nrpe[3667]: Could not open config directory '/etc/nagios/nrpe.d' for reading. Jun 13 15:12:21 myserver nrpe[3667]: Continuing with errors... 

Alle Serverkonfigurationen befinden sich unter /etc/nagios/nrpe.d. Hier ist meine CFG:

pid_file=/var/run/nrpe.pid server_port=5666 nrpe_user=nagios nrpe_group=nagios dont_blame_nrpe=0 debug=0 command_timeout=60 allowed_hosts=127.0.0.1,192.168.1.14 include_dir=/etc/nagios/nrpe.d 

Hier sind die Berechtigungen für /etc/nagios/nrpe.d:

# ls -atlr /etc/nagios/ -rwxrwxrwx. 1 nagios nagios 248 Jun 13 14:45 nrpe.cfg drwxrwxrwx. 2 nagios nagios 89 Jun 13 14:51 nrpe.d 

Wie kann ich NRPE dazu bringen, die Konfigurationsdateien im Konfigurationsverzeichnis zu lesen?

0
Am Ende habe ich die Standardeinstellungen von CentOS 7 verwendet - /etc/nrpe.d. Jetzt werden meine Befehle erkannt. Ich bin zu 90% überzeugt, dass es sich um eine Selinux-Politikfrage handelt, aber ich habe keine Zeit, ihren Code durchzublättern und herauszufinden, wie ich das lösen kann. user3063045 vor 7 Jahren 0
Mit dem Kochbuch [nrpe chef] (https://github.com/sous-chefs/nrpe) bin ich auf dasselbe gestoßen. Das Problem war, dass `/ etc / nagios` als` /etc/nagios (/.*) eingestellt ist. system_u: object_r: nagios_etc_t: s0` und das Kochbuch verwendet `include_dir =" # / nrpe.d "`. Das RPM erstellt `/ etc / nrpe.d`, das nur` system_u: object_r: etc_t: s0` von `/ etc` erbt. Es scheint, dass der Agent "nrpe" entweder die Verzeichnisse "nrpe_etc_t" oder "nagios_etc_t" nicht lesen kann, er kann jedoch von "etc_t" lesen. Tim Lum vor 6 Jahren 0

3 Antworten auf die Frage

2
Abdullah K

Ich bin auf das gleiche Problem gestoßen. Bitte finden Sie die folgenden Schritte zur Auflösung.

  1. Überprüfen Sie die Berechtigungen der /etc/nagios/nrpe.cfgDatei und dann den SELinux-Status mit sestatusBefehl oder getenforceBefehl. Wenn "Deaktiviert" angezeigt wird, dann keine Probleme. Wenn "Permissive" angezeigt wird, werden keine Probleme angezeigt. Wenn jedoch "Erzwingen" angezeigt wird, führen Sie die folgenden Schritte aus.
  2. Wenn Sie SELinux im Erzwingungsmodus benötigen, überprüfen Sie den Kontext der SELinux-Richtliniendatei mit dem folgenden Befehl:

    # pwd /etc/nagios # ls -Z -rw-r--r--. root root system_u:object_r:nrpe_etc_t:s0 nrpe.cfg 
  3. Wenn der Dateikontext anders ist, ändern Sie ihn mit dem folgenden Befehl in nrpe_etc_t .

    # semanage fcontext -a -t nrpe_etc_t "/etc/nagios/nrpe.cfg" # restorecon -R -v /etc/nagios/nrpe.cfg 

Ich habe das gleiche in CentOS 7 getestet.

1
Autumn Wang

Aktivieren Sie Debug in nrpe.cfg und starten Sie den Dienst neu, wenn die Fehlermeldung "nrpe kann Konfigurationsverzeichnis /etc/nagios/nrpe.d" nicht lesen. Das heißt, der Selinux hat das Problem verursacht.

Sie können Selinux überprüfen und ausschalten (wenn keine Sicherheitskonvertierung vorliegt).

getenforce

Durchsetzung

setenforce 0

getenforce

Permissiv

Starten Sie dann nrpe mit "service nrpe restart" neu. Jetzt sollte es klappen.

0
choffman

Ich würde vorschlagen, dass Sie sich auch die Berechtigungen und den Besitz des Verzeichnisses / etc / nagios ansehen.

Sie können sich auch an den Nagios-Benutzer wenden und die Verzeichnisstruktur nach oben verschieben, um festzustellen, wo die Berechtigungen zusammenbrechen.

Guter Rat. Aber kein Glück. Vielleicht möchten Sie einen Beitrag kommentieren, bevor Sie antworten. Einige Leute könnten dies ablehnen und ich würde es hassen, wenn Sie Ihr Karma verlieren :) user3063045 vor 7 Jahren 0
Ich wünschte ich könnte. Es wird mir nicht erlauben, einen Kommentar zu der Hauptfrage hinzuzufügen, bis ich 50 Reputationspunkte habe. Ich weiß den Rat zu schätzen! Ich habe von StackExchange et al einen solchen Vorteil erhalten, dass ich versuchen wollte, etwas zurückzugeben. choffman vor 7 Jahren 0