279 lines
5.3 KiB
Markdown
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. |