Hallo @thomas.kloster,
Das TLS-Problem ist ein typisches Thema bei Non-Persistent Citrix-Workern / VDI / etc: Wenn der Checkmk-Agent auf dem Master Image installiert und registriert wird, erhalten alle geklonten Worker dieselbe TLS-Registrierung (UUID und Zertifikat). Da jeder Worker aber einen eigenen Hostnamen hat, passt die Registrierung nicht mehr — daher die Fehlermeldung am Morgen.
Hier sind mehrere Lösungsansätze, je nach Anforderung:
Ansatz 1: Automatische Registrierung per Startup-Script (empfohlen)
Den Agenten im Master Image installieren, aber nicht registrieren. Stattdessen bei jedem Boot automatisch neu registrieren. Dazu ein PowerShell-Script als GPO-Startup-Script im Master Image hinterlegen:
# C:\Scripts\cmk-register.ps1
& "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" delete-all --enable-insecure-connections
& "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" register `
--server "checkmk-server.domain.local" `
--site "mysite" `
--hostname $env:COMPUTERNAME `
--user "agent_registration" `
--password "secret" `
--trust-cert
So bekommt jeder Worker nach dem Neustart ein frisches TLS-Zertifikat mit seinem eigenen Hostnamen. Die 20 Hosts müssen einmalig in Checkmk angelegt sein (oder man nutzt die Auto-Registration der Cloud/MSP Edition, falls vorhanden).
Ansatz 2: Legacy-Modus ohne TLS (einfachste Lösung)
Falls TLS nicht zwingend nötig ist (z. B. in einem abgesicherten internen Netzwerk): Den Agenten im Master Image installieren, aber keine Registrierung durchführen. Der Agent hört dann im Legacy-Modus auf Port 6556 und liefert Daten ohne Verschlüsselung. Auf dem Checkmk-Server die Hosts manuell anlegen und in den Host-Eigenschaften unter “Checkmk agent connection mode” entsprechend konfigurieren.
Ansatz 3: Registrierungsdaten beim Boot bereinigen
Falls der Agent bereits im Master Image registriert ist, kann ein Startup-Script die alte Registrierung vor dem Re-Registrieren löschen:
# Alte Registrierung entfernen
Remove-Item -Force "C:\ProgramData\checkmk\agent\registered_connections.json" -ErrorAction SilentlyContinue
Remove-Item -Force "C:\ProgramData\checkmk\agent\pre_configured_connections.json" -ErrorAction SilentlyContinue
# Neu registrieren (wie in Ansatz 1)
& "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" register `
--server "checkmk-server.domain.local" `
--site "mysite" `
--hostname $env:COMPUTERNAME `
--user "agent_registration" `
--password "secret" `
--trust-cert
Zusätzliche Empfehlungen für die Worker-Verwaltung:
Da die 20 Worker jede Nacht neu erstellt werden, empfiehlt es sich:
- Die Worker-Hosts in einen eigenen Checkmk-Ordner zu legen (z. B. “Citrix Worker”)
- Die Regel “Periodic service discovery” auf diesen Ordner anzuwenden, damit neue Services automatisch erkannt werden
- Falls die Hostnamen immer gleich bleiben (worker01–worker20), reicht es die Hosts einmalig anzulegen — nur die TLS-Registrierung muss per Script erneuert werden
hier noch ein paar Quellen:
hoffe das hilft dir schon mal weiter …
vG Bernd