diff --git a/README.md b/README.md index c7a4b61..c4a8b29 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ curl -H "Authorization: Bearer $(grep ^SM_TOKEN= .env | cut -d= -f2)" http://127 docker compose stop # anhalten docker compose start # wieder starten docker compose restart # nach Änderungen an .env: besser "docker compose up -d" -docker compose down # Container entfernen (Netz "p42" wird mit entfernt, falls unbenutzt) +docker compose down # Container entfernen (das Netz "p42" bleibt bestehen) docker compose ps # Status inkl. healthy/unhealthy docker compose logs -f # Log: nur Start, Fehler und abgelehnte Anfragen docker stats p42-sm # Verbrauch des Agenten selbst (wenige MB RAM) @@ -66,22 +66,10 @@ sein (`id -u `). Netzlaufwerke (NFS/SMB) werden bewusst nicht gemessen. ### Erreichbarkeit -**A) Dashboard läuft als Container auf demselben Server (empfohlen):** P42-S.M. legt das Docker-Netz `p42` an. -In der `docker-compose.yml` von P42-F.W. ergänzen: - -```yaml -services: - p42: - # ... wie bisher ... - networks: [default, p42] - -networks: - p42: - external: true -``` - -Danach erreicht das Dashboard-Backend den Dienst unter **`http://p42-sm:9142`**. Ein offener Port nach außen -ist dafür nicht nötig. P42-S.M. muss zuerst gestartet sein, da es das Netz anlegt. +**A) Dashboard läuft als Container auf demselben Server (empfohlen):** Beide hängen im Docker-Netz `p42`, +das die `update-docker.sh` beider Projekte bei Bedarf anlegt (Reihenfolge egal). Das Dashboard erreicht den +Dienst darin unter **`http://p42-sm:9142`**, ohne offenen Port nach außen. Im Dashboard unter Monitoring +→ „+ Server hinzufügen“ → Prüfung „Server-Auslastung (P42-S.M.)“, Adresse `http://p42-sm:9142`, Token aus `.env`. **B) Dashboard läuft auf einem anderen Rechner:** In `.env` `SM_BIND` auf die LAN-IP des Servers setzen. Die Adresse lautet dann `http://:9142`. Per Firewall sollte nur der Dashboard-Rechner zugreifen dürfen. @@ -159,7 +147,8 @@ Hinweise zu den Feldern: { "intervalSeconds": 5, "points": [ - { "timestamp": "2026-10-14T14:58:59+02:00", "cpuPercent": 5.0, "memoryPercent": 40.9, "load1m": 0.81, + { "timestamp": "2026-10-14T14:58:59+02:00", "cpuPercent": 5.0, "memoryPercent": 40.9, "swapPercent": 0.0, + "tempMaxCelsius": 51.0, "load1m": 0.81, "rxBytesPerSec": 2769, "txBytesPerSec": 6111, "readBytesPerSec": 0, "writeBytesPerSec": 2757518 } ] } diff --git a/app/collector.py b/app/collector.py index 44e196c..7a18068 100644 --- a/app/collector.py +++ b/app/collector.py @@ -310,6 +310,8 @@ def history_point(snap: dict) -> dict: "timestamp": snap["timestamp"], "cpuPercent": snap["cpu"]["percent"], "memoryPercent": snap["memory"]["percent"], + "swapPercent": snap["swap"]["percent"], + "tempMaxCelsius": max((t["celsius"] for t in snap["temperatures"]), default=None), "load1m": snap["cpu"]["load"]["1m"], "rxBytesPerSec": snap["network"]["rxBytesPerSec"], "txBytesPerSec": snap["network"]["txBytesPerSec"], diff --git a/deploy/update-docker.sh b/deploy/update-docker.sh index d2e2292..a3e25b9 100755 --- a/deploy/update-docker.sh +++ b/deploy/update-docker.sh @@ -21,6 +21,9 @@ if [ ! -f .env ]; then grep '^SM_TOKEN=' .env | cut -d= -f2 fi +# Gemeinsames Netz mit P42-F.W. – wer zuerst startet, legt es an +docker network inspect p42 >/dev/null 2>&1 || docker network create p42 >/dev/null + docker compose up -d --build docker image prune -f >/dev/null diff --git a/docker-compose.yml b/docker-compose.yml index 0fef0e2..525fdca 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,3 +29,4 @@ networks: # unter http://p42-sm:9142, ohne dass ein Port nach außen offen sein muss. p42: name: p42 + external: true # legt deploy/update-docker.sh bei Bedarf an (auch das von P42-F.W.)