Nagios Update-Problem

chr0n0s

Stammuser
Hallo zusammen,

ich habe heute Nagios von der Version 3.2.3 auf 3.3.1 geupdated.

Problem:

Seit dem Update werden meine Service- und Hostconfigs nicht mehr mit eingebunden. Heißt, ich sehe nur noch den localhost und nicht mehr die Remoteserver obwohl die cfg_dir in der nagios.cfg richtig auf ein Unterverzeichnis gesetzt ist.

Code:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

führt allerdings zu keinem Fehler.

Ich weiß aus einigen Foren, dass das Update anscheinend einfach so Online gestellt wurde ohne groß getestet worden zu sein, allerdings sind die Bug-Meldungen nicht auf mein Problem zurückzuführen.

Wenn Ihr noch Infos braucht sagt einfach welche.

Gruß
 

bitmuncher

Senior-Nerd
Welche Meldungen gibt es beim Starten von Nagios im Log, irgendwa auffälliges? Sind die Dateien der Host-Configs korrekt mit der Endung .cfg benannt?
 

mime

Stammuser
Seit dem Update werden meine Service- und Hostconfigs nicht mehr mit eingebunden. Heißt, ich sehe nur noch den localhost und nicht mehr die Remoteserver obwohl die cfg_dir in der nagios.cfg richtig auf ein Unterverzeichnis gesetzt ist.

Berechtigungen der Dateien geprüft? Nagios darf die Lesen?

Micha
 

chr0n0s

Stammuser
Zunächst danke für eure Antworten.

Welche Meldungen gibt es beim Starten von Nagios im Log, irgendwa auffälliges?

Das ist ja eigentlich auch ein Witz. Im syslog stehen einige Service Alarme, z. Bsp.:

Code:
Aug 3 13:39:17 NagSRV nagios: SEERVICE ALERT: webserver;SMTP;CRITICAL; usw. usf.

Aber eine Anzeige in der Weboberfläche? Fehlanzeige!

Meldung beim Restart von Nagios:

Code:
Nagios 3.3.1 starting....
Local Time ....
LOG VERSION ....
Finished daemonizing....

Anscheinend alles in bester Ordnung, was ja auch die Service Alarme von vorher anzeigen.

Sind die Dateien der Host-Configs korrekt mit der Endung .cfg benannt?

Ja, das Problem tritt ja erst mit der Version 3.3.1 auf, hatte wie oben geschrieben die ganze Zeit die Version 3.2.3 im Einsatz und dort war alles i.O.

Berechtigungen der Dateien geprüft? Nagios darf die Lesen?
Micha

Jap, durch das Update hat Nagios wieder den User nagiosadmin reingeknallt mit den Berechtigungen, habe diese entsprechend meinem "Guru" schon angepasst gehabt.
 

bitmuncher

Senior-Nerd
Wenn die Alerts funktionieren, nur die Anzeige im Webinterface nicht, dann würde ich tippen, dass das Problem in der cgi.cfg liegt und du dort einfach nicht die notwendigen Rechte für deinen User hast.
 

chr0n0s

Stammuser
Mmh, warum wird dann der localhost angezeigt?

Die Rechte auf dem Verzeichnis sind:

Code:
drwx-r-x-r-x guru guru

Die Access-Direktiven in der cgi.cfg stehen alle auf "guru"
z.Bsp.:
Code:
authorized_for_system_information=guru

authorized_for_all_service_command=guru

Bevor ich die Rechte gesetzt hatte, stand natürlich im Webinterface dass der User guru keine Rechte zur Anzeige hat. Habe ich dann entsprechend in der cgi.cfg abgeändert von nagiosadmin auf eben guru

Wo sollen die Rechte denn noch fehlen?

Edit: Ach und die Rechte sind auf den Remote-Servern unverändert!
 

chr0n0s

Stammuser
Sorry für den Doppelpost.

Hier die cgi.cfg als Textdatei.

Die Dateisystemberechtigungen haben sich für den Nagios-User guru nicht verändert.
 

bitmuncher

Senior-Nerd
Hm, also die sieht soweit ok aus. Bekommst du denn eine Ausgabe, wenn du z.B.

Code:
http://deinedomain.tld/nagios/dein-cgidir/extinfo.cgi?type=1&host=irgendeinesdeinerhosts

direkt aufrufst?
 

