monitor/monitor-api-sample.conf
fds2610-bot 2a552342f5 Ping-Check meldet den Systemstatus zusaetzlich per REST an die API
Laufen check_fds.sh und die API auf verschiedenen Rechnern, erreicht der
Legacy-Import die API nie: SystemController::index() liest MONITOR_STATUS_FILE
als lokale Datei, waehrend status.txt auf dem Ping-Host liegt. Der
LegacyStatusFileReader liefert dann stillschweigend ein leeres Array und der
System-Monitor zeigt dauerhaft "Keine Systeme gemeldet" - ohne Fehlermeldung,
die auf die Ursache hinweisen wuerde.

check_fds.sh meldet die Ping-Ergebnisse jetzt zusaetzlich per
POST /api/v1/systems/{id}/status (online -> ok, offline -> error) und schreibt
status.txt unveraendert weiter. Die Zugangsdaten stehen in monitor-api.conf
(Vorlage: monitor-api-sample.conf); fehlt die Datei, bleibt das Verhalten
unveraendert. Eine unerreichbare API bricht den Check nicht ab, sondern
protokolliert nur eine Warnung.

Die System-ID wird aus dem Hostnamen slugifiziert, weil der Router auf dem
rohen, nicht dekodierten Pfad matcht - "Nextcloud(intern)" landete sonst
prozentkodiert in der Datenbank. Der lesbare Name geht im Feld "name" mit.

Das README beschreibt den kombinierten Weg als "Weg 3" und weist bei Weg 1
darauf hin, dass der Legacy-Import eine lokale Datei erwartet.

Ausserdem zwei Fehler im selben Skript behoben:
- Pfade werden relativ zum Skript statt zum Arbeitsverzeichnis aufgeloest.
- Die letzte Zeile der hosts.conf wurde ohne abschliessenden Zeilenumbruch
  stillschweigend verschluckt, ein zuletzt angehaengter Host also nie geprueft.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 20:28:11 +02:00

20 lines
1 KiB
Text

# Zugangsdaten, mit denen check_fds.sh die Ping-Ergebnisse zusaetzlich per REST an die
# monitor-API meldet (POST /api/v1/systems/{id}/status, siehe API.md Abschnitt "Systeme").
#
# Noetig ist das, wenn check_fds.sh auf einem anderen Rechner laeuft als die API: der
# Legacy-Import liest status.txt als lokale Datei und erreicht sie dann nicht.
#
# Diese Datei nach "monitor-api.conf" neben check_fds.sh kopieren und ausfuellen. Fehlt sie
# oder bleibt ein Wert leer, meldet check_fds.sh wie bisher nur nach status.txt und per Mail.
#
# Der Key gehoert einem eigens registrierten Agenten der Rolle "user" - die bekommt nie einen
# Schreibtisch in der Buero-Visualisierung (AgentRepository::register). Anlegen mit
# register-agent.sh; der Key wird nur bei der Registrierung einmalig ausgegeben.
#
# Enthaelt ein Secret: chmod 600 monitor-api.conf
# Basis-URL der API, ohne abschliessenden Slash (Host-Port des api-Service)
MONITOR_API_BASE="http://monitor.example.lan:8091"
# API-Key des registrierten Agenten
MONITOR_API_KEY=""