Files
cmk-plugins/remote_access/README.md
T

279 lines
5.3 KiB
Markdown

# 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.