# Checkmk Remote Access Direkter SSH- und RDP-Zugriff auf überwachte Hosts aus der Checkmk-Weboberfläche. **Aktuelle Version:** 1.4.4 **Autor:** Domenik Bildhauer **Zielplattform:** Checkmk Community 2.5 ## Funktionen Das Plugin erweitert Checkmk um Remote-Access-Funktionen für Linux-/Unix- und Windows-Hosts. ### Linux / Unix Für Linux- und Unix-Systeme wird automatisch ein SSH-Zugriff angeboten. Beispiel: ```text ssh://192.168.188.125 ``` Unterstützte Betriebssystemfamilien: - Linux - Unix - FreeBSD - OpenBSD - Solaris - AIX ### Windows Für Windows-Systeme wird ein RDP-Zugriff angeboten. Beispiel: ```text rdpadmin://192.168.188.122 ``` `rdpadmin://` verwendet einen eigenen Windows Protocol Handler, der anschließend den Microsoft Remote Desktop Client (`mstsc.exe`) startet. ## Checkmk-Integration ### Setup → Hosts In der Checkmk-Hostverwaltung werden abhängig vom Betriebssystem zusätzliche Remote-Access-Aktionen angezeigt: - SSH-Icon für Linux-/Unix-Systeme - RDP-Icon für Windows-Systeme - `Open SSH ↗` - `Open RDP ↗` ### Monitoring Das Plugin integriert SSH und RDP zusätzlich in die Icons-Spalte der Checkmk Monitoring Views. Bei einem Linux-Host kann dadurch beispielsweise direkt aus einer Service-Problemansicht eine SSH-Verbindung gestartet werden. ## Automatische Betriebssystemerkennung Die Entscheidung zwischen SSH und RDP erfolgt anhand der von Checkmk ermittelten Host-Labels. Beispiel Linux: ```text cmk/os_family: linux cmk/os_platform: ubuntu cmk/os_name: Ubuntu cmk/os_version: 22.04 ``` Beispiel Windows: ```text cmk/os_family: windows ``` Als Ziel für die Verbindung verwendet das Plugin bevorzugt `host_address`. Beispiel: ```text Host: test-ssh.bildhauerd.com Adresse: 192.168.188.125 OS-Familie: linux ``` Daraus entsteht: ```text ssh://192.168.188.125 ``` ## Installation Das fertige MKP befindet sich unter: ```text packages/remote_access-1.4.4.mkp ``` Das Paket auf den Checkmk-Server kopieren und als Site-Benutzer installieren: ```bash mkp add /pfad/zu/remote_access-1.4.4.mkp mkp enable remote_access 1.4.4 ``` Danach den Apache der Checkmk-Site neu starten: ```bash omd restart apache ``` Installation kontrollieren: ```bash mkp list ``` ## Upgrade Eine vorherige Version zunächst deaktivieren, beispielsweise: ```bash mkp disable remote_access 1.4.3 ``` Danach die neue Version installieren und aktivieren: ```bash mkp add /pfad/zu/remote_access-1.4.4.mkp mkp enable remote_access 1.4.4 omd restart apache ``` Anschließend im Browser einen Hard-Reload durchführen. ## Source-Code Der Source-Code befindet sich unter: ```text src/local/share/check_mk/ ``` Wichtige Dateien: ```text src/local/share/check_mk/web/plugins/wato/remote_access_setup.py src/local/share/check_mk/web/plugins/views/remote_access_views.py src/local/share/check_mk/web/htdocs/images/icons/remote_access_ssh.svg src/local/share/check_mk/web/htdocs/images/icons/remote_access_rdp.svg ``` ### remote_access_setup.py Integration der Remote-Access-Funktionen in: ```text Setup → Hosts ``` ### remote_access_views.py Integration der Remote-Access-Icons in die Checkmk Monitoring Views. Die Registrierung erfolgt über Checkmks Legacy-Web-Plugin-Schnittstelle: ```python multisite_icons_and_actions ``` ## Windows SSH Damit ein Klick auf `ssh://` unter Windows funktioniert, muss das Protokoll einem geeigneten SSH-Client zugeordnet sein. Getestet wurde die Verbindung mit PuTTY. Ein direkter Aufruf funktioniert beispielsweise mit: ```text putty.exe 192.168.188.125 ``` ## Windows RDP Für RDP wird das benutzerdefinierte Protokoll ```text rdpadmin:// ``` verwendet. Beispiel: ```text rdpadmin://192.168.188.122 ``` Der auf dem Windows-Client installierte Protocol Handler startet anschließend `mstsc.exe`. Dadurch müssen keine `.rdp`-Dateien heruntergeladen werden. ## Fehlerdiagnose Checkmk Web-Log: ```bash tail -n 50 ~/var/log/web.log ``` Log vor einem Test leeren: ```bash : > ~/var/log/web.log omd restart apache ``` Danach die betreffende Seite neu laden und prüfen: ```bash cat ~/var/log/web.log ``` ## Status 1.4.4 | Funktion | Status | |---|---| | Linux-Erkennung | ✅ Getestet | | Windows-Erkennung | ✅ Getestet | | SSH unter Setup → Hosts | ✅ Getestet | | RDP unter Setup → Hosts | ✅ Getestet | | SSH aus Monitoring-Ansicht | ✅ Getestet | | Eigene SSH-/RDP-Icons | ✅ | | Verwendung der Host-IP | ✅ | | RDP aus Monitoring-Problemansicht | ⏳ Noch abschließend zu testen | ## Repository-Struktur ```text remote_access/ ├── README.md ├── CHANGELOG.md ├── packages/ │ └── remote_access-1.4.4.mkp └── src/ └── local/ └── share/ └── check_mk/ └── web/ ├── plugins/ │ ├── wato/ │ │ └── remote_access_setup.py │ └── views/ │ └── remote_access_views.py └── htdocs/ └── images/ └── icons/ ├── remote_access_ssh.svg └── remote_access_rdp.svg ``` ## Lizenz Dieses Plugin wurde für den Einsatz mit Checkmk Community entwickelt. Checkmk ist eine Marke der Checkmk GmbH.