Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Checkmk Agent verliert Benutzerdaten nach reboot #1704

Open
ngnetworks opened this issue Aug 23, 2024 · 4 comments
Open

Checkmk Agent verliert Benutzerdaten nach reboot #1704

ngnetworks opened this issue Aug 23, 2024 · 4 comments
Labels

Comments

@ngnetworks
Copy link

ngnetworks commented Aug 23, 2024

Describe the bug
Ich möchte einen ESXi Server mit dem default CheckMK Agent "VMWARE ESXi" (/omd/sites/nagios/share/check_mk/agents/special/agent_vsphere --no-cert-check -u '$_HOSTVMWARE_USER$' -s '$_HOSTVMWARE_PASSWORD$' -H '$HOSTDISPLAYNAME$' -D '$HOSTADDRESS$' ) überwachen. Ich habe auf dem ESXi also einen Benutzer "monitoring" mit ReadOnly Rechten angelegt und die Variablen "$_HOSTVMWARE_USER$" und "$_HOSTVMWARE_PASSWORD$" zu einen Host hinzugefügt. Danach kann ich auch erfolgreich alle Daten auslesen und der Agent tut genau das was er soll. Wenn der OITC Server jedoch neu startet, funktioniert der Agent nicht mehr. Nach ein bisschen suchen, kann ich in den Logs des ESXi sehen, dass nicht mehr der Benutzername "monitoring" vom OITC übergeben wird, sondern der plain-text Wert "$_HOSTVMWARE_PASSWORD$" (siehe Screenshot). Wenn ich alle Services vom Host löschen und den Agent neu "erkennen" lasse, funktioniert alles wieder normal. Bis zum nächsten neustart

OITC ist auf Version 4.8.0

grafik

@nook24 nook24 added the bug label Aug 27, 2024
@nook24
Copy link
Member

nook24 commented Aug 27, 2024

Kann das Problem durch eine Aktualisierung der Konfiguration behoben werden? Dabei werden alle Konfigurationsdateien neu geschrieben, auch die von Checkmk.

Die Variablen sollten eigentlich direkt in der Konfigurationsdatei von Checkmk ersetzt werden, wenn das Problem auftritt, am besten mal in den Konfigurationsdateien schauen, ob dort Benutzername und Passwort stehen:

/opt/openitc/check_mk/etc/check_mk/conf.d/<host-uuid>.mk

@ngnetworks
Copy link
Author

Hallo Daniel,

da sind wir schon auf der richtigen Spur.

  1. Wenn ich mir die Konfig eines Hosts ansehen nachdem der Server neu gestartet ist sieht die wichtige Zeile so aus:
    datasource_programs.append({'condition': {'host_name': ['e7754838-8e42-468e-aad6-718f68f7322b']}, 'value': '/omd/sites/nagios/share/check_mk/agents/special/agent_vsphere --no-cert-check -D -u '$_HOSTVMWARE_USER$' -s 'DaStehtdasRichtigePassword' -H 'e7754838-8e42-468e-aad6-718f68f7322b' '192.168.300.300''}) (IP angepasst)

  2. Wenn ich alle Services des Hosts lösche und die Konfig schreibe ist die Datei weg (soll ja auch so sein)

  3. Wenn ich dann den CheckMK Scan des Hosts neu laufen lasse, erkennt er die Services und ich kann die Services speichern (ohne die Konfig zu schreiben)

  4. Die CheckMK Konfig nach dem speichern, aber vor dem Konfig schreiben sieht dann so aus:
    datasource_programs.append({'condition': {'host_name': ['e7754838-8e42-468e-aad6-718f68f7322b']}, 'value': '/omd/sites/nagios/share/check_mk/agents/special/agent_vsphere --no-cert-check -D -u 'monitoring' -s 'DaStehtdasRichtigePassword' -H 'e7754838-8e42-468e-aad6-718f68f7322b' '192.168.300.300''}) (IP angepasst)

  5. Aktuell Sieht die Konfig also gut aus

  6. Wenn ich jetzt die Konfig schreiben lassen, siehts wieder so aus wie unter Punkt 1.

  7. Es funktioniert aber alles bis der Host neu startet

Der CheckMK Befehlt ist wie folgt:
/omd/sites/nagios/share/check_mk/agents/special/agent_vsphere --no-cert-check -D -u '$_HOSTVMWARE_USER$' -s '$_HOSTVMWARE_PASSWORD$' -H '$HOSTNAME$' '$HOSTADDRESS$'

Ich habe den auch schon nach Sonderzeichen durchsucht un andere Variablennamen getestet aber es scheint nicht an einem unsichtbaren Umbruch oder so zu liegen.

@ngnetworks
Copy link
Author

ngnetworks commented Aug 28, 2024

Hallo nochmal,

dank deiner Hilfe konnte ich das Problem noch genauer untersuchen. Das Problem tritt auf wenn:

  • Es eine Hostvorlage gibt, welche "$_HOSTVMWARE_PASSWORD$" und "$_HOSTVMWARE_USER$" enthält
  • Die Hostvorlage für "$_HOSTVMWARE_USER$" den Default-Wert "monitoring" hat
  • Der Default-Wert von "$_HOSTVMWARE_USER$" aus der Hostvorlage im Host nicht geändert wird (Somit bleibt die Varibale grün).

Wenn das der Fall ist, wird immer der Plain-Text Wert "$_HOSTVMWARE_USER$" in die .mk Datei geschrieben. Wenn ich den Default-Wert in der Hostvorlage auf "-" setze und dann im Host den Wert auf "monitoring", funktioniert alles wie geplant.

grafik

@nook24
Copy link
Member

nook24 commented Aug 28, 2024

Hallo @ngnetworks
perfekt vielen Dank für die Analyse :) Ich habe dazu noch ein Ticket im internen Tracker aufgemacht, sollte dann im nächsten Patchrelease behoben werden.

Tracked by ITC-3363

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants