Index
Ich habe Probleme Nagios zu kompilieren - Was kann ich tun? | ||||||||||||||
Nagios für unterschiedliche Betriebssysteme zu kompilieren scheint kein Problem mehr zu sein, solange keine string-Funktion fehlt... Falls also ein Probleme mit der strncat(), strncpy(), oder snprintf()-Funktion auftaucht, ist höchstwahrscheinlich t die falsche glibc-Bibliothek auf Ihrem System installiert. Dies scheint meistens auf HP-UX und Solaris Maschinen zu passieren. Ich habe mit diesen Funktionen versucht potentielle Buffer-Overflows in Nagios und den CGIs zu verhindern, deshalb sind sie überall im Code verstreut. Falls Sie aus irgendeinem Grund nicht die glibc-Bibliothek installieren wollen, müssen Sie leider selbst einen Weg finden um alles zu kompilieren. Falls Ihnen nur die snprintf()-Funktion fehlt, können Sie versuchen die snprintf.c Datei von http://www.ijs.si/software/snprintf/ herunterzuladen und in das Makefile hinzuzufügen, so dass es während dem Kompilieren hinzugefügt wird. Einige Leute haben erwähnt, dass diese Version von snprintf allerdings nicht das '%f' Formatierungs-Flag unterstützt, vielleicht haben Sie mehr Glück. Sorry... |
||||||||||||||
Die Statuskarten-, Trends-, und Histogram-CGIs arbeiten nicht! | ||||||||||||||
Wenn Sie alle CGIs kompilieren, aber das Statuskarten-CGI, Trends-CGI oder Histogram-CGI nicht finden (oder diese nicht zum Laufen bekommen), haben Sie evtl. folgende Bibliotheken nicht richtig auf ihrem System installiert:
Die gd-Bibliothek basiert auf der zlib und png Bibliothek (und ein paar anderen), deswegen benötigen Sie diese beiden Bibliotheken auf Ihrem System, bevor Sie die gd-Bibliothek installieren. Neuere Versionen der gd-Bibliothek benötigt ausserdem die jpeg-Bibliothek auf Ihrem System. Falls bei Ihnen die CGIs nicht kompiliert wurden oder nicht richtig arbeiten, vergewissern Sie sich, dass Sie die gd-, png-, zlib- und jede andere benötigte Bibliothek installiert haben. Anschliessend sollten Sie die alten Nagios-Kompilierungs-Konfiguration löschen und das "configure"-Skript erneut mit den folgenden zwei Befehlen (in dem Verzeichnis Ihres Nagios-Quelltextes) laufen lassen:
make devclean ./configure --with-gd-lib=LIBDIR --with-gd-inc=INCDIR [andere Optionen] Ersetzen Sie LIBDIR mit dem Verzeichnis, in dem Sie die gd-Bibliothek installiert haben (normalerweise /usr/lib oder /usr/local/lib) und ersetzen Sie INCDIR mit dem Verzeichnis, in dem die Header-Dateien der gd-Bibliothek installiert wurden (normalerweise /usr/include oder /usr/local/include). Nachdem Sie das "configure"-Skript neu gestartet haben, sollten Sie in der Lage sein die CGIs richtig zu kompilieren und an die richtige Stelle zu installieren. Falls Sie RedHat Linux benutzen und Probleme haben, empfehle ich Ihnen die gd- und gd-devel-RPMs von www.rpmfind.net herunterzuladen und zu installieren. Beachten SIe auch, dass andere Applikationen (PHP, MRTG, etc.) auch auf der gd-Bibliothek basieren und bei einem update der gd-Bibliothek Probleme machen könnten und evtl. auch erneut kompiliert werden müssen. |
||||||||||||||
Es werden sowohl in der Statuskarte, als auch in der VRML-3D-Statuskarte keine Hosts angezeigt | ||||||||||||||
Der häufigste Grund für dieses Problem ist, dass Sie keine 2-D oder 3-D Koordinaten für die Hosts angegeben haben. Obwohl das Statuskarten-CGI auch autmatisch ein Layout erzeugen kann, versucht es standardmässig die von Ihnen angegebenen Koordinaten zu verwenden. Das 3-D-Statuskarten-CGI (VRML) wird nicht funktionieren, wenn Sie keine 3-D Koordinaten angeben.
Wie können Sie diese Koordinaten für Hosts angeben? |
||||||||||||||
Bei der Installation wurde kein libexec/-Verzeichnis angelegt. Wo sind die ganzen Plugins? | ||||||||||||||
Falls Sie die Installation-Dokumentation nicht richtig gelesen haben und den großen Hinweis auf der Download-Seite nicht gesehen haben, werden Sie sich wundern, wo all die Plugins sind. Schnelle und einfache Antwort - Sie sind getrennt von der Nagios-Kernapplikation erhältlich, so dass Sie diese von der Downloads-Seite oder direkt von der SourceForge Projektseite herunterladen und installieren müssen. |
||||||||||||||
Warum bekomme ich Benachrichtigungen, wenn Hosts UNREACHABLE sind? |
||||||||||||||
Einfache Antwort. Sie haben die notify_unreachable-Option in der Host-Definition(en) aktiviert. Falls Sie nicht benachrichtig werden wollen, wenn ein Host unerreichbar ist, müssen Sie diese Option in der Host-Definition nur deaktivieren. Ich bekomme viele eMails, in denen gefragt wird, warum Nagios nicht intelligent genug ist um Benachrichtigungen für unerreichbare Hosts zu unterdrücken. Allerdings ist Nagios intelligent genug um zwischen einem Host mit DOWN und UNREACHABLE Status zu unterscheiden - Sie müssen nur Ihre Benachrichtigungs-Optionen richtig konfigurieren... |
||||||||||||||
Hosts sind fälschlicherweise als DOWN oder UNREACHABLE markiert |
||||||||||||||
Dies scheint das größte Thema für neue Anwender zu sein. In 99.9% aller Fälle ist dieses Problem eine Folge von inkorrekten Befehls-Definitionen der Überprüfungs-Befehle, die für diese Hosts benutzt werden. Ein Hauptgrund für dieses Problem, war die änderung in der Syntax der Kommandozeilen-Argumente des check_ping-Plugins. Gehen Sie sicher, dass der Befehl zur Host-Überprüfung die korrekte Syntax verwendet. Um zu testen, ob der Befehl richtig funktioniert, können Sie diesen Befehl auch per Hand in der Kommandozeile ausführen. Die neue Version des check_ping-Plugin benötigen das -p-Flag um die Anzahl der Packete anzugeben. Das Problem liegt darin, dass bisherige Versionen des Plugins dies nicht taten. Überprüfen Sie die Version des verwendeten Plugins um die richtige Syntax für den Host-Überprüfungs-Befehl herauszufinden. Wichtig! Nur weil Sie einen Dienst definiert haben, der per Ping die Netzwerk-Erreichbarkeit für einen Host überprüft, heisst das nicht, dass der aktuelle Host-Status überprüft wird. Der Status eines Hosts wird nur überprüft, wenn das Ergebnis einer Dienst-Überprüfung mit einem nicht-OK-Status endet oder der Host vorher down und das Ergebnis der Dienst-Überprüfung ok war. Einige Symtome für inkorrekte Überprüfungs-Befehle:
|
||||||||||||||
Sobald ein Host down geht, bekomme ich Benachrichtigung über die Dienste anstatt über den Host |
||||||||||||||
Einige Leute haben von Problemen berichtet, mit dem ich Stunden verbracht habe, um es zu lösen und letztendlich herauszufinden, dass es kein Fehler im Code von Nagios ist. Falls Sie Benachrichtigungen über Dienste erhalten, aber eigentlich Host-Benachrichtigungen erhalten sollten (und die Dienst-Benachrichtigungen die Sie erhalten falsche Daten enthalten), sollten Sie Ihre Kontakt-Definitionen in der Objekt-Konfigurationsdatei(en) überprüfen. Meistens sind diese falsch. Gehen Sie sicher, das Sie nicht die selben Benachrichtigungs-Befehle für Dienst- und Host-Benachrichtigungen verwenden. Dienst- und Host-Benachrichtigungen sind sehr unterschiedlich und benutzen Macros welche nicht zwischen den beiden Typen getauscht werden können. Schauen Sie in die Beispiel-Host-Konfigurationdatei, die mit Nagios mitgeliefert wird, um zu sehen, wie Sie Kontakte richtig definieren und wie sich die Dienst- und Host- Benachrichtigungs-Befehle voneinander unterscheiden. Falls Sie sich wundern welche Macros für welchen Typ der Benachrichtigung benutzt werden können, schauen Sie einfach in diese Tabelle. |
||||||||||||||
Kann ich einen Host überwachen, ohne einen Dienst für den Host zu definieren? |
||||||||||||||
Nein, nicht wirklich. Obwohl Sie einen Host definieren können ohne ihm einen Dienst zuzuordnen, werden Sie keine Ergebnisse bekommen, wie Sie es erwarten. Sie müssen mindestens einen Dienst für jeden Host, den Sie überwachen wollen, definieren. Nagios ist primär auf die Überwachung von Diensten ausgerichtet. Hosts werden nur überprüft, wenn es Probleme mit oder Wiederherstellungen von Diensten (wie in der "Dienst-Überprüfungs-Plan"-Dokumentation beschrieben) gibt. |
||||||||||||||
Kann ich Hosts oder Dienste hinzufügen ohne Nagios neu zu starten? |
||||||||||||||
Nein. Sie müssen Nagios jedes Mal neu starten, wenn Sie einen Host oder Dienst (oder jede andere Art von Objekt-Definition in der Objekt-Konfigurationdatei) hinzufügen. Wichtig: Wenn Sie Konfigurationsänderungen durchführen, ohne Nagios neu zu starten, werden Sie Unregelmässigkeiten inden CGIs bemerken. Einige Hosts können erscheinen, andere Dienste können verschwinden, usw. Dies heißt nicht, das Nagios mit der Überwachung der einstigen Dienste aufgehört, oder der neuen Hosts angefangen hat. Dies ist nur eine Nebenwirkung der Authorisierungs-Logik in den CGIs. |
||||||||||||||
Wie kann ich die Timeout-Werte für Dienste-Überprüfungen ändern? |
||||||||||||||
Erstens müssen Sie erkennen, wo Timeouts auftauchen. Die meisten Plugins haben einen Timeout von 10 Sekunden, um einen Dienst zu kontaktieren (FTP, HTTP, usw.). Wenn die Plugins nach einer kurzen Zeit timeouten, können Sie die Timeout-Werte für das Plugin erhöhen (indem Sie z.B. ein entsprechendes Kommandozeilen-Argument benutzen). Außerdem übergibt Nagios seine eigenen Timeout-Werte für alle Dienst-Überprüfungen, die gerade laufen. Dieser Wert ist standardmässig auf 30 Sekunden gesetzt. Wenn das Plugin länger als 30 Sekunden läuft, wird Nagios es automatisch beenden und einen kritischen Fehler für diesen Dienst melden. Wenn Sie Einträge im Logfile sehen, die besagen, dass Dienst-Überprüfungen einen Timeout hatten, ist das vielleicht ein Problem in diesen Plugins. Sie können die Timeout-Werte für Dienst-Überprüfungen erhöhen. indem Sie die service_check_timeout-Direktive benutzen. Als Nebenbemerkung, sollte ausserdem die Direktiven für das Setzen des Timeout-Wertes für Host-Überprüfungen, Benachrichtigungen, Event-Handler und des OCSP Kommandos erwähnt werden. |
||||||||||||||
"Return code of x is out of bounds"-Fehler |
||||||||||||||
Wenn der Output eines Plugins für eine Host- oder Dienst-Überprüfung einen "(Return code of x is out of bounds)"-Fehler ausgibt, bedeutet dies normalerweise zwei Dinge:
| ||||||||||||||
Ich bekomme Fehlermeldungen
wenn eMail-Benachrichtigungen gesendet werden sollten |
||||||||||||||
Wenn Sie eine Nachricht wie "mail: Null names are not allowed", "You must specify direct recipients with -s, -c, or -b.", oder etwas ähnliches bekommen, haben Sie vielleicht einen Fehler in der Definition des Benachrichtigungs-Befehls. Stellen Sie sicher, dass die Syntax, die Sie benutzen um /bin/mail (oder wo/wie Ihr Mail-Programm seien sollte) aufzurufen, in der Definition des Benachrichtigungs-Befehl für Ihr System korrekt ist. |
||||||||||||||
Debugging von "unknown variable"-Fehlern während der Überprüfung der Konfiguration oder im Betrieb | ||||||||||||||
Wenn Nagios läuft oder Sie mit dem -v Argument Ihre Konfigurationsdatei überprüfen lassen, meldet Nagios unter Umständen eine Nachricht wie "Error in configuration file 'xxxxxxx.cfg' - Line 34 (Unknown variable)". Einige simple Überprüfungen sollten dieses Problem normalerweise beheben...
|
||||||||||||||
Betreiben von multiplen Instanzen von Nagios auf der gleichen Maschine | ||||||||||||||
Sie können multiple Instanzen von Nagios auf der gleichen Maschine betreiben, wenn Sie sicherstellen, dass die folgenden Variablen für jede Instanz von Nagios dediziert angegeben sind...
Wenn Sie das Web-Interface benuten, müssen Sie für jede Instanz von Nagios seperate CGI-Verzeichnisse und entsprechende Skript-Aliase in Ihrer Konfigurationsdatei Ihres Webservers. Dies ist nötig, da die CGI-Konfigurationsdatei für jedes CGI-Setup einzigartig sein muss, da es eine Referenz zu der Haupt-Konfigurationsdatei, die von den CGIs gelesen werden muss, enthält. Als letztes sollten Sie Ihr Init-Skript (falls Sie eines benutzen) überprüfen. Das Init-Skript sollte alle Instanzen von Nagios starten, stopen, restarten, und reloaden natürlich nur falls Sie dieses so wollen). |
||||||||||||||
Fehlende Daten in den CGIs oder Fehler über unsachgemässe Authorisierung | ||||||||||||||
Falls Sie glauben, dass Sie nicht alle Informationen in den CGIs sehen, die sie sehen sollten, oder wenn Sie Authorisierungs-Fehler bekommen, haben Sie evtl. den Webserver nicht richtig für die Authentifizierung konfiguriert. Lesen Sie die Dokumentation für die CGI-Authentifizierung und -Authentisierung hier. |
||||||||||||||
Wo kann ich das "traceroute"- und "daemonchk"-CGI finden? | ||||||||||||||
Die traceroute- und daemonchk-CGIs sind nun in dem contrib/-Unterverzeichnis der Nagios-Distribution. |
||||||||||||||
Benutzung von User-Authentifizierung für den Zugriff auf das Web-Interface | ||||||||||||||
Lesen Sie die Dokumentation für die CGI-Authentifizierung und -Authentisierung hier. |
||||||||||||||
Anzeigen von hübschen Host-Symbolen in den CGIs | ||||||||||||||
Falls Sie für die Status-, Statuskarten-, Status-Welt-CGIs und dem CGI für erweiterte Informationen, einzelne Hosts mit Bildern verknüpfen wollen, müssen Sie erweiterte Host-Informationen definieren. |
||||||||||||||
Fehler beim Ausführen von Befehlen über das Befehls-CGI | ||||||||||||||
Falls Sie einen 'Could not open command file irgendeinedatei for update'-Fehler bekommen, wenn Sie Kommandos an Nagios über das Befehls-CGI übermitteln, ist es meistens ein Problem mit den Verzeichnis- und/oder Datei-Rechten. So können Sie es beheben...
|
||||||||||||||
Nagios beendet sich mit Warnungen über die Zugriffsrechte auf die "command"-Datei | ||||||||||||||
Wenn sich Nagios selbst beendet, nach dem es externe Befehle ausgeführt hat, und Sie Warnungen im Logfile über falsche Zugriffsrecht auf die Befehlsdatei lesen, müssen Sie diese Beschreibung befolgen. |
||||||||||||||
Überwachen von entfernten Host-Informationen | ||||||||||||||
Einige User haben danach gefragt, wie man diverse Plugins benutzt, um Informationen zu überprüfen, die auf entfernten Hosts liegen. Dies kann man auf unterschiedlichen Weisen tun: Wenn Sie für jede Überprüfung auf dem entfernten Host ein Plugin ausführen müssen um ein Ergebnis zu bekommen, können Sie eines der folgenden Methoden nutzen:
Falls Sie nur den Festplatten-Platz auf einem entfernten Host überprüfen müssen, können Sie die folgenden Methoden benutzen:
|
||||||||||||||
Überwachung von Windows NT Servern | ||||||||||||||
Ja, obwohl Nagios selbst nicht auf einem NT-Server läuft, können Sie durchaus NT-Server von Nagios aus überwachen. Sie können dies auf zwei verschiedenen Wegen tun:
SNMP Die gute Nachricht ist, dass NT sehr viele Performance-Daten zur Überwachung zur Verfügung stellt. Die schlechte Nachricht ist, dass dies recht schwer einzurichten ist. Das Beste wird aber trotzdem sein, wenn man den SNMP-Dienst auf allen seinen NT-Servern installiert.
Um Windows NT/2000 dazu zu bewegen Performance-Daten zur Überwachung zur Verfügung zu stellen, müssen Sie
den SNMP-Dienst auf allen Servern, die Sie überwachen müssen laufen lassen. Sie müssen evtl. auch alle nötigen
Performance-MIBs für den Dienst installieren, den Sie überwachen wollen. Ich glaube, dass Sie diese im "NT Ressource
Kit" finden, dass in vielen "Server Administrations"-Packeten enthalten ist. Sie können das MRTG Mailinglisten-Archiv
durchsuchen, um mehr Informationen zu erhalten, wie man NT-Server konfiguriert
um Performance-Daten via SNMP preiszugeben. Ich weiß, dass es
bereits in der Vergangenheit diskutiert wurde, wie viele Leute MRTG
nutzen, um NT-Performance-Daten grafisch für Statistiken aufzubereiten. Wenn Sie einmal den ganzen SNMP-Kram am laufen haben, können Sie das check_snmp-Plugin benutzen, um die Daten und generelle Warnungen von den NT-Servern abzufragen. NSSERVICER Addon Jan Christian Kaldestad und Hallstein Lohne haben das nsservicer-Addon geschrieben, um NT-Server zu überwachen. Das Addon enthält einen Dienst, der auf Ihren NT-Servern läuft und einige Plugins, die vom Nagios-Server aus laufen. Das nsservicer-Addon kann das Event-Log, Festplatten-Ausnutzung, Prozess-Werte und andere Informationen auswerten. Sie können das Addon in dem "contrib"-Bereich der Download-Seite finden. |
||||||||||||||
Überwachung von Novell Servern | ||||||||||||||
Sie können grundlegende Daten, wie die Festplatten-Ausnutzen, User-Verbindungen, "LRU sitting time", Cache
Buffer, Langzeit Cache Hits und Prozessor-Last Ihrer Novell-Server mit dem check_nwstat-Plugin (dieses
ist in der Plugin-Distribution enthalten) überwachen. |
||||||||||||||
Senden von SNMP-Traps an Management-Hosts | ||||||||||||||
Nagios kann SNMP-Traps versenden, allerdings nicht direkt. Nagios basiert auf dem Konzept, das Plugins die Daten
über Hosts und Dienste sammeln und Event-Handler-Skripte eine Reaktion auf die Events auslösen. |
||||||||||||||
Empfangen von SNMP-Traps mit Nagios | ||||||||||||||
Nagios kann auch SNMP-Traps empfangen, allerdings nicht direkt. Nagios
wurde nicht als Ersatz für ein voll ausgebautes SNMP Management-System
entworfen, aber Sie können Nagios so konfigurieren, dass Warnungen aufgrund
von SNMP-Traps, die von irgendeinem Host im Netzwerk empfangen werden,
ausgelöst werden. |
||||||||||||||
Aufzeichnen von Ereignissen in eine externe Datenbank | ||||||||||||||
Nein, funktioniert nicht direkt, aber dieses kann relativ einfach
eingerichtet werden. Sie können z.B. einen globalen Host- und Dienst-Event
Handler anlegen, um dies zu tun. Dieser globale Event Handler kann
z.B. ein Skript aufrufen, welches die entsprechenden Event-Informationen
in eine Datenbank Ihrer Wahl einfügt. |
||||||||||||||
Fehlersuche mit Nagios | ||||||||||||||
Ich habe einige Jahre für Tech-Support und einige Zeit am Helpdesk gearbeitet. Die meisten Leute die einen
Fehler melden, haben leider nur eine sehr vage Vorstellung wie Sie ein Problem herausfinden können, wollen aber
das es sofort behoben wird. Ich hoffe, dass Sie nicht so eine Person sind...
Die erste Sache, die Sie tun können, ist Ihre Konfiguration von Nagios mit der -v Option
überprüfen lassen. /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Falls keine Fehler gefunden wurden, können Sie zum nächsten Schritt gehen... Der nächste Schritt wird etwas länger dauern, gibt Ihnen aber auch mehr Informationen über das was in Nagios selbst abläuft. Als ich anfing Nagios zu entwickeln, habe ich jede Menge Debugging-Code hinzugefügt, um selbst Probleme besser einschränken zu können. Ich benutze immernoch diesen Code, wenn ich neue Features hinzufüge, oder selbst Bugs beheben möchte. So können Sie auch den Debugging-Code benutzen: Führen Sie erneut das "configure"-Skript in der Nagios-Distribution aus und aktivieren Sie eine oder mehrere Debug-Informationen wie folgt, indem Sie "--enable-DEBUGx" mit einem oder mehrere Werte aus der folgenden Tabelle ersetzen: ./configure --prefix=/your/nagios/directory --enable-DEBUGx Debugging Options
Kompilieren Sie Nagios erneut. Überprüfen Sie erneut Ihre Konfigurations-Daten - Sie werden wesentlich mehr Informationen erhalten, wenn Sie die DEBUG1-Option aktiviert haben. Versuchen Sie die Ausgaben in eine Datei umzuleiten, so dass Sie diese später lesen oder ausdrucken können.
Falls Sie die DEBUG3- oder DEBUG4-Option benutzt haben, lassen Sie Nagios als Prozess im Vordergrund
laufen und beginnen Sie damit Ihre Dienste zu überwachen. /usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg
Beenden Sie Nagios an einer geeigneten Stelle (z.B. nachdem eine Dienst-Überprüfung fehlgeschlagen ist)
und schauen Sie sich die Ausgaben an. Dies sollte Ihnen helfen die Ursache des Problems herauszufinden.
Auch hier ist es empfehlenswert die Ausgaben in eine Datei umzuleiten um Sie später einfacher diese
studieren zu können. Falls es Ihnen trotzdem nicht möglich ist, dass Problem selbst herauszufinden, senden Sie mir eine eMail mit den folgenden Informationen (warnen Sie mich vor, falls Sie grosse Attachments mitsenden!):
|
||||||||||||||