Prometheus stellt seine Fragen über HTTP, aber deine Platte, dein Router und dein Spieleserver sprechen seine Sprache nicht. Der Exporter übersetzt.
Kurz gesagt
Ein Prometheus-Exporter ist ein kleiner Server, der Messwerte eines Systems liest, das sie nicht selbst im Prometheus-Format bereitstellen kann, und sie über HTTP ausliefert, damit der Prometheus-Server sie abrufen („scrapen“) kann [1][2]. Das bekannteste Beispiel ist der node_exporter: Er meldet Hardware- und Kernel-Werte von Linux- und anderen Unix-artigen Rechnern, etwa CPU, Arbeitsspeicher, Platten und Netzwerk, und lauscht standardmäßig auf Port 9100 [3][4]. Unsere Einschätzung: Setze auf jeden wichtigen Rechner einen node_exporter, ergänze weitere Exporter nur für Fragen, die du wirklich hast, und halte ihre Ports im eigenen Netz.
So funktioniert’s
- Prometheus holt ab. Der Server sammelt Zeitreihen im Pull-Modell über HTTP und ruft seine Ziele in einem festen Intervall ab. Pushen geht nur über ein zwischengeschaltetes Gateway, gedacht für kurzlebige Jobs [2].
- Wozu es Exporter gibt. Sie helfen dort, wo sich ein System nicht direkt instrumentieren lässt; die Prometheus-Doku nennt HAProxy und Linux-Systemwerte als Beispiele [1]. Manche Software liefert Prometheus-Werte schon selbst, zum Beispiel Grafana, der Docker-Daemon und Caddy, und braucht keinen Exporter [1].
- Das Format ist Klartext. Ein Exporter beantwortet eine GET-Anfrage mit Zeilen wie
# HELP,# TYPEundname{label="x"} 42, UTF-8-kodiert und alstext/plainmitversion=0.0.4ausgeliefert [5]. Ein Messwert ohne# TYPE-Zeile gilt alsuntyped[5]. - Offiziell oder nicht. Manche Exporter gehören zur GitHub-Organisation von Prometheus und sind als „official“ markiert. Das Projekt ermutigt zu weiteren Exportern, kann aber nicht alle auf bewährte Verfahren prüfen [1].
- Collectors im
node_exporter. Viele Collectors sind standardmäßig an, du schaltest sie mit--collector.NAMEoder--no-collector.NAME, wobei NAME der Collector ist [3]. Zwei Meta-Messwerte,node_scrape_collector_successundnode_scrape_collector_duration_seconds, zeigen, ob ein Collector funktioniert hat [3]. Dertextfile-Collector liest*.prom-Dateien aus einem Verzeichnis und liefert sie aus, was zu Batch-Jobs passt; Zeitstempel werden nicht unterstützt [3]. - Container brauchen Sorgfalt. Der
node_exporterist für das Hostsystem gebaut. Im Container braucht er die Host-Namespaces (--net=host,--pid=host), einen schreibgeschützten Bind-Mount von/und den Schalter--path.rootfs[3]. - Zugriffsschutz gibt es. Der Exporter unterstützt TLS und Basic-Authentifizierung über eine Web-Konfigurationsdatei, die du mit
--web.config.fileübergibst. Die README nennt das noch experimentell, und Passwörter stehen in dieser Datei als bcrypt-Hashes [3][6]. - Namensregeln. Gute Exporter nutzen Basiseinheiten (Sekunden, Bytes), Namen in snake_case und
_totalfür Zähler, und sie liefern Verhältnisse statt Prozentwerte [7].
Ein Praxisbeispiel
Du startest den node_exporter auf einem Linux-Rechner und prüfst ihn mit curl. Prometheus ruft ihn dann mit einer minimalen Konfiguration ab, wie sie die offizielle Anleitung zeigt [4]:
curl http://localhost:9100/metrics | grep "node_"global:
scrape_interval: 15s
scrape_configs:
- job_name: node
static_configs:
- targets: ['localhost:9100']Im Ausdrucksbrowser zeigt node_filesystem_avail_bytes dann den für Nicht-root-Benutzer verfügbaren Platz in Bytes [4]. Ein Prometheus-Setup haben wir in unserem Inventar (14. bis 16. Okt. 2026) nicht dokumentiert, deshalb ist das ein allgemeiner Ablauf aus der Anleitung des Projekts und keine eigene Messung.
Prüfliste
- Prüfe die
/metrics-Seite des Exporters mitcurl, bevor du ihn in Prometheus einträgst [4]. - Bevorzuge Software, die Messwerte selbst bereitstellt, vor einem zusätzlichen Exporter, wenn es beides gibt [1].
- Öffne Exporter-Ports nur für den Prometheus-Host und ergänze TLS oder Basic-Authentifizierung, wenn das Netz geteilt ist [3][6].
- Beobachte
node_scrape_collector_success, um Collectors zu finden, die still scheitern [3]. - Schalte Collectors, die du nicht brauchst, mit
--no-collector.NAMEab [3]. - Lies Exporter von Dritten, bevor du sie startest, denn das Projekt prüft sie nicht [1].