in unserem Checkmk Setup (derzeit auf Version 2.1) nutzen wollen wir den Alert Handler nutzen, um auf bestimmte Services automatisch zu reagieren.
Den Alert Handler und ein zugehöriges Skript haben wir hierfür bereits eingerichtet und über die Agent Bakery auf den Ziel-Host verteilt. Der von Checkmk erzeugte Publickey wurde auch korrekt für den Nutzer (nicht root) hinterlegt.
Das Problem ist nur, dass der erzeugte Schlüssel vom Typ RSA ist. Für den Host müssen bestimmte Härtungsmaßnahmen umgesetzt werden. Darunter fällt auch, dass keine SSH-Keys vom Typ RSA akzeptiert werden.
Gibt es die Möglichkeit vorzugeben, von welchem Typ die SSH-Keys sein sollen - bspw. ECDSA? Ist diese Möglichkeit für künftige Versionen vorgesehen?
diese Möglichkeit besteht meines Wissens aber nicht bei der Agent Rule " Remote alert handlers (Linux)".
Hier gebe ich den Benutzernamen an und Checkmk erzeugt das Key-Paar im Hintergrund. Für diese Generierung möchte ich gerne einen anderen Typ angeben.
ich habe die Anpassung in der rules.mk (/omd/site/…/etc/check_mk/conf.d/wato/) für den Alert Handler vorgenommen. Allerdings funktioniert der Handler noch nicht richtig.
In dem Dashboard ‘Alert Handler executions’ bekomme ich immer die Meldung:
Der Checkmk Agent gibt in der authorized_keys Datei zusätzlich noch ein Befehl an, welcher ausgeführt werden soll, wenn eine Anmeldung über den Public-Key erfolgt: command="/usr/bin/mk-remote-alert-handler my-script.sh"
Um diese Anmeldung zu simulieren, habe ich den Private-Key als Datei gesichert und eine simple Anmeldung mit SSH ausgeführt. Hierrauf erfolgt keine Rückmeldung und wenn ich nochmals in der Konsole ein Return vornehme, erhalte ich eine verblüffende Meldung:
ssh -i ./self-gen-private-key alerthandler@my-system.org
Not executing disallowed remote alert handler.
Connection to sasref-monitoring.schwsys.ain closed.
Teste ich nur die SSH-Anmeldung und hinterlege für den Public-Key nochmals separat in der authorized_keys Datei, funktioniert die SSH-Verbindung. Hier scheint mir also nicht der Fehler zu sein.
Auch eine Ausführung des Befehls direkt als Benutzer alerthandler auf dem Host führt zum gleichen Ergebnis:
alerthandler@my-system:/home/user> /usr/bin/mk-remote-alert-handler my-script.sh
Not executing disallowed remote alert handler.
Für den Alert Handler habe ich folgende Konfigurationen vorgenommen: Setup > Event > Alert Handler