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>
20 lines
1 KiB
Text
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=""
|