
Ein Raspberry Pi eignet sich ideal, um ein eigenes Monitoring aufzubauen: schlank, günstig, stromsparend. In diesem Guide richten wir ein vollständiges Raspberry Pi Monitoring mit Prometheus und Grafana ein – von Hardware über Installation (Docker oder nativ) bis zu Dashboards und Alerts.
[Nutzer] --(Browser)--> Grafana (Port 3000)
Grafana --(Data Source)--> Prometheus (Port 9090)
Prometheus <-- scrape -- Node Exporter (Port 9100)
Prometheus <-- optional -- cAdvisor, Blackbox, SNMP Exporter
Prometheus -- Alerts --> Alertmanager (Port 9093)
| Komponente | Empfehlung | Hinweis |
|---|---|---|
| Raspberry Pi | Pi 4 (2–4 GB) oder Pi 5 | Mehr RAM = mehr Retention und Dashboards |
| Speicher | 32 GB microSD oder SSD | SSD erhöht Zuverlässigkeit |
| Netzteil | USB‑C 3A (Pi 4/5) | Stromstabilität ist kritisch |
| Dienst | Port | Zweck |
|---|---|---|
| Grafana | 3000 | Weboberfläche für Dashboards |
| Prometheus | 9090 | Zeitreihen-Datenbank und Scraping |
| Node Exporter | 9100 | Systemmetriken des Pi |
| Alertmanager | 9093 | Alarmweiterleitung |
| Blackbox Exporter | 9115 | HTTP/ICMP/TLS Checks |
sudo apt update && sudo apt full-upgrade -y
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
sudo apt install -y docker-compose-plugin
sudo mkdir -p /opt/monitoring
sudo chown -R $USER:$USER /opt/monitoring
cd /opt/monitoring
mkdir prometheus grafana alertmanager
services:
prometheus:
image: prom/prometheus:latest
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.retention.time=15d
volumes:
- ./prometheus:/etc/prometheus
- prom_data:/prometheus
ports:
- 9090:9090
restart: unless-stopped
node-exporter:
image: prom/node-exporter:latest
ports:
- 9100:9100
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/host:ro
command:
- --path.procfs=/host/proc
- --path.sysfs=/host/sys
- --path.rootfs=/host
- --collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($|/)
restart: unless-stopped
grafana:
image: grafana/grafana:latest
ports:
- 3000:3000
environment:
- GF_SECURITY_ADMIN_PASSWORD=Admin12345
volumes:
- grafana_data:/var/lib/grafana
depends_on:
- prometheus
restart: unless-stopped
alertmanager:
image: prom/alertmanager:latest
volumes:
- ./alertmanager:/etc/alertmanager
ports:
- 9093:9093
restart: unless-stopped
blackbox-exporter:
image: prom/blackbox-exporter:latest
ports:
- 9115:9115
restart: unless-stopped
volumes:
prom_data:
grafana_data:
Datei: /opt/monitoring/prometheus/prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
external_labels:
env: rpi
rule_files:
- rules.yml
scrape_configs:
- job_name: prometheus
static_configs:
- targets:
- prometheus:9090
- job_name: node
static_configs:
- targets:
- node-exporter:9100
- job_name: blackbox_http
metrics_path: /probe
params:
module:
- http_2xx
static_configs:
- targets:
- https://example.org
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: blackbox-exporter:9115
Datei: /opt/monitoring/prometheus/rules.yml
groups:
- name: base
rules:
- alert: InstanceDown
expr: up == 0
for: 2m
labels:
severity: critical
annotations:
summary: Target down
description: Instance {{ $labels.instance }} is down
- alert: HighLoadAverage
expr: node_load1 > 2
for: 5m
labels:
severity: warning
annotations:
summary: High load
description: Load average > 2 on {{ $labels.instance }}
Datei: /opt/monitoring/alertmanager/alertmanager.yml
route:
receiver: devnull
receivers:
- name: devnull
cd /opt/monitoring
docker compose up -d
Für kleine Setups möglich, Updates manuell. Paketversionen können älter sein.
sudo apt update
sudo apt install -y prometheus prometheus-node-exporter
# Grafana Repo hinzufügen
sudo apt install -y apt-transport-https software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/grafana.gpg
echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update
sudo apt install -y grafana
sudo systemctl enable --now grafana-server prometheus prometheus-node-exporter
| Exporter/Tool | Zweck | Installation (Kurz) |
|---|---|---|
| Node Exporter | CPU, RAM, Disk, Netz | Docker: siehe Compose; nativ: apt install prometheus-node-exporter |
| cAdvisor | Container-Metriken | docker run -d -p 8080:8080 -v /:/rootfs:ro -v /var/run:/var/run:ro -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro gcr.io/cadvisor/cadvisor:latest |
| Blackbox Exporter | HTTP/ICMP/TLS Checks | docker run -d -p 9115:9115 prom/blackbox-exporter:latest |
sudo ufw allow 22/tcp
sudo ufw allow from 192.168.0.0/24 to any port 3000
sudo ufw allow from 192.168.0.0/24 to any port 9090
sudo ufw enable
| Variante | Vorteile | Nachteile |
|---|---|---|
| Docker Compose | Schnell, reproduzierbar, leicht zu updaten | Grundwissen Docker nötig |
| Nativ (APT) | Wenig Overhead, simpel | Ältere Versionen, manuelles Management |
| Managed (Cloud) | Wartungsarm, skalierbar | Laufende Kosten, externe Abhängigkeit |