Prometheus: Metriken-Server einrichten | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

241 Dokumentationen verfügbar

Wissensdatenbank

Prometheus Metriken Server

Zuletzt aktualisiert: 11.01.2026 um 12:06 Uhr

Prometheus: Metriken-Server einrichten

Prometheus ist ein Open-Source-Monitoring-System, das Metriken von Targets scraped und in einer Zeitreihen-Datenbank speichert. Ideal für Server, Container und Microservices.

Architektur

  • Prometheus Server: Sammelt und speichert Metriken
  • Exporters: Stellen Metriken bereit (Node, MySQL, etc.)
  • Alertmanager: Verarbeitet Alerts
  • Grafana: Visualisierung (optional)

Installation

# Benutzer erstellen
sudo useradd --no-create-home --shell /bin/false prometheus

# Prometheus herunterladen
cd /tmp
wget https://github.com/prometheus/prometheus/releases/download/v2.48.0/prometheus-2.48.0.linux-amd64.tar.gz
tar xvf prometheus-2.48.0.linux-amd64.tar.gz

# Dateien verschieben
sudo mv prometheus-2.48.0.linux-amd64/prometheus /usr/local/bin/
sudo mv prometheus-2.48.0.linux-amd64/promtool /usr/local/bin/
sudo mkdir /etc/prometheus /var/lib/prometheus
sudo mv prometheus-2.48.0.linux-amd64/consoles /etc/prometheus/
sudo mv prometheus-2.48.0.linux-amd64/console_libraries /etc/prometheus/

# Berechtigungen
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus

Konfiguration

sudo nano /etc/prometheus/prometheus.yml
global:
  scrape_interval: 15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

rule_files:
  # - "alerts.yml"

scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]

  - job_name: "node"
    static_configs:
      - targets: ["localhost:9100"]

Systemd Service

sudo nano /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file=/etc/prometheus/prometheus.yml \
    --storage.tsdb.path=/var/lib/prometheus/ \
    --web.console.templates=/etc/prometheus/consoles \
    --web.console.libraries=/etc/prometheus/console_libraries \
    --storage.tsdb.retention.time=30d

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus

Node Exporter installieren

# Download
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvf node_exporter-1.7.0.linux-amd64.tar.gz
sudo mv node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/

# Service erstellen
sudo nano /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target

[Service]
User=prometheus
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter

PromQL Grundlagen

# Aktuelle CPU-Auslastung
100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

# RAM-Nutzung
node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes

# Disk I/O
rate(node_disk_read_bytes_total[5m])

# Netzwerk Traffic
rate(node_network_receive_bytes_total[5m])

# HTTP Requests pro Sekunde
rate(http_requests_total[5m])

# Top 5 nach CPU
topk(5, sum by (instance) (rate(node_cpu_seconds_total[5m])))

Alerting Rules

# /etc/prometheus/alerts.yml
groups:
  - name: server_alerts
    rules:
      - alert: HighCPU
        expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: "High CPU on {{ $labels.instance }}"
          description: "CPU > 80% for 5 minutes"

      - alert: DiskSpaceLow
        expr: (node_filesystem_avail_bytes / node_filesystem_size_bytes) * 100 < 10
        for: 5m
        labels:
          severity: critical
        annotations:
          summary: "Low disk space on {{ $labels.instance }}"

Weitere Exporter

Exporter Port Metriken
node_exporter 9100 Server (CPU, RAM, Disk)
mysqld_exporter 9104 MySQL/MariaDB
postgres_exporter 9187 PostgreSQL
nginx_exporter 9113 Nginx
blackbox_exporter 9115 HTTP/DNS Probes

Zugriff

# Web UI
http://SERVER-IP:9090

# Targets prüfen
http://SERVER-IP:9090/targets

# Metriken-Endpunkt
http://SERVER-IP:9090/metrics

Weitere Hilfe

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120