Wir haben nun in den bisherigen Teilen die Datenbank installiert, Grafana eingerichtet und ein erstes Dashboard erzeugt. Nun geht es darum, dass wir nicht nur einen einzelnen Wert oder eine Handvoll Werte manuell abfragen und in die Datenbank schreiben möchten, sondern das wir auf bereits vorhandene Daten und vor allem Datenquellen zurückgreifen möchten.
Das Monitoring von Windows-Systemen mit Telegraf
Da ich sehr viel mit Windows Server-Systemen zu tun habe, möchte ich von diesen Systemen natürlich auch Informationen sammeln und visualisieren. Die Schnittstellen für solch einen Vorgang sind bereits vorhanden und können auf dem lokalen System mittels Performance Monitor (perfmon.exe) abgefragt werden. Diese Daten lassen sich mit Hilfe von Telegraf abfragen und in die InfluxDB schreiben.
Telegraf ist ebenfalls ein Produkt der Firma Influx und ist sowohl für Linux als auch für Windows-Systeme verfügbar. In diesem Beitrag möchte ich einmal zeigen, wie man den Agenten unter Windows einrichtet und nutzt.
Telegraf herunterladen
Alles beginnt natürlich mit dem Download der entsprechenden Dateien. Die Dateien sind grundsätzlich über die Hauptseite zu finden:
https://portal.influxdata.com/downloads/
Hier stehen die unterschiedlichen Versionen zur Verfügung, zum aktuellen Zeitpunkt wäre dies in meinem Fall die Datei telegraf-1.9.4_windows_amd64.zip und somit die Version 1.9.4.
Die Installation (als Dienst)
Die Installation des Agenten gestaltet sich sehr einfach. Im ersten Schritt legen wir das zip-Archiv auf dem Server ab und entpacken es an einer von uns gewünschten Stelle, z.B. C:\Program Files\Telegraf\.
Grundsätzlich enthält das Paket nur zwei Dateien:
- telegraf.conf und
- telegraf.exe
Die in meinem Screenshot sichtbaren weiteren Dateien sind vorhanden, weil ich von der Standard-Config-Datei eine Kopie gemacht habe und die andere .log-Datei ist vorhanden, weil ich bei Tests ein logging aktiviert habe.
Ich könnte die telegraf.exe-Datei nun direkt in einer cmd oder einer PowerShell starten, dann würde das Programm aber nur so lange laufen, bis ich das Fenster wieder schließe oder ich mich an dem System abmelde. Aus diesem Grund möchte ich, dass der Telegraf-Agent als Dienst läuft und somit immer gestartet wird, wenn das System generell startet. Dies lässt sich über den folgenden Befehl realisieren:
C:\"Program Files"\Telegraf\telegraf.exe --service install --config C:\"Program Files"\Telegraf\telegraf.conf
Dieser kleine Befehl bewirkt, dass Telegraf als Dienst installiert wird und immer die Datei C:\Program Files\Telegraf\telegraf.conf als Konfiguration nutzt. Der Pfad kann natürlich nach Bedarf angepasst werden. Eine Deinstallation ist natürlich auch möglich, dies wäre mit dem Parameter –service uninstall möglich.
Weitere Infos und Quelle: https://github.com/influxdata/telegraf/blob/master/docs/WINDOWS_SERVICE.md
Die Konfiguration
Die Konfigurationsdatei ist das wichtigste bei einer Telegraf-Installation, hier stehen die Informationen drin, mit denen der Agent arbeitet. Die Datei muss angepasst werden, dies schauen wir uns auch mal gemeinsam an.
Ein vernünftiger Editor
Die Datei sollte grundsätzlich mit einem ordentlichen Editor geöffnet werden. Nein, notepad.exe ist kein vernünftiger Editor. Man kann die Datei natürlich darin öffnen, das sieht dann aber vollkommen scheisse aus und ist keinesfalls nutzbar. Ich bevorzuge Notepad++, die PowerShell ISE und/oder Visual Studio Code, alles sehr gut nutzbar.
Die Datenbank-Informationen
Damit der Agent weiß, mit welcher Datenbank er sprechen muss, müssen wir diese Datenbank in die config-Datei aufnehmen. Dies geschieht in der Sektion OUTPUTS.
Messwerte
Im weiteren Verlauf der Datei kommen wir dann zum Teil INPUTS. Hier wird definiert, was genau gemessen und in der Datenbank abgelegt werden soll. Die Standard-config-Datei enthält bereits einige Werte, z.B. die Auslastung der CPU und des Arbeitsspeichers.
Diese Werte können noch erweitert werden, alternativ könnten auch Abfragen entfernt werden. Wenn man z.B. nicht die DPC Time der CPU braucht, könnte dieser Eintrag (Zeile 173 im Screenshot) entfernt werden.
Eigene Messwerte aufnehmen
Wenn man eigene Werte aufnehmen möchte, kann man dies natürlich auch problemlos machen. Grundsätzlich müssen in der Datei die englischen Namen der Counter eingetragen werden, auch wenn man mit einem deutschen OS arbeitet! Hier ein kleines Beispiel für die Abfrage von Exchange-Werten auf einem Mailserver mit Microsoft Exchange:
Bitte darauf achten, dass der Telegraf-Dienst neugestartet wird, sobald Änderungen an der config-Datei gemacht werden!
Die Messwerte im Grafana visualisieren
Um nun die Daten in einem Dashboard anzuzeigen, muss dieses natürlich erstmal erzeugt werden. Hierzu erstellen wir uns ein neues Panel unserer Wahl (z.B. einen Graph).
Dieses Panel editieren wir und können sie die Datenquelle und unsere gewünschten Einstellungen auswählen.
Als erstes wählen wir die Datenquelle aus, in der sich unsere aufgenommenen Werte befinden. Diese Datenquelle haben wir vorher in der telegraf.conf definiert.
Nun müssen wir uns die Abfrage der Datenbank zusammenbauen (oder auch direkt im Editor-Modus schreiben, wenn das einfacher ist). Ich sehe hier z.B. direkt die folgenden Möglichkeiten
So lassen sich sehr interessante Informationen auf einer Oberfläche zusammensetzen, die dann z.B. für Präsentationen oder für den generellen IT-Monitor genutzt werden können. Je nach Information kann dies auch z.B. dafür genutzt werden, um Zahlen und Mengen in Planungen oder Budget-Berechnungen einfließen zu lassen.
Der Fantasie sind bei der Gestaltung der Dashboards keinerlei Grenzen gesetzt, man wird nach einiger Zeit allerdings merken, dass manchmal die gewünschte Art der Darstellung nicht aussagekräftig ist. Ich habe z.B. gemerkt, dass ein Graph manchmal nicht so viel aussagt wie ein einzelner Prozentwert, oder dass z.B. die Menge an freiem Speicherplatz vs. belegtem Platz in einem Pie Chart besser wahrgenommen wird als in einem Graph. Aber das merkt man, nach ein paar Tagen beginnen die ersten Änderungen und final kommt dann die bevorzugte Ansicht raus, mit der man gut und schnell arbeiten kann.
Mit diesem Teil haben wir erst einmal das Ende dieser kleinen Blogreihe erreicht, ich hoffe ich konnte recht gut rüberbringen wie man sich selbst eine Grafana / InfluxDB-Umgebung aufbaut und wie man seine Windows-Systeme mit PowerShell und Telegraf in ein kleines Monitoring aufnehmen kann. Die Überwachung von linux mit Hilfe von Telegraf ist ebenfalls problemlos möglich, hier ändert sich nur ein bisschen die Art der Abfrage und die Namen der Parameter.