chr0n0s

Stammuser
Hm, also die sieht soweit ok aus. Bekommst du denn eine Ausgabe, wenn du z.B.

Code:
http://deinedomain.tld/nagios/dein-cgidir/extinfo.cgi?type=1&host=irgendeinesdeinerhosts
direkt aufrufst?

Dann gibt es eine 404-Seite. Sowohl Remoteserver als auch localhost. Komischerweise.

Liegt es vielleicht am Webserver? Das die Direktiven nicht mehr hin hauen? Ich meine, habe ja nichts geändert.
 

bitmuncher

Senior-Nerd
Klick mal localhost direkt an und tausche dann in der URL den Hostnamen aus. Ich bin mir nicht sicher, ob sie die Datei nicht evtl. umbenannt haben.
 

chr0n0s

Stammuser
er zeigt die seite mir an: "Service Status Details for Host 'remoteserver'

Aber:

Code:
0 Matching Service Entries Displayed
 

bitmuncher

Senior-Nerd
Schau dir mal einen Service von localhost an, den du auch für remoteserver definiert hast und wechsel auch dort den Hostnamen in der URL aus. Wird dir dann die Service-Status-Information korrekt angezeigt? In dem Fall dürfte dann nämlich das CGI für die Service-Übersicht einfach nicht korrekt arbeiten.

Ausserdem... Wird für den remoteserver auch eine korrekte Status-Information angezeigt? Gibt es ggf. Fehler im Error-Log des Webservers, wenn du die Service- oder Hosts-Übersichtsseite aufrufst?
 

chr0n0s

Stammuser
Schau dir mal einen Service von localhost an, den du auch für remoteserver definiert hast und wechsel auch dort den Hostnamen in der URL aus. Wird dir dann die Service-Status-Information korrekt angezeigt?

So kommen wir der Sache doch schon näher:

Code:
It appears as though you do not have permission to view information for this  service...

Wundert mich aber, der Nagiosuser "guru" hat überall Lese-rechte.
 

bitmuncher

Senior-Nerd
Da bist du evtl. in den gleichen Bug gelaufen wie ich kürzlich. Bei mir verschaffte nur Abhilfe, dass ich den User 'nagiosadmin' angelegt habe und diesem anstelle meines Users die Rechte eingeräumt habe. Das Problem konnte ich bisher aber nur auf Debian >4.0 nachvollziehen. Auf einem 4er Debian funktioniert es komischerweise.

Hm... Kann dein Nagios-User die htpasswd-Datei lesen, oder kann das nur der Webserver?

Edit: Gib dem einfach mal eine Shell und wechsle mit 'su - deinnagiosuser' zu diesem. Danach mal ein 'cat' auf deine htpasswd-Datei versuchen.
 

chr0n0s

Stammuser
Da bist du evtl. in den gleichen Bug gelaufen wie ich kürzlich. Bei mir verschaffte nur Abhilfe, dass ich den User 'nagiosadmin' angelegt habe und diesem anstelle meines Users die Rechte eingeräumt habe. Das Problem konnte ich bisher aber nur auf Debian >4.0 nachvollziehen. Auf einem 4er Debian funktioniert es komischerweise.

Bei mir läuft Debian 5.0

Hm... Kann dein Nagios-User die htpasswd-Datei lesen, oder kann das nur der Webserver?

Nein, kann er nicht: "Keine Berechtigung". Die Rechte hat nur der Webserver

Edit: Gib dem einfach mal eine Shell und wechsle mit 'su - deinnagiosuser' zu diesem. Danach mal ein 'cat' auf deine htpasswd-Datei versuchen.

Siehe oben
 

bitmuncher

Senior-Nerd
Der Nagios-User muss die htpasswd-Datei lesen können, damit er ermitteln kann welche User wirklich existieren. Also packe ihn entweder in die Gruppe des Webservers und gib der Gruppe Leserechte auf die Datei oder sorge mittels ACLs dafür, dass er die Datei lesen kann.
 

chr0n0s

Stammuser
Mirt ist das schleierhaft.

Habe ihn in die Gruppe getan UND noch die Leserechte gegeben.

Ergebnis:

Code:
It appears as though you do not have permission to view  information for this service...
   
If you believe this is an error, check the HTTP  server authentication requirements for accessing this CGI
and check the  authorization options in your CGI configuration file.
 
Oben