20 node_exporter

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.

20.1 Funktionen und Merkmale des node_exporters

  1. Umfassende Metrik-Sammlung:
  2. Einfache Installation und Nutzung:
  3. Modularer Aufbau:

20.2 Installation und Konfiguration

  1. Installation:
  2. Systemd-Dienst (optional):
  3. Konfiguration in Prometheus:

20.3 Verfügbare Metriken

Der node_exporter sammelt eine Vielzahl von Metriken, darunter:

  1. CPU-Metriken:
  2. Speichermetriken:
  3. Netzwerkmetriken:
  4. Festplatten-IO-Metriken:
  5. Dateisystemmetriken:

20.4 Erweiterte Konfiguration

  1. Aktivieren/Deaktivieren von Sammlern:
  2. Custom Metriken:

20.5 Best Practices

  1. Ressourcennutzung überwachen:
  2. Sicherheit:
  3. Regelmäßige Updates:

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.

20.6 Installation und Konfiguration

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.

20.6.1 Installation des node_exporter

  1. Installation unter Linux:
  2. Installation unter Windows:

20.6.2 Konfiguration als Systemdienst

Um den node_exporter als Systemdienst einzurichten, können Sie einen Systemd-Dienst unter Linux erstellen.

  1. Erstellen der Systemd-Dienstdatei:
  2. Dienst starten und aktivieren:

20.6.3 Konfiguration in Prometheus

Nachdem der node_exporter installiert und als Dienst konfiguriert wurde, müssen Sie Prometheus so konfigurieren, dass es die vom node_exporter bereitgestellten Metriken abfragt.

  1. Hinzufügen des node_exporter als Ziel in prometheus.yml:
  2. Überprüfen der Konfiguration:
  3. Zugriff auf die Metriken:

20.6.4 Erweiterte Konfiguration

Der node_exporter kann durch verschiedene Flags und Parameter angepasst werden, um spezifische Metriken zu sammeln oder bestimmte Sammler zu aktivieren/deaktivieren.

  1. Beispiel für erweiterte Startoptionen:
  2. Konfiguration von Sammlern:

20.6.5 Best Practices

  1. Ressourcennutzung überwachen:
  2. Sicherheit:
  3. Regelmäßige Updates:

20.6.6 Fehlerbehebung

  1. Überprüfung der Logs:
  2. Netzwerkprobleme:

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.

20.7 Metriken und ihre Bedeutung

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.

20.7.1 CPU-Metriken

  1. node_cpu_seconds_total

20.7.2 Speichermetriken

  1. node_memory_MemTotal_bytes
  2. node_memory_MemFree_bytes
  3. node_memory_Buffers_bytes
  4. node_memory_Cached_bytes

20.7.3 Netzwerkmetriken

  1. node_network_receive_bytes_total
  2. node_network_transmit_bytes_total
  3. node_network_receive_errors_total
  4. node_network_transmit_errors_total

20.7.4 Festplatten-IO-Metriken

  1. node_disk_io_time_seconds_total
  2. node_disk_read_bytes_total
  3. node_disk_write_bytes_total

20.7.5 Dateisystemmetriken

  1. node_filesystem_size_bytes
  2. node_filesystem_free_bytes
  3. node_filesystem_avail_bytes
  4. node_filesystem_readonly

20.7.6 Systemmetriken

  1. node_load1
  2. node_load5
  3. node_load15

20.7.7 Prozessmetriken

  1. node_procs_running
  2. node_procs_blocked

20.7.8 Beispiel-Abfragen mit PromQL

  1. CPU-Auslastung pro Kern:

    sum by (cpu) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100
  2. Verfügbare Speichermenge:

    node_memory_MemAvailable_bytes
  3. Netzwerkverkehr pro Interface:

    rate(node_network_receive_bytes_total{device="eth0"}[5m])
  4. Festplatten-IO:

    rate(node_disk_io_time_seconds_total[5m])
  5. Freier Speicherplatz im Dateisystem:

    node_filesystem_free_bytes

20.7.9 Best Practices für die Nutzung von Metriken

  1. Überwachung und Alarmierung:
  2. Langfristige Trends:
  3. Ressourcenoptimierung:

Der 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.

20.8 Beispiel-Dashboards

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.

20.8.1 Grafana-Dashboard für CPU-Überwachung

  1. CPU-Auslastung pro Kern:
  2. Gesamte CPU-Auslastung:

20.8.2 Grafana-Dashboard für Speicherüberwachung

  1. Verfügbarer Speicher:
  2. Speichernutzung:

20.8.3 Grafana-Dashboard für Netzwerküberwachung

  1. Empfangene Bytes pro Sekunde:
  2. Gesendete Bytes pro Sekunde:

20.8.4 Grafana-Dashboard für Festplatten-IO

  1. Leserate:
  2. Schreibrate:
  3. IO-Wartezeit:

20.8.5 Grafana-Dashboard für Dateisystemüberwachung

  1. Freier Speicherplatz:
  2. Genutzter Speicherplatz:

20.8.6 Beispiel-Dashboard-Konfiguration in Grafana

  1. Dashboard-Erstellung:
  2. Panel-Konfiguration:
  3. Layout und Design:

20.8.7 Beispiel-Dashboard JSON-Export

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"
          }
        ]
      }
    ]
  }
}

20.8.8 Import eines Dashboards

  1. Importieren eines Dashboards in Grafana:
  2. Anpassen des Dashboards:

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.