SNMP Exporter
Der SNMP Exporter ist eine essenzielle Komponente im Prometheus-Ökosystem, um Metriken von Netzwerkgeräten (Switches, Router, Drucker) via Simple Network Management Protocol (SNMP) zu sammeln. Dieser Guide führt dich durch die manuelle Installation auf einem Linux-System.
1. Architektur-Konzept: Wie SNMP Exporter funktioniert
Im Gegensatz zu anderen Exportern fragt Prometheus den SNMP Exporter an, der wiederum eine spezifische Abfrage an das Zielgerät sendet.
2. Download und Installation der Binärdateien
Zuerst laden wir die gewünschte Version (hier v0.19.0) herunter und verschieben die ausführbaren Dateien in das Systemverzeichnis.
# 1. Download des Archivs
wget https://github.com/prometheus/snmp_exporter/releases/download/v0.19.0/snmp_exporter-0.19.0.linux-amd64.tar.gz
# 2. Entpacken
tar xzf snmp_exporter-0.19.0.linux-amd64.tar.gz
# 3. Dateien verschieben
cd snmp_exporter-0.19.0.linux-amd64
sudo cp ./snmp_exporter /usr/local/bin/snmp_exporter
sudo cp ./snmp.yml /usr/local/bin/snmp.yml
3. System-Integration und Service-Konfiguration
Damit der Exporter automatisch beim Systemstart lädt, erstellen wir einen dedizierten System-User und eine Systemd-Service-Datei.
Schritt 1: System-Benutzer erstellen
sudo useradd --system prometheus
Schritt 2: Systemd Service-Datei anlegen
Erstelle die Datei mit sudo nano /etc/systemd/system/snmp-exporter.service und füge folgenden Inhalt ein:
[Unit]
Description=Prometheus SNMP Exporter Service
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/bin/snmp_exporter --config.file="/usr/local/bin/snmp.yml"
[Install]
WantedBy=multi-user.target
Schritt 3: Service starten
sudo systemctl daemon-reload
sudo systemctl enable snmp-exporter
sudo systemctl start snmp-exporter
sudo systemctl status snmp-exporter
4. Integration in Prometheus (prometheus.yml)
Damit Prometheus weiß, dass es den Exporter abfragen soll, muss die Konfigurationsdatei angepasst werden. SNMP nutzt "Relabeling", da das Zielgerät (target) als Parameter an den Exporter übergeben wird.
Öffne die Konfiguration: sudo nano /etc/prometheus/prometheus.yml und füge am Ende hinzu:
- job_name: snmp
metrics_path: /snmp
params:
module: [if_mib] # Das SNMP-Modul, das verwendet werden soll
static_configs:
- targets:
- 127.0.0.1 # IP des zu überwachenden Netzwerkgeräts
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9116 # Adresse des SNMP Exporters
5. Validierung und Abschluss
Bevor du den Prometheus-Dienst neu startest, solltest du die Syntax der Konfigurationsdatei prüfen.
- Konfiguration prüfen:
promtool check config /etc/prometheus/prometheus.yml - Prometheus neu starten:
sudo systemctl restart prometheus
sudo systemctl status prometheus - Web-Interface prüfen: Besuche
http://[Deine-IP]:9116im Browser, um das UI des SNMP Exporters zu sehen.
6. Terminal-Wissen: Verwendete Tools
wget: Ein Tool zum nicht-interaktiven Herunterladen von Dateien aus dem Internet.tar xzf: Entpackt (x) ein komprimiertes (z) Dateiarchiv (f).systemctl daemon-reload: Informiert das System über neue oder geänderte Service-Dateien, damit diese geladen werden können.relabel_configs: Ein mächtiges Prometheus-Feature, um Label während des Scrapes dynamisch zu verändern oder umzuschreiben.