health-check monitoring mit Docker-Image funktioniert nicht

Antworten
mdecker
Beiträge: 89
Registriert: 26 Mär 2012, 16:20

health-check monitoring mit Docker-Image funktioniert nicht

Beitrag von mdecker »

Hallo zusammen,

ich versuche gerade, meinen OPSI-Server auf eine neue Infrastruktur umzuziehen und wollte dabei auf das Docker-Image wechseln.
Der Container selbst ist lauffähig, das Backup vom bestehenden Server konnte ich einspielen und auch Clients lassen sich darüber installieren.

Zum eigentlichen Problem: In der Doku wird die Einbindung des health-check in ein Monitoring-System - in meinem Fall CheckMK - beschrieben (https://docs.opsi.org/opsi-docs-de/4.3/ ... oring.html), ich vermisse allerdings Informationen dazu, wie sich das mit dem Docker-Image bewerkstelligen lässt. Meine naiven Versuche sind jedenfalls gescheitert.

Folgendes habe ich versucht:
1.: Test innerhalb einer interaktiven Shell im OPSI-Container (das funktioniert):

Code: Alles auswählen

root@opsi-server-host:~# docker exec -it opsi-docker-opsi-server-1 /bin/bash
* Set environment vars
root@opsi-server-host:/# /usr/bin/opsiconfd health-check --format checkmk
2 'OPSI: Operating System End Of Life' - Support of version 12 of distribution debian ended on 2026-06-10.\n
0 'OPSI: Disk usage' - Sufficient free space on all file systems.\n
0 'OPSI: System repositories' - No issues found with the system repositories.\n
[...]
2.: Der Versuch, diese Funktionalität direkt vom Host aufzurufen, um die Ausgabe dann für den CheckMK Agent zu nutzen, scheitert:

Code: Alles auswählen

root@opsi-server-host:~# docker exec -it opsi-docker-opsi-server-1 /usr/bin/opsiconfd health-check --format checkmk
Traceback (most recent call last):
  File "redis/connection.py", line 1003, in connect_check_health
  File "redis/connection.py", line 1515, in _connect
  File "redis/connection.py", line 1499, in _connect
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "__main__.py", line 27, in main
  File "opsiconfd/main/__init__.py", line 42, in main
  File "opsiconfd/main/diagnostic.py", line 43, in health_check_main
  File "opsiconfd/check/cli.py", line 123, in console_health_check
  File "opsiconfd/check/main.py", line 20, in health_check
  File "contextlib.py", line 141, in __enter__
  File "opsiconfd/redis.py", line 315, in redis_lock
  File "redis/utils.py", line 493, in wrapper
  File "redis/commands/core.py", line 2668, in set
  File "redis/client.py", line 716, in execute_command
  File "redis/client.py", line 722, in _execute_command
  File "redis/utils.py", line 236, in wrapper
  File "redis/connection.py", line 3041, in get_connection
  File "redis/connection.py", line 976, in connect
  File "redis/retry.py", line 132, in call_with_retry
  File "redis/retry.py", line 120, in call_with_retry
  File "redis/connection.py", line 977, in <lambda>
  File "redis/connection.py", line 1025, in connect_check_health
redis.exceptions.ConnectionError: Error 111 connecting to localhost:6379. Connection refused.
Bis jetzt erschließt sich mir nicht, wo hier der Fehler liegt und wie er sich beheben lässt. Auch eine weitere "Schleife" durch /bin/bash führt zum gleichen Fehler (docker exec -it opsi-docker-opsi-server-1 /bin/bash -c "/usr/bin/opsiconfd health-check")

3.: Externer Aufruf über opsi-cli geht, kann aber kein checkmk-format ausgeben:

Code: Alles auswählen

root@opsi-server-host:~# docker exec -it opsi-docker-opsi-server-1 opsi-cli --output-format csv support health-check
id;details
[red]linux_distro_eol[/red];Support of version 12 of distribution debian ended on 2026-06-10.
[green]disk_usage[/green];Sufficient free space on all file systems.
[green]system_repositories[/green];No issues found with the system repositories.
Ich bin für Hinweise dankbar. Sofern ich das hier im Forum richtig verstanden habe, gibt es ja durchaus schon einige laufende Docker-Container. Hat keiner davon ein health-check Monitoring?
Sollte mit der Docker-Variante keine Einbindung in ein Monitoring möglich sein, wäre das für mich jedenfalls ein Ausschlusskriterium.

PS: Das aktuelle stabile 4.3 Image scheint immer noch auf dem nicht mehr unterstützten Debian 12 zu basieren, wie der Health-Check klar anmerkt.
Benutzeravatar
j.schneider
uib-Team
Beiträge: 2207
Registriert: 29 Mai 2008, 15:14

Re: health-check monitoring mit Docker-Image funktioniert nicht

Beitrag von j.schneider »

Hallo,

ohne bash sind ein paar Umgebungsvariablen nicht gesetzt.
So sollte es funktionieren:

Code: Alles auswählen

docker exec opsi-docker-opsi-server-1 bash -l -c "opsiconfd health-check --format checkmk" 2>/dev/null
Das Docker-Image wird demnächst auf Debian 13 aktualisiert.

Grüße
Jan Schneider


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


mdecker
Beiträge: 89
Registriert: 26 Mär 2012, 16:20

Re: health-check monitoring mit Docker-Image funktioniert nicht

Beitrag von mdecker »

Danke! So tut es tatsächlich!
Dass es an den Umgebungsvariablen liegen könnte, hatte ich auch schon vermutet - habe dann aber anscheinend nicht an der richtigen Stelle geschaut.
Antworten