$CUSTOM_AGENT_PATH$ - bei Windows konfigurieren

Hallo zusammen,

ich möchte den Speicherort der Standardinstallation (C:\ProgrammData\checkmk\agent) ändern und habe schon verschiedene “Schreibweisen” für die Pfadangabe versucht. Habe hierzu aber weder in Doku noch im Forum was passendes gefunden.

In der Ereignisanzeige Ereignis ID 30: “Das System kann nicht vom angegebenen Gerät lesen.”

Mache ich was grundsätzliches falsch, wird die Variable anders definiert?

C:\Program Files (x86)\checkmk\service\check_mk.yml:

#
# Default Check MK configuration file
#

$CUSTOM_PLUGINS_PATH$  -> is 'C:\Users\Admin\admin-scripts\checkmk\plugins'
# $BUILTIN_PLUGINS_PATH$ -> is Program Files(x86)/checkmk/service/plugins
$CUSTOM_AGENT_PATH$    -> is 'C:\Users\Admin\admin-scripts\checkmk\'
$CUSTOM_LOCAL_PATH$    -> is 'C:\Users\Admin\admin-scripts\checkmk\local'

(der Standardordner …\agent… wurde absichtlich nicht verwendet und “C:\Users\Admin\admin-scripts\checkmk\plugins” ist per Explorer oder Kommandozeile definitiv erreichbar.

Hi,
kann es sein, dass der Systemaccount nicht auf c:\Users}Admin schreiben kann. Der Agent hat hier keinen Use Kontext soweit ich weiß. Bzgl. des Formates würde ich mal das Linux Format versuchen c:/Users/…
Viele Grüße,
Christian

Hallo Christian,

Versuche gescheitert mit:

$CUSTOM_AGENT_PATH$ → is Users/Admin/admin-scripts/checkmk/

$CUSTOM_LOCAL_PATH$ → is ‘C:/Users/Admin/admin-scripts/checkmk/local’

An den Rechten liegt es m.E. nicht, denn:

  • Ein mögliches Rechteproblem umgangen indem ich testweise den Ordner mal unter C:\checkmk\ kopiert habe…

  • Den ‘CheckMkService’ mit anderen Anmeldenamen von “Lokales Systemkonto (SYSTEM)” auf “./Admin” umgestellt.

  • Auf den Folder C:\Users\Admin\ hat “SYSTEM” ‘Vollzugriff’.

  • Es wurde ausserdem mit den Standardrechten des Agent erfolgreich in der Standardkonfiguration ein MRPE Check ausgeführt, welches bereits ebenfalls im Admin Ordner liegt:

      - check = FW-RDP-AddressFilter C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Unrestricted -Command ".'C:\Users\Admin\admin-scripts\mrpe\fw-rdp-addressfilter.ps1'; exit($lastexitcode)" 
    

Verzweiflung pur…

Kurz eine Bemerkung vorweg - bitte nie die Datei “C:\Program Files (x86)\checkmk\service\check_mk.yml” ändern. Das kann böse ins Auge gehen und auch wird diese Datei mit der Werkseinstellung überschrieben bei einem Agent Update.

Es dürfte ebenfalls nicht möglich sein die Variablen zu ersetzen oder neu zu definieren.

Folgende Config aber funktioniert.

check_mk.user.yml um eigenen Pfad ergänzen und Ausführung in eigenem Pfad definieren.

plugins:
  enabled: true
  folders: [$CUSTOM_PLUGINS_PATH$, $BUILTIN_PLUGINS_PATH$, 'C:\Plugins']
    - pattern     : 'C:\Plugins\*'
      async       : yes                            # oder auch no geht beides
      run         : yes

Vielen Dank Christian und Andreas für die Unterstützung!

Ok, dann muss ich das so akzeptieren, dass eine als “Custom” benannte Variable nicht customized werden kann… sehr kurios und unverständlich. Kann mir das ein Entwickler bestätigen? Ist ein Programmierer hier im Forum unterwegs?

Naja das hat ja nix mit dem Namen zu tun. Das “Custom” in der Variable bezieht sich auf die Custom Plugins.
Es ist einfach nicht möglich in der YAML Config eine Variable für die interne Verarbeitung zu definieren. Wo liegt das Problem es so zu machen wie in meinem Config Beispiel?

Joah, no problem… hab das nun so gelöst wie du vorgeschlagen hast:

    - pattern     : 'C:\Users\Admin\admin-scripts\checkmk\plugins\*.*'         # individuell angepasst

Hintergrund der Anfrage ist, dass wir den Ordner C:\Users\Admin\admin-scripts\ auf den Clients per “Syncthing” auf einem zentralen Fileserver syncron halten. Da liegen nun \Plugins\ und \mrpe\ und \local\ Ordner.

Was mich aber noch stört und belästigt, ist die Tatsache, dass sobald sich etwas in der check_mk_user.yml ändert, ich das händisch zu den Clients bringen muss. Ich renn den Kisten dann oft hinterher, da diese ja zu unterschiedlichsten Zeiten online sind.

Ich werde hierfür wohl ein Script in die Aufgabenplanung (Windows CronJob) legen dürfen, welches die user.yml vom zentralen Fileserver holt. …wir benutzen nur die RAW Edition und daher leider auch kein regelbasiertes Verteilen. Die Aufgabenplanung ist halt leider auch nicht das Gelbe vom Ei…