Hallo zusammen,
nach dem Update auf OPNsense 26.7.9_1-amd64 funktioniert mein Checkmk-Agent (Bashclub Checkmk OPNsense Agent) nicht mehr korrekt.
In Checkmk wird folgende Fehlermeldung angezeigt:
CRIT [agent]: Empty output from host vvi001.dc.xxxxxx.de:6556
Die Piggyback-Daten werden weiterhin erfolgreich verarbeitet. Lediglich die direkte Agentenabfrage liefert keine Daten mehr.
## Fehleranalyse
Der Agent läuft grundsätzlich und lauscht auf Port 6556:
root python3.13 76011 3 tcp46 *:6556 *:*
Die TCP-Verbindung wird angenommen, anschließend aber direkt wieder geschlossen. Der manuelle Start des Agenten meldet:
allready running with pid 76011
Bei der weiteren Analyse habe ich festgestellt, dass die Datei
/usr/local/opnsense/changelog/index.json
kein gültiges JSON enthält.
Die Überprüfung mit Python:
python3 -c "import json; json.load(open('/usr/local/opnsense/changelog/index.json')); print('changelog OK')"
liefert folgenden Fehler:
json.decoder.JSONDecodeError: Expecting value
line 120 column 1 (char 3781)
In Zeile 120 befindet sich folgende Perl-Warnmeldung:
Use of uninitialized value $date in concatenation (.) or string at /Users/franco/Documents/opnsense/changelog/Scripts/webify.pl line 128.
Direkt danach folgt ein fehlerhafter Changelog-Eintrag:
{"series":"26.7","version":"26.7.","date":""}
Offenbar wird beim Generieren der Changelog-Datei eine Perl-Warnmeldung direkt in die JSON-Ausgabe geschrieben.
## Ursache des Checkmk-Problems
Der Bashclub Checkmk OPNsense Agent in Version **1.2.16** liest die Datei `changelog/index.json` mittels `json.load()` ein.
Da die Datei durch die eingefügte Warnmeldung kein gültiges JSON mehr ist, schlägt das Einlesen fehl. Dadurch wird die gesamte Agentenausgabe verhindert und Checkmk erhält eine leere Antwort.
## Fragen
1. Ist das Problem mit der Changelog-Generierung in OPNsense 26.7.9_1 bekannt?
2. Kann die Ursache in `webify.pl` behoben werden, sodass Perl-Warnmeldungen nicht in die JSON-Ausgabe gelangen?
3. Ist die fehlerhafte Changelog-Datei ein bekanntes Problem dieser OPNsense-Version?
Vielen Dank für eure Unterstützung!
Viele Grüße
Ok:
https://github.com/opnsense/core/issues/11198
https://github.com/bashclub/checkmk-opnsense-agent/issues/87