Prometheus auf Windows installieren und konfigurieren


    Tags: ,

    Prometheus-Metriken als GraphPrometheus ist ein quelloffenes Monitoring-System, das auf mehreren Platt­formen läuft. Es kann eine Viel­zahl von ver­schiedenen End­punkten über­wachen. Eine kom­plette Lösung benötigt zusätz­liche Kompo­nenten wie Grafana oder Alertmanager. Diese Anleitung zeigt, wie man das Kern­system unter Windows einrichtet.

    Prometheus kann den Health-Status und die Performance von Servern, Clouds oder virtualisierten Infrastrukturen überwachen. Admins generieren damit Reports, visua­lisieren Daten mit Grafana und lassen sich per Alert benach­richtigen (siehe dazu: Open-Source-Monitoring: Prometheus im Überblick).

    Download und Installation

    Im ersten Schritt lädt man die Installations­datei, aktuell ist dies prometheus-2.17.1.windows-amd64.tar.gz, von der Website des Prometheus-Projekts herunter. Diese entpackt man anschließend mit einem Archiv-Tool wie 7-zip, erst die gzip- und dann die tar-Datei, anschließend entnimmt man die eigentlichen Installations­medien.

    Archiv mit den heruntergeladenen Dateien für Prometheus

    Es ist nicht ratsam, die Files auf die Partition C zu entpacken, weil Prometheus in diesem Ordner standardmäßig die Logs sammelt. Allerdings kann man nachträglich die Konfiguration für das Log-Verzeichnis so anpassen, dass der Pfad auf ein anderes Volume zeigt.

    Konfiguration

    Die YAML-Datei prometheus.yml enthält die komplette Konfiguration des Tools.

    YAML-Konfigurationsdatei für Prometheus

    Wichtig sind die im obigen Screenshot markierten Felder global config und der scrape_configs. Ersteres enthält den Parameter scrape_interval, welcher die Pull-Intervalle für den Abruf der Daten festlegt, in diesem Fall auf 15 Sekunden. Die Abstände lassen sich verkürzen oder erweitern, aber erfahrungs­gemäß erweisen sich die 15 Sekunden als angemessener Wert.

    In die scrape_configs werden verschiedene Jobs und die entsprechenden Targets eingetragen. Wie Sie sicherlich bemerkt haben, ist unter den Targets bereits der eigene Server eingetragen. Prometheus erfasst dadurch auch seine eigene Metriken.

    Der job_name fungiert hierbei als Tag. Eine sinnvolle Anwendung wäre beispielsweise die Unterteilung der Jobs in solche für Testsysteme und die produktive Umgebung.

    Neben diesen Parametern existieren noch Konfigurationen für eigene Rulesets und einen Alertmanager, die hier aber keine Rolle spielen.

    Start der Anwendung

    Nachdem das Config-File soweit angepasst wurde, kann man Prometheus über die prometheus.exe starten.

    Ausgabebildschirm beim Start von Prometheus

    Aus ihren Output geht hervor, dass die zuvor angepasste Konfigurations­datei erfolgreich geladen wurde und dass die Anwendung auf Port 9090 hört.

    Web-Konsole starten

    Das Admin-Interface ist jetzt standardmäßig unter http://localhost:9090 erreichbar.

    Nach dem Start von Prometheus kann man die Web-Konsole standardmäßig über Port 9090 öffnen.

    Die Konsole wirkt recht spartanisch und dient primär dem Abruf gesammelter Daten und deren grafischer Darstellung. Über das Drop-down-Menü lassen sich Metriken auswählen, über das Feld Expression setzt man PromQL-Statements (ähnlich SQL) ab.

    Für folgendes Beispiel greife ich auf die Metrik scrape_duration_seconds zurück, also die Durchführungs­dauer eines Scrapes in Sekunden.

    Abruf der Metriken für die Durchführungs­dauer einer Datenerfassung

    Die Ausgabe kann über die Console oder durch einen Graphen mit zeitlichem Verlauf darstellen lassen.

    Darstellung der erhaltenen Metriken als Graph

    Die Diagramme sind recht rudimentär gehalten. Für das Dashboarding empfiehlt die Prometheus-Community deshalb offiziell Grafana. Der Prometheus-Server wird dann lediglich noch als Pull-Collector genutzt.

    Konfiguration von Prometheus als Windows-Service

    Um Prometheus nicht als reinen Task im User-Kontext zu starten, bietet es sich an, das Tool als Windows-Service auszuführen.

    Dazu kann man die Software NSSM nutzen. Nach dem Download entpackt man sie in das existierende Prometheus-Verzeichnis. Danach legt man den Service in einer Kommandozeile mit erhöhten Rechten an:

    .\nssm.exe install <servicename> <Pfad zu Prometheus.exe>

    Prometheus als Windows-Service registrieren

    Anschließend findet sich der Service unter den Windows-Diensten. Diesen kann man dort manuell starten oder gleich für die automatische Ausführung konfigurieren.

    Prometheus als Windows-Service manuell starten oder auf den Starttyp 'Automatisch' festlegen

    Sobald der Dienst läuft, ist das Web-Interface auch wieder unter <servername>:9090 erreichbar.

    Keine Kommentare