NETWAYS GmbH
Deutschherrnstraße 15-19
90429 Nürnberg

Phone:
+49 911 92885-0
Fax:
+49 911 92885-77
Email:
info(at)netways.de

Kontaktformular

Unsere Kunden

Bundesverwaltungsamt

Bundesverwaltungsamt

Security Lösungen

Graphite Architektur

Graphite bietet eine modulare und auf alle Anwendungsfälle anpassbare Architektur, die sich auch durch Schnelligkeit und Stabilität in großen Umgebungen auszeichnet. Die folgende Grafik zeigt einen Architekturaufbau im Rahmen des Graphings von Icinga-Performancewerten in einer verteilten Installation:

Whisper-Files statt RRD

Der Graphite Carbon ist - wie im Architekturbild zu sehen - das Herzstück des Setups. Dieser besteht aus insgesamt drei Teilbereichen, welche alle notwendigen Operationen vom Datenempfang, der Bereitstellung sowie der Speicherung vornehmen. Die wichtigstes Änderung von Graphite ist genau genommen das Whisper-File Format.

Dieses basiert genau genommen auf dem RRD-System, ist jedoch um einiges flexibler, da Performance-Daten auch nachträglich noch hinzugefügt werden können, was bei RRD nicht funktioniert. Obwohl die zugrunde legende Programmiersprache Python und nicht C ist, merkt man im direkten Vergleich keinen spürbaren Unterschied.

Graphite Carbon

Der Carbon ist der eigentlich Dienst der Graphite zugrunde liegt und die gesamte Graphing Lösung verwaltet, die Logik bereitstellt und letztlich sehr flexibel macht. Vergleicht man Graphite mit anderen Graphing-Lösungen, wird man schnell feststellen, dass bei größeren Umgebung nicht die Software selbst, sondern die eigentlich zugrunde liegende Hardware an die Grenzen stößt. Will man sekundengenaues Performance-Management abbilden, ist Graphite von der Logik her die beste Wahl.

Flexibilität

Anstatt alle Daten auf einen Graphite-Carbon und somit auf ein Storage-System zu schreiben, können die Performance-Daten im Vorfeld durch ein eigenes Reaper-Skript aufgeteilt werden. Somit werden beispielsweise Daten von verschiedenen Switchen an Graphite 1 und Daten von anderen Netzwerkgeräten an Graphite 2 geschickt. Die Last der Schreibzugriffe auf die Festplatten kann somit getrennt werden, die Darstellung der Daten erfolgt jedoch über ein einziges Webinterface.

Graphite Agent

Der Graphite Agent ist ein Teil des Graphite Carbon Cores, welcher letztlich für die Annahme von eingehenden Verbindungen verantwortlich ist. Diese Verbindungen werden von z.B. eigenen Reaper-Skripten geöffnet, welche anschließend über einen TCP-Stream die Performance Daten über den Agent an Graphite schicken. Anschließend übergibt der Agent die Daten an den Cache.

Graphite Cache

Der Graphite Cache ist genau das, was der Name verspricht. Sowohl neue Performance Daten als auch vom Webinterface angefragte Daten werden hier zwischengelagert. Sobald neue Performance Daten an Graphite geschickt werden, versucht dieser die Informationen so schnell wie möglich auf die Festplatten zu schreiben - somit sind die Daten immer verfügbar. Ein Vorteil ist, dass, selbst wenn Daten noch nicht geschrieben wurden, diese trotzdem im Webinterface verfügbar sind. Somit kann ein Graphite System auch unter hoher Last noch sehr schnell reagieren.

Graphite Persister

Die Persister Komponente erledigt einfach gesagt den Papierkram von Graphite. Performance-Daten, die im Cache liegen und auf die Festplatte geschrieben werden sollen, werden vom Cache an den Persister übergeben, um entweder neuer Whisper-Files anzulegen oder bereits vorhandene Dateien mit neuen Daten zu aktualisieren. Somit wird sichergestellt, dass selbst bei einer hohen Auslastung des Systems der Cache noch sauber arbeiten kann - denn die Schreibarbeit übernimmt intern der Persister.