Seite wählen

Sekundengenaue Graphen mit Quickstatd und Graphite

von | Aug 9, 2013 | Linux, DevOps, Web Services, Network

Für die Analyse von Performance-Werten bzw. der Auslastung von Linux-Servern greift man meist unter anderem auf die „Sysstat“-Sammlung zurück, um sich einen raschen Überblick der Stati von Netzwerk,CPU und Co. zu verschaffen: iostat, vmstat, sar usw.
Für eine Momentaufnahme ist der Aufruf über die Kommandozeile auf einem Server auch übersichtlich genug, um sich ein Urteil bilden zu können. Vergleicht man jedoch Werte über einen oder mehrere Zeiträume hinweg und ggfs. auch noch auf mehreren Servern, da sie gemeinsam ein Cluster, eine Cloud, ein Storage bilden oder sonst in irgendeiner Abhängigkeit stehen, wird es umständlich und eine andere Lösung muss her. Ein Graph!
In der Regel werden Performance-Daten über das Monitoring-System und dessen Checks gesammelt und zu einem Graphen visualisiert, den man dann ansehen und für sich interpretieren kann. Der Informationsgehalt ist meist ausreichend, da man über einen längeren Zeitraum betrachtet Änderungen oder Abweichungen, z.B. einen Anstieg, leicht erkennen kann. Bei schnellen Änderungen in kürzeren Zeiträumen kann ohne Anpassungen die eine benötigte Information leicht untergehen und im Durchschnitt verschwinden.
Für eine sekundengenaue- und einer Live-Ansicht von Performance-Graphen habe ich gestern eine leichtgewichtige Lösung ausprobiert: Quickstatd. Quickstatd ist ein kleines und einfaches Tool, bestehend aus Bash- und Gawk-Skripts, dass Sysstat-Daten parsed und direkt an Graphite weiterreicht. Damit ist der Funktionsumfang auch schon gänzlich beschrieben 🙂 Im Prinzip ist die Funktionsweise ein Aufruf wie folgt:
"sar -n DEV 1 | gawk -f /script/in/dem/die/Werte/geparsed/werden | nc mein.graphite.host 2003"
Mit Sar werden jede Sekunde, im vorangegangen Beispiel die Netzwerkaktivität, an gawk gepiped. Das wiederum parsed die Werte und schreibt sie im Graphite-Format (Bezeichnung Wert Timestamp) an Stdout bzw. piped es weiter an Netcat. Netcat wiederum schickt den String an den Graphite-Collector. In Graphite muss nur noch das Storage-Schema auf die sekundengenaue Speicherung der Werte angepasst werden und et voilà hat man sekundengenau Live-Graphen.
Bildschirmfoto 2013-08-09 um 12.42.37

Sebastian Saemann
Sebastian Saemann
CEO Managed Services

Sebastian kam von einem großen deutschen Hostingprovider zu NETWAYS, weil ihm dort zu langweilig war. Bei uns kann er sich nun besser verwirklichen, denn er leitet das Managed Services Team. Wenn er nicht gerade Cloud-Komponenten patched, versucht er mit seinem Motorrad einen neuen Rundenrekord aufzustellen.

2 Kommentare

  1. Sebastian Saemann

    Hi Wolfsrudel,
    danke für den Tipp schaut sehr interessant aus!

    Antworten

Trackbacks/Pingbacks

  1. Datentransfer leicht gemacht! › NETWAYS Blog - […] Dieser ermöglicht, nachdem er auf Rechner 1 implementiert wurde und dort auch läuft, Rechner 2 über den Webserver eine…

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Linux | DevOps | Web Services | Network

CfgMgmtCamp 2024: Unser Rückblick

Vergangene Woche fuhr ein Teil unseres Teams bei NWS bis nach Ghent in Belgien, um am ConfigManagementCamp 2024 teilzunehmen. Hierbei handelt es sich um eine kostenlose Konferenz, direkt im Anschluss an die FOSDEM, was Jahr für Jahr für ein großes Publikum aus Fans...

Effektive Zugriffskontrolle für GitLab Pages

Grundlagen von GitLab Pages GitLab Pages sind eine facettenreiche Funktion, die es ermöglicht, statische Webseiten direkt aus einem GitLab-Repository heraus zu hosten. Diese Funktionalität eröffnet eine breite Palette von Anwendungsmöglichkeiten, von der Erstellung...