Daten der Serverüberwachung visualisiert
Uns liegt sehr viel an der dauerhaften, hochfrequenten und genauen Überwachung der von uns betreuten Server. Es ist uns dadurch möglich, Fehler auf den Rechnern schnell und eindeutig zu erkennen und meist auch sofort die Ursache zu benennen. Häufig gibt uns die Serverüberwachung sogar die Möglichkeit, Probleme zu erkennen, noch bevor sie sich zu einem echten Fehler entwickeln. Ein typisches Beispiel hierfür ist die Überwachung des Füllstandes einer Festplattenpartition.
Technisch setzen wir für die Überwachung auf Icinga, einen Nagios-Fork, welcher seit 2009 stetig weiterentwickelt wird. Icinga bringt bereits eine Vielzahl von Modulen zur Kontrolle verschiedener Soft- und Hardware mit. Viele der bereitgestellten Plugins erfüllen jedoch nicht unsere Ansprüche an eine umfangreiche Kontrolle der Server. In manchen Fällen gab es bislang auch gar keine entsprechenden Module. Wir haben daher in den letzten Jahren sehr viele Plugins selbst entwickelt bzw. entwickeln diese immer noch kontinuierlich weiter. Insbesondere unser Entwickler Simon arbeitet an der Weiterentwicklung der hierfür notwendigen Programme.
Interessant für uns ist jedoch nicht nur, ob ein Server einen akuten Fehler aufweist oder nicht, sondern auch eine Langzeitbetrachtung der anfallenden Messwerte. Hierdurch können wir Tendenzen erkennen – beispielsweise, falls ein Webshop innerhalb eines Jahres immer mehr Kunden bekommt und der eingesetzte Server daher auf Dauer zu klein wird. Daher lassen wir uns die von den Überwachungsplugins zurück gelieferten Zahlenwerte aufbereitet in Graphen darstellen.
Ich möchte ein paar dieser Graphen exemplarisch zeigen:
CPU-Temperatur
Im folgenden Graph sieht man Beispielsweise den Verlauf der CPU-Temperaturen auf einem Server innerhalb eines halben Jahres. Wie man gut erkennen kann, werten wir verschiedene Sensoren in der CPU und auf dem Mainboard aus, deren Messwerte jedoch sehr stark miteinander korrelieren, da die Sensoren sehr nahe beieinander liegen und eine CPU typischerweise nicht auf der einen Seite kalt und auf der gegenüberliegenden Seite heiß ist. Wie man dem Schaubild weiterhin gut entnehmen kann ist die Temperatur unter der Woche eher hoch und am Wochenende niedrig. Dies hängt mit der Nutzung des Servers zusammen, welcher nur an Arbeitstagen Daten verarbeitet. CPUs, welche nicht genutzt werden, haben eine geringere Temperatur als CPUs, welche unter Last stehen. Woran liegt das?
Stromaufnahme
Hierzu können wir uns das nächste Schaubild genauer ansehen. Es handelt sich um die Messwerte der im Server verbauten, redundanten Netzteile. Dem Graph lässt sich entnehmen, wie viel Leistung (in Watt) von den Netzteilen aufgenommen und an den Server abgegeben wurde. Dieses Schaubild geht mit dem CPU-Graphen einher. Wenn eine CPU rechnet benötigt sie mehr Strom. Der Strom wird dabei vor allem in Wärme umgesetzt. Die Temperatur steigt. Sobald die CPU nicht mehr genutzt wird sinkt die Leistungsaufnahme und mit ihr die Temperatur.
Wie man dem Schaubild auch entnehmen kann, setzen wir äußerst energiesparende Server ein, welche im Schnitt nur ca. 70 Watt Leistung benötigen. Das spart nicht nur Stromkosten sondern hilft auch der Umwelt. Durch konsequenten Einsatz von Virtualisierung lasten wir unsere Server außerdem sehr gut aus und verbessern somit weiter die Energiebilanz.
MySQL-Anfragen
Zur Demonstration, dass man nicht nur Hardware sinnvoll überwachen kann, möchte ich noch das Überwachungsbild eines anderen Servers zeigen. Auf diesem ist die Anzahl der Anfragen dargestellt, welche pro Sekunde beim MySQL-Server eintreffen. Wie man sieht, liegt diese recht konstant bei 20 Anfragen/Sekunde mit moderaten Schwankungen nach oben und unten. Der MySQL-Server ist also dauerhaft mit einer weitgehend konstanten Anzahl von Anfragen belastet. Nur am 4. April gab es eine Auslastungsspitze nach oben mit knapp 200 Anfragen pro Sekunde. Dies könnte ein Indiz für ein Software-Problem sein. Falls solche auffälligen Messwerte öfters auftreten informieren wir unsere Kunden, damit sie Ihre Programme nach eventuellen Fehlern untersuchen können.
Arbeitsspeicher
Ein weiteres Schaubild zeigt die Speicherauslastung eines bestimmten Servers. Auch hier sieht man wieder eine unterschiedlich starke Nutzung im zeitleichen Verlauf. Tagsüber wird mehr Arbeitsspeicher benötigt als nachts. Grund ist die erhöhte Aktivität von Webseitenbesuchern, welche tagsüber in der Regel surfen und nachts schlafen. Gut sehen kann man im Graphen auch, dass der Linux-Kernel in der Regel sehr viel Speicher für das Zwischenspeichern bzw. Caching von Festplattendaten verwendet, falls er der Arbeitsspeicher nicht anderweitig benötigt. Hierduch werden Festplattenzugriffe beschleunigt.
Festplattenzugriffe
Zuletzt möchte ich noch ein Bild präsentieren, welches die Festplattenzugriffe eines unserer Backup-Server zeigt. Auf diesem lässt sich gut erkennen, dass zwischen 0 und 8 Uhr in der Nacht Backups gemacht wurden. Hierbei wurde ein verhältnismäßig niedriger Durchsatz von bis zu ca. 44 MB/s erreicht. Das Disk-Subsystem des Backup-Servers besteht aus zehn Festplatten und kann deutlich höhere Datenraten liefern. Die Geschwindigkeit wird jedoch durch die Anzahl der Zugriffe pro Sekunde (bis zu 962) und die Netzwerklatenz bestimmt, da sich in der Regel wenige Daten ändern, beim Erstellen eines neuen Backups jedoch viele Metadaten (Dateidatum/größe) miteinander verglichen werden müssen.