Was man bei der Serverüberwachung beachten sollte

Wer aus professionellen Gründen einen oder mehrere Server betreibt kommt um eine permanente Überwachung nicht herum. Gerade im Unternehmensbereich wird dieses Thema immer wichtiger, denn nichts ist peinlicher als von Kunden oder dem Chef auf ausgefallenen System oder Fehlfunktionen hingewiesen zu werden.

Ich möchte in folgenden ein paar Punkte ansprechen auf die man achten sollte. Das Tool der Wahl lasse ich außen vor. Es gibt für jeden Zweck, jede Größe ein passendes Tool, sei es nun Monit, Nagios/Icinga oder Eigenentwicklungen.

Im Idealfall stehen am Anfang drei Fragen über die man Nachdenken sollte:

  • Was möchte ich überwachen?
  • Wie muss es überwacht werden?
  • Wann schlägt die Alarmierung zu?

Bei der Was-Frage geht es darum sich klar darüber zu werden, über welche System- oder Dienstzustände man überhaupt informiert werden möchte. Viele Server verfügen mittlerweile über einfache Mittel zur Hardwareüberwachung. Wenn sie da sind sollte man sie nutzen. Ein Ping-Check auf Erreichbarkeit sollte obligatorisch sein und dann natürlich die laufenden Dienste, wie Webserver oder die Datenbank. Manche Dinge sollte man hinterfragen. Checks für Load, CPU-Last oder Speicherauslastung machen nicht immer Sinn, dazu später mehr.

Beim Wie geht es darum wie der Check gestaltet sein muss. Er sollte eindeutig sein und nicht nur die generelle Erreichbarkeit testen, sondern auch Informationen über die ordnungsgemäße Funktion des Test-Objektes liefern. Ein paar Beispiele: bei der Überwachung eines Webservers sollte nicht nur die Erreichbarkeit des Port 80 getestet werden, sondern auch ob der Server den Status-Code 200 zurückliefert. Tut man es nicht würden z.B. Fehlkonfigurationen am Server nicht auffallen. Anderes Beispiel SSL-Support. Wer nur Port 443 überwacht und nicht das Ablauf-Datum des Zertifikates handelt imho Unprofessionell, da hier wieder die Gefahr besteht von Dritten auf eigene Fehler hingewiesen zu werden. Gleiches gilt für Datenbanken oder Anwendungen die eine Anmeldung (SMTP-Auth, POP3, IMAP) erfordern, ob die Anmeldung funktioniert sollte regelmäßig getestet werden. Auch hier gilt generell, das es wichtig ist nicht nur die Erreichbarkeit, sondern auch die ordnungsgemäße Funktion zu testen.

Die komplizierteste Frage, die zugleich ein wenig Fingerspitzengefühl und gleichzeitig Erfahrung im Umgang mit dem Monitoring erfordert ist Wann die Alarmierung losgehen soll. So einfach ist es nämlich leider nicht. Da steht am Anfang zum Beispiel die Frage, ob man in der Nacht für eine kaputte Festplatte aus dem Bett geklingelt werden möchte, wenn der Ersatz erst am Morgen geliefert wird. In der ersten Begeisterung über die Möglichkeiten einer Überwachung wird oftmals zu viel zu oft alarmiert. Die Folge sind schlaflose Nächte für nichts oder ein Ignorieren der Alarme, was auch nicht im Sinne des Ganzen sein kann. Wichtig ist es daher nur zu Alarmieren wenn wirklich etwas wichtiges passiert ist. Das Überwachungstool sollte daher nicht nur Alarmieren können, sondern in Abstufungen Warnen oder einfach nur Informationen von sich geben können. Beispiel: wer die Disk-Usage überwacht sollte einen sinnvollen Schwellwert haben ab wann gewarnt wird. So kann zum Beispiel am Freitag noch die 80% Warnung kommen und entsprechend gehandelt werden, anstatt am frühen Sonntagmorgen per Alarmierung aus den Bett geworfen zu werden. Wichtig ist auch die Abbildung von Abhängigkeiten. Gibt es für einen Server sieben Checks, sollte man bei einem Total-Ausfall im Idealfall nur die Meldung für den gescheiterten Ping-Check bekommen. Alles andere wäre zuviel Information. Der Gau für Systeme ohne Abhängigkeiten sind virtualisierte Umgebungen. Fällt hier ein Systeme mit zig Instanzen aus ersäuft man in Informationen. Dann ist es gar nicht so einfach den Wust zu sichten und auf den eigentlichen Kern des Problems, den ausgefallenen ESX-Server zu stoßen. Dann gibt es noch Dinge die Nice-to-Know sind, aber nicht unbedingt 24/7 alarmierungswürdig sind. Wer seine Server per NTP syncronisiert wird sicherlich wissen wollen wenn der Server trotzdem abdriftet, aber muss das mitten in der Nacht sein? Morgens reicht meist auch. Grenzwertig sind auch Dinge wie Load, CPU-Last und Speicherverbrauch. Server haben immer mal wieder Lastspitzen, aber vielfach reicht es auch aus es einfach nur als Information herauszugeben. Jetzt gilt es noch zu klären wie die Alarme/Informationen den Adressaten erreichen. Per Mail ist keine gute Idee. Das landet oftmals in /dev/null, aber brauchen tut man es doch. SMS und Pager sind Mittel der Wahl und Jabber sollte nicht fehlen. Besonders auf Jabber möchte ich nicht mehr missen. Morgens macht man den Client an und sieht was die Nacht so gewesen ist.

