Citrix-Worker überwachen

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