Citrix-Worker überwachen

Hallo zusammen,

ich bin neu hier und beschäftige mich mit der Einbindung von checkmk in unserer Server-Landschaft. Ich habe bereits viel gelesen und gelernt. Leider finde ich nur sehr wenig über die Einbindung von Citrix insbesondere der Citrix-Worker (Virtualisierung mit XenServer) in checkmk.

Die Worker werden jede Nacht neu aus einem Master Image erstellt. Das Master Image beinhaltet den checkmk-Agent. Allerdings erhalten wir jeden Morgen die Meldung, dass die TLS-Verbindung nicht mehr aufgebaut werden kann. Daher ist meine Frage, wie kann ich am besten die 20 Citrix-Worker überwachen? Dabei sollen auf den Workern auch bestimmte Dienste überwacht werden? Am besten sollte die Überwachung wie auf einem “normalen” Server sein.

Gibt es eine gute Informationsquelle oder Tutorial um sich über die Einbindung der Citrix-Worker zu informieren?

Vielen Dank für Euren Support.

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

Hallo Bernd,

vielen Dank für die schnelle Antwort. Das hilft sehr weiter. Ich werde den Ansatz 1 umsetzen.

Viele Grüße, Thomas

gerne doch … gib dann nur Rückmeldung wie es dann gelöst wurde … hilft dann anderen, die ein ähnliches Problem haben

Gruß Bernd

Der Ansatz 1 von Bernd hat mein Problem gelöst. Vielen Dank dafür.

1 Like