Der node_exporter ist ein weit verbreiteter Exporter für
Prometheus, der speziell für die Überwachung von Hardware- und
Betriebssystem-Metriken entwickelt wurde. Er sammelt eine Vielzahl von
Systemmetriken, die für die Überwachung von Linux-, Windows- und anderen
Betriebssystemen nützlich sind.
node_exporter sammelt detaillierte Metriken zu
verschiedenen Aspekten eines Systems, einschließlich CPU, Speicher,
Netzwerk, Festplatten-IO und mehr.node_exporter ist einfach zu installieren und zu
konfigurieren, was ihn zu einem idealen Werkzeug für die
Systemüberwachung macht.node_exporter verwendet ein modulares Design, bei
dem verschiedene Metrik-Sammler aktiviert oder deaktiviert werden
können, um die gesammelten Daten anzupassen.Der node_exporter kann auf verschiedenen Plattformen
installiert werden. Hier sind die Schritte für die Installation auf
einem Linux-System:
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar xvfz node_exporter-1.2.2.linux-amd64.tar.gz
cd node_exporter-1.2.2.linux-amd64
./node_exporterUm den node_exporter als Systemd-Dienst
einzurichten, erstellen Sie eine Datei
/etc/systemd/system/node_exporter.service:
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=nodeusr
ExecStart=/usr/local/bin/node_exporter
Restart=always
[Install]
WantedBy=multi-user.targetStarten und aktivieren Sie den Dienst:
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporterFügen Sie den node_exporter als Ziel in der
prometheus.yml-Datei hinzu:
scrape_configs:
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']Der node_exporter sammelt eine Vielzahl von Metriken,
darunter:
node_cpu_seconds_total: CPU-Auslastung in Sekunden nach
Modus (Idle, User, System, etc.)node_memory_MemTotal_bytes: Gesamter verfügbarer
Speichernode_memory_MemFree_bytes: Frei verfügbarer
Speichernode_network_receive_bytes_total: Empfangene Bytes pro
Netzwerkinterfacenode_network_transmit_bytes_total: Übertragene Bytes
pro Netzwerkinterfacenode_disk_io_time_seconds_total: Gesamtzeit der
Festplatten-IO-Aktivitätnode_disk_read_bytes_total: Gelesene Bytes pro
Festplattenpartitionnode_filesystem_size_bytes: Gesamtgröße des
Dateisystemsnode_filesystem_free_bytes: Verfügbarer Speicherplatz
im DateisystemSie können bestimmte Metrik-Sammler aktivieren oder deaktivieren,
indem Sie Kommandozeilenoptionen beim Start des
node_exporter verwenden:
./node_exporter --collector.cpu --collector.meminfo --no-collector.diskstatsnode_exporter integriert
werden.node_exporter
selbst, um sicherzustellen, dass er das System nicht übermäßig
belastet.node_exporter-Endpunkt durch geeignete
Netzwerksicherheitsmaßnahmen wie Firewalls oder IP-Whitelist.node_exporter auf dem neuesten Stand, um
von Verbesserungen und Sicherheitsupdates zu profitieren.Der node_exporter ist ein leistungsstarkes und flexibles
Werkzeug zur Überwachung der Systemgesundheit und Leistung. Durch seine
einfache Installation und Konfiguration bietet er eine schnelle und
effiziente Möglichkeit, umfangreiche Metriken zu sammeln und in
Prometheus zu integrieren.
Der node_exporter ist ein essenzielles Werkzeug zur
Überwachung von Systemmetriken in Prometheus. Er sammelt und exportiert
zahlreiche Hardware- und Betriebssystemmetriken und stellt diese für
Prometheus zur Verfügung. Hier sind die Schritte zur Installation und
Konfiguration des node_exporter.
Laden Sie das neueste Release von der GitHub-Seite des node_exporter herunter:
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
tar xvfz node_exporter-1.2.2.linux-amd64.tar.gz
cd node_exporter-1.2.2.linux-amd64
sudo cp node_exporter /usr/local/bin/Laden Sie das neueste Release von der GitHub-Seite des node_exporter herunter und entpacken Sie die ZIP-Datei.
Starten Sie den node_exporter durch Ausführen der
node_exporter.exe:
.\node_exporter.exeUm den node_exporter als Systemdienst einzurichten,
können Sie einen Systemd-Dienst unter Linux erstellen.
Erstellen Sie eine Datei
/etc/systemd/system/node_exporter.service mit folgendem
Inhalt:
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=nodeusr
ExecStart=/usr/local/bin/node_exporter
Restart=always
[Install]
WantedBy=multi-user.targetLaden Sie die neue Unit-Datei und starten Sie den
node_exporter-Dienst:
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporterNachdem der node_exporter installiert und als Dienst
konfiguriert wurde, müssen Sie Prometheus so konfigurieren, dass es die
vom node_exporter bereitgestellten Metriken abfragt.
node_exporter als Ziel in
prometheus.yml:
Bearbeiten Sie die prometheus.yml-Datei und fügen
Sie den node_exporter als Scrape-Target hinzu:
scrape_configs:
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']Starten oder laden Sie Prometheus neu, damit die Änderungen wirksam werden:
./prometheus --config.file=prometheus.ymlAlternativ, falls Prometheus als Dienst läuft:
sudo systemctl restart prometheusÖffnen Sie die Prometheus-Weboberfläche
(http://localhost:9090) und führen Sie eine Abfrage aus, um
sicherzustellen, dass die Metriken vom node_exporter
gesammelt werden:
up{job="node_exporter"}Der node_exporter kann durch verschiedene Flags und
Parameter angepasst werden, um spezifische Metriken zu sammeln oder
bestimmte Sammler zu aktivieren/deaktivieren.
Starten Sie den node_exporter mit zusätzlichen
Flags:
/usr/local/bin/node_exporter --collector.cpu --collector.meminfo --no-collector.diskstatsSie können spezifische Sammler aktivieren oder deaktivieren, indem Sie entsprechende Flags setzen. Zum Beispiel:
/usr/local/bin/node_exporter --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|run|var/lib/docker)($|/)"node_exporter
selbst, um sicherzustellen, dass er das System nicht übermäßig
belastet.node_exporter-Endpunkt durch geeignete
Netzwerksicherheitsmaßnahmen wie Firewalls oder IP-Whitelist.node_exporter auf dem neuesten Stand, um
von Verbesserungen und Sicherheitsupdates zu profitieren.Überprüfen Sie die Logs des node_exporter, um
sicherzustellen, dass er ordnungsgemäß funktioniert:
sudo journalctl -u node_exporternode_exporter-Port
(standardmäßig 9100) nicht von einer Firewall blockiert wird.Durch die sorgfältige Installation und Konfiguration des
node_exporter stellen Sie sicher, dass Sie umfassende
Systemmetriken für Ihre Überwachungs- und Alarmierungsanforderungen in
Prometheus erfassen.
Der node_exporter sammelt eine Vielzahl von Metriken,
die für die Überwachung der Systemgesundheit und Leistung von großer
Bedeutung sind. Diese Metriken decken verschiedene Aspekte des Systems
ab, einschließlich CPU, Speicher, Netzwerk und Dateisystem. Hier sind
einige der wichtigsten Metriken und ihre Bedeutungen.
node_cpu_seconds_total
node_cpu_seconds_total{mode="idle"}node_memory_MemTotal_bytes
node_memory_MemFree_bytes
node_memory_Buffers_bytes
node_memory_Cached_bytes
node_network_receive_bytes_total
node_network_receive_bytes_total{device="eth0"}node_network_transmit_bytes_total
node_network_transmit_bytes_total{device="eth0"}node_network_receive_errors_total
node_network_transmit_errors_total
node_disk_io_time_seconds_total
node_disk_read_bytes_total
node_disk_write_bytes_total
node_filesystem_size_bytes
node_filesystem_free_bytes
node_filesystem_avail_bytes
node_filesystem_readonly
node_load1
node_load5
node_load15
node_procs_running
node_procs_blocked
CPU-Auslastung pro Kern:
sum by (cpu) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100Verfügbare Speichermenge:
node_memory_MemAvailable_bytesNetzwerkverkehr pro Interface:
rate(node_network_receive_bytes_total{device="eth0"}[5m])Festplatten-IO:
rate(node_disk_io_time_seconds_total[5m])Freier Speicherplatz im Dateisystem:
node_filesystem_free_bytesDer node_exporter bietet eine umfassende Sammlung von
Systemmetriken, die für die Überwachung und Optimierung der
Systemleistung unerlässlich sind. Durch die gezielte Nutzung dieser
Metriken können Sie die Verfügbarkeit und Effizienz Ihrer Systeme
verbessern.
Die Integration von Prometheus und dem node_exporter
ermöglicht die Erstellung umfassender Dashboards zur Überwachung der
Systemgesundheit und Leistung. Hier sind einige Beispiel-Dashboards, die
Ihnen helfen, die wichtigsten Metriken im Blick zu behalten. Diese
Dashboards können mit Grafana erstellt werden, einem beliebten Tool zur
Visualisierung von Prometheus-Daten.
PromQL-Abfrage:
100 - (avg by (instance, cpu) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)Beschreibung: Diese Abfrage zeigt die CPU-Auslastung pro Kern in Prozent.
PromQL-Abfrage:
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)Beschreibung: Diese Abfrage zeigt die durchschnittliche CPU-Auslastung über alle Kerne.
PromQL-Abfrage:
node_memory_MemAvailable_bytesBeschreibung: Diese Abfrage zeigt die verfügbare Speichermenge in Bytes.
PromQL-Abfrage:
node_memory_MemTotal_bytes - node_memory_MemAvailable_bytesBeschreibung: Diese Abfrage zeigt die genutzte Speichermenge in Bytes.
PromQL-Abfrage:
rate(node_network_receive_bytes_total{device="eth0"}[5m])Beschreibung: Diese Abfrage zeigt die Rate der
empfangenen Bytes pro Sekunde für das Netzwerkinterface
eth0.
PromQL-Abfrage:
rate(node_network_transmit_bytes_total{device="eth0"}[5m])Beschreibung: Diese Abfrage zeigt die Rate der
gesendeten Bytes pro Sekunde für das Netzwerkinterface
eth0.
PromQL-Abfrage:
rate(node_disk_read_bytes_total[5m])Beschreibung: Diese Abfrage zeigt die Rate der gelesenen Bytes pro Sekunde.
PromQL-Abfrage:
rate(node_disk_written_bytes_total[5m])Beschreibung: Diese Abfrage zeigt die Rate der geschriebenen Bytes pro Sekunde.
PromQL-Abfrage:
rate(node_disk_io_time_seconds_total[5m])Beschreibung: Diese Abfrage zeigt die IO-Wartezeit in Sekunden.
PromQL-Abfrage:
node_filesystem_free_bytesBeschreibung: Diese Abfrage zeigt den freien Speicherplatz im Dateisystem in Bytes.
PromQL-Abfrage:
node_filesystem_size_bytes - node_filesystem_free_bytesBeschreibung: Diese Abfrage zeigt den genutzten Speicherplatz im Dateisystem in Bytes.
Ein fertiges Dashboard kann als JSON-Datei exportiert und in anderen Grafana-Instanzen importiert werden. Hier ist ein Beispiel für eine einfache Dashboard-JSON-Konfiguration:
{
"dashboard": {
"id": null,
"title": "System Monitoring",
"panels": [
{
"type": "graph",
"title": "CPU Usage",
"targets": [
{
"expr": "100 - (avg by (instance, cpu) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100)",
"format": "time_series"
}
]
},
{
"type": "graph",
"title": "Memory Usage",
"targets": [
{
"expr": "node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes",
"format": "time_series"
}
]
},
{
"type": "graph",
"title": "Network Receive",
"targets": [
{
"expr": "rate(node_network_receive_bytes_total{device=\"eth0\"}[5m])",
"format": "time_series"
}
]
},
{
"type": "graph",
"title": "Disk IO Read",
"targets": [
{
"expr": "rate(node_disk_read_bytes_total[5m])",
"format": "time_series"
}
]
}
]
}
}Dashboards > Manage und
klicken Sie auf Import.Durch die Verwendung von Grafana und die Erstellung von Dashboards
können Sie die von node_exporter gesammelten Metriken
effektiv visualisieren und überwachen. Dies ermöglicht es Ihnen, schnell
auf Systemprobleme zu reagieren und die Gesamtleistung Ihrer
Infrastruktur zu optimieren.