Sich mit dem Thema Serverüberwachung auseinanderzusetzen ist eine lohnenswertge Aufgabe. Man bekommt auf Dauer eine tiefere Einsicht wie die Systeme ticken und die gesamte Umgebung profitiert enorm von einer sinnvollen Überwachung durch eine höhere Verfügbarkeit. Manchmal ergeben sich auch intressante Einsichten. Wie zum Beispiel das die Überwachung innerhalb des Betriebssystems mit den Hersteller-Agenten nicht unbedingt eine gute Wahl ist. Gerät so ein System unter Last können die Überwachungs-Checks in Timeouts laufen, besser ist es in diesen Fall Server mit einen unabhängigen Service-Prozessor zu haben. Intressant ist es auch die Alarme in ein Ticket-System zu füttern. Da werden dann fröhlich Tickets auf- und zugemacht oder bleiben stehen, damit sich jemand des Problems annehmen kann, aber das würde jetzt zu weit führen.

11 Kommentare zu „Was man bei der Serverüberwachung beachten sollte“

  • Sil53r Surf3r:

    Generell sollte man evtl. Wachstum bei der Planung berücksichtigen. Manche Überwachungswerkzeuge skalieren schlechter als andere. Habe ich nur ein oder zwei Server zu überwachen, kann ich das mit einem praktisch beliebigen Tool von einer zentralen Stelle aus machen. Wie aber sieht es mit ein-, zweihundert Servern aus?

    Rechtzeitige Verteilung auf Subsysteme schützt vor der Überlastung einer zentralen Monitoring-Komponente. Bei größeren Netzen können unabhängige Service-Prozessoren außerdem davor bewahren, daß der auf dem zentralen Monitor aufschlagende (oder davon ausgehende) Traffic die Firewalls triggert, die sich einer Attacke ausgesetzt wähnen und dichtmachen. Deren Schwellwerte sollte man also auch kennen.

  • Als kleiner, unwürdiger Programmierer find ich es richtig toll Einblick in das unglaublich komplizierte Leben eines Admins zu erhalten. Ich wusste ja gar nicht, mit was für Problemen man sich da herumschlagen muss!

    Nein, ganz im Ernst, toller Artikel. Über sowas hab ich mir ehrlich gesagt noch nie Gedanken gemacht (Warum auch, dafür hab ich ja Admins), aber kann ich bestimmt irgendwann gut gebrauchen.

  • goto:

    Hallo,

    schöner Artikel, an vielen Stellen höre ich da irgendwie Nagios raus ;) Ich selbst bin bei einem EDV-Dienstleister beschäftigt und setze bei Kunden Nagios ein, das hat eine schöne Granularität, lässt sich dank vorhandener Plugins sehr schön erweitern und auch die Abhängigkeiten lassen sich schön definieren :)

  • kero:

    Was tun wenn critical?
    Wie filtere ich reine Infos von
    Ein Punkt sollten die Notfallmassnahmen sein. Was bringt das schoenste critical wenn die Urlaubsvertretung keine Ahnung hat was sie tun soll ;-).

  • kero:

    @kero
    ach damn man moege den zweiten Teilsatz streichen.

  • @goto
    Ich kenne mich mit Nagios nicht aus

    @kero
    Notfallprozeduren haben mit der Überwachung ersteinmal nichts zu tun. Mit dem einen stellt Du fest, das etwas kaputt ist, mit dem anderen flickst Du es dann wieder zusammen.

  • Beim Was ist es besonders wichtig neben den offensichtlichen Indikatoren für funktionierende Verarbeitung auch die Früherkennung nicht zu vergessen. Und bei der insbesondere Metriken die zuverlässig sind (um nicht ständig Fehlalarme zu haben). Ich denke dabei z.B. an Temperatur, Zeit die im Interrupt Handler verbracht wird, ganz wichtig RAID und/oder Smart Warnungen. Degenerierte Netzteile, Checksum Fehler (ECC), …

    Leider gibt es hier sehr viele Metriken die einem erst einfallen wenn es zu spät ist. Es wäre wünschenswert wenn Server bei mehr solcher Problemfälle einheitliche Alerts schicken könnten die man nicht alle einzeln Monitoren muss.

    Gruss
    Bernd

  • kero:

    @Joern
    Schon klar, ich wollte es halt mal erwaehnt haben. In der Regel wird das naemlich gern vergessen.

  • links for 2009-07-14…

    Was man bei der Serverüberwachung beachten sollte | EDV – Ende der Vernunft

    (tags: server netzwerk monitoring tipps planung überwachung sysadmin)

  • Ich finde nagios uebrigens nicht so super toll. Das groesste Problem ist die fehlende Unterstützung für historische Daten und komplexere Schwellwertberechnungen.

    Ich hoffe dass jopr/rhq endlich brauchbarer wird. Die Metrik Datenbank ist da jedenfalls schon mal besser.

  • Bernd Janke-Wohltmann:

    Da hat doch jemand Jehowa gesagt – super…

    Klasse Artikel der mir sehr aus der Seele spricht. Gerade dieser Wunsch nach zuviel Feedback am Anfang ist meist tötlich. – dann reagiert später keiner mehr auf Events.

    Meiner Meinung nach wird neben den Server auch der Infrastruktur immer zu wenig Aufmerksamkeit geschenkt – und wenn ein Server nicht läuft – dann ist immer das Netzwerk Schuld.

    Aus meiner Praxis kenne ich viele Beispiele, wo ganz simple Ursache dann zu einem vermeidbaren Totalausfall führen – und in der Regel sind die Gründe für den Ausfall meist organisatorischer Art, das die Systeme zwar ein Problem erkennen und Melden – diese Meldung aber nicht ankommt, nicht eskaliert und am Wochenende ist ja sowieso keiner von der IT zuständig…..

    Da werden dann die 10.000 Features der Programme geprüft – aber am Wochenende und Abends hat keiner aus der IT Bereitschaft.

    Und generell muss ja auch das Monitoringsystem überwacht werden…

Archiv