Windows-Exporter

  • Linux

  • Windows

Der Windows-Exporter stellt das Windows-Pendant zu sowohl dem Node-Exporter als auch dem Process-Exporter dar.
Er exposed Zustandswerte des Windows-Host, z.B.:

  • CPU-Auslastung

  • RAM-Auslastung

  • Festplattenauslastung

  • Netzwerkdurchsatz

  • IO-Last

Zusätzlich stellt er aber auch Statistiken auf Prozess-/Service-Ebene bereit.

Konfiguration

Die Konfiguration befindet sich unter vimon/config/windows_exporter/windows_exporter.yml.

Kollektoren

In der Datei werden die Kollektoren aktiviert. Ein Grundumfang an Kollektoren ist in der Standard-Konfiguration bereits aktiviert.

Eine vollständige Liste aller möglichen Kollektoren befindet sich unter GitHub - Prometheus Kollektoren. Außerdem werden hier auch die Kollektoren selbst konfiguriert, wie beispielsweise die Services und Prozesse für das Reporting einzelner Prozesse.

Prozesse und Services

Prozesse und Services können unter Windows analog zum Process-Exporter überwacht werden.
Allerdings ist hier keine einfache Gruppierung möglich.

Die Ermittlung der relevanten Prozesse erfolgt über die Kollektor-Konfiguration, wobei auch mit Wildcards gearbeitet werden kann, z.B.:

collector:
  service:
    services-where: "Name='vimon_windows_exporter' OR Name='inubit-7.4' OR Name='bpc-elasticsearch' OR Name='bpc-karaf'"
  process:
    whitelist: "java+|karaf+|elasticsearch+"

Den Namen eines Prozesses kann man über den Taskmanager ermitteln. Hierbei ist die Dateiendung nicht Teil des Namens:

windows exporter processes

Man erhält mit der oberen Konfiguration beispielsweise folgende Metrik:

windows_process_cpu_time_total{creating_process_id="4640", instance="xxxxx:9191", job="wmi", mode="privileged", process="java", process_id="7716"}

Da der Prozessname java nicht unbedingt eindeutig sein muss, sollte man die Abfragen über die PID vornehmen - diese ändern sich aber bei jedem Serviceneustart. Man kann jedoch eine Verknüpfung über den Service-Collector erreichen:

windows_process_cpu_time_total * on (process_id) group_left (name) windows_service_info{name="inubit bpm 7.4 service"}

Wenn der INUBIT-Service über NSSM installiert wurde, funktioniert dies nicht. Der NSSM-Service hat seinen eigenen Prozess, der wiederum den Java-Prozess startet (mit separater PID).