Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
268a742c92 | ||
|
|
3148acc2df | ||
|
|
f3e3ff0282 | ||
|
|
11ce8a4615 | ||
|
|
f90b81606d |
No files matched your search
@@ -0,0 +1 @@
|
||||
.DS_Store
|
||||
@@ -0,0 +1,147 @@
|
||||
# 🔍 Checkmk Plugins
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
Sammlung eigener Plugins und Erweiterungen für **Checkmk Community 2.5.x**.
|
||||
|
||||
Die Erweiterungen werden für die eigene Monitoring-Umgebung entwickelt und getestet. Jedes Plugin besitzt einen eigenen Ordner mit Dokumentation, Source-Code und installierbarem MKP-Paket.
|
||||
|
||||
## 📦 Verfügbare Plugins
|
||||
|
||||
### 🔗 Remote Access
|
||||
|
||||
Direkter SSH- und RDP-Zugriff auf überwachte Hosts aus der Checkmk-Weboberfläche.
|
||||
|
||||
**Aktuelle Version:** `1.4.4`
|
||||
|
||||
<p>
|
||||
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/linux.svg" width="22" height="22" alt="Linux"> SSH für Linux-/Unix-Systeme
|
||||
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-windows.svg" width="22" height="22" alt="Windows"> RDP für Windows-Systeme
|
||||
</p>
|
||||
|
||||
- Automatische Betriebssystemerkennung über Checkmk Host Labels
|
||||
- Verwendung der von Checkmk ermittelten Host-IP
|
||||
- Integration in `Setup → Hosts`
|
||||
- Integration in Checkmk Monitoring Views
|
||||
- Eigene SSH- und RDP-Icons
|
||||
- Direkter SSH-Aufruf über `ssh://`
|
||||
- Direkter RDP-Aufruf über `rdpadmin://`
|
||||
|
||||
➡️ [Dokumentation](remote_access/README.md)
|
||||
📦 [MKP-Paket](remote_access/packages/remote_access-1.4.4.mkp)
|
||||
|
||||
### 🖥️ OS Info
|
||||
|
||||
Zeigt Betriebssysteminformationen eines überwachten Hosts als eigenen Checkmk-Service an.
|
||||
|
||||
**Aktuelle Version:** `1.0.0`
|
||||
|
||||
<p>
|
||||
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/linux.svg" width="24" height="24" alt="Linux"> <strong>Linux</strong>
|
||||
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-windows.svg" width="24" height="24" alt="Windows"> <strong>Windows</strong>
|
||||
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/apple.svg" width="24" height="24" alt="macOS"> <strong>macOS</strong>
|
||||
</p>
|
||||
|
||||
- Betriebssystem bzw. Distribution
|
||||
- Version / Windows-Build
|
||||
- Architektur
|
||||
- Kernel-Version
|
||||
- OS-ID und Version-ID
|
||||
|
||||
➡️ [Dokumentation](os-info/README.md)
|
||||
📦 [MKP-Paket](os-info/dist/os_info-1.0.0.mkp)
|
||||
|
||||
## 🛠️ Umgebung und Kompatibilität
|
||||
|
||||
Primär entwickelt und getestet mit:
|
||||
|
||||
- Checkmk Community Edition
|
||||
- Checkmk 2.5.x
|
||||
- Checkmk Agent 2.5
|
||||
- Linux-Hosts
|
||||
- Windows-Hosts
|
||||
|
||||
> Die Kompatibilität mit anderen Checkmk-Versionen oder Editionen ist nicht grundsätzlich ausgeschlossen, wird aber nicht zwingend getestet.
|
||||
|
||||
## 📂 Repository-Struktur
|
||||
|
||||
```text
|
||||
cmk-plugins/
|
||||
├── README.md
|
||||
├── remote_access/
|
||||
│ ├── README.md
|
||||
│ ├── CHANGELOG.md
|
||||
│ ├── packages/
|
||||
│ └── src/
|
||||
└── os-info/
|
||||
├── README.md
|
||||
├── CHANGELOG.md
|
||||
├── PROJECT.md
|
||||
├── LICENSE
|
||||
├── dist/
|
||||
└── src/
|
||||
```
|
||||
|
||||
Jedes Plugin wird unabhängig versioniert und dokumentiert.
|
||||
|
||||
## 📥 Installation von MKP-Paketen
|
||||
|
||||
Das gewünschte `.mkp`-Paket auf den Checkmk-Server übertragen und als Site-Benutzer installieren:
|
||||
|
||||
```bash
|
||||
mkp add /pfad/zum/plugin.mkp
|
||||
mkp enable PLUGIN_NAME VERSION
|
||||
```
|
||||
|
||||
Je nach Plugin anschließend beispielsweise:
|
||||
|
||||
```bash
|
||||
cmk -R
|
||||
```
|
||||
|
||||
oder bei Web-Erweiterungen:
|
||||
|
||||
```bash
|
||||
omd restart apache
|
||||
```
|
||||
|
||||
Installierte Pakete anzeigen:
|
||||
|
||||
```bash
|
||||
mkp list
|
||||
```
|
||||
|
||||
Die plugin-spezifischen Installationsschritte stehen in der jeweiligen README.
|
||||
|
||||
## 🏷️ Releases und Versionierung
|
||||
|
||||
Die Plugins werden unabhängig voneinander versioniert. Git-Tags verwenden das Schema:
|
||||
|
||||
```text
|
||||
PLUGIN_NAME-vVERSION
|
||||
```
|
||||
|
||||
Beispiele:
|
||||
|
||||
```text
|
||||
remote_access-v1.4.4
|
||||
os_info-v1.0.0
|
||||
```
|
||||
|
||||
## 🧑💻 Entwicklung
|
||||
|
||||
Der Source-Code befindet sich im jeweiligen Plugin-Verzeichnis unter `src/`. Die Verzeichnisstruktur orientiert sich möglichst an der späteren Struktur innerhalb der Checkmk-Site.
|
||||
|
||||
## ⚠️ Hinweise
|
||||
|
||||
Die Plugins wurden primär für die eigene Checkmk-Umgebung entwickelt. Vor dem Einsatz in produktiven Umgebungen sollte die jeweilige Erweiterung zunächst in einer Testumgebung geprüft werden.
|
||||
|
||||
## 👤 Autor
|
||||
|
||||
Domenik Bildhauer
|
||||
|
||||
## ⚖️ Lizenz
|
||||
|
||||
Die Lizenz ist im jeweiligen Plugin dokumentiert. Checkmk ist eine Marke der Checkmk GmbH.
|
||||
@@ -0,0 +1,10 @@
|
||||
# Changelog
|
||||
|
||||
## 1.0.0
|
||||
|
||||
- Erste Version
|
||||
- Checkmk Check API V2
|
||||
- Service `Betriebssystem`
|
||||
- Linux/macOS Agent-Plug-in
|
||||
- Windows PowerShell Agent-Plug-in
|
||||
- Anzeige von Betriebssystem, Version/Build, Architektur und Kernel
|
||||
@@ -0,0 +1,5 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
This project is distributed under the terms of the GNU General Public License version 2.
|
||||
The complete license text is available from the Free Software Foundation.
|
||||
@@ -0,0 +1,12 @@
|
||||
# Projektübersicht – Checkmk OS Info
|
||||
|
||||
**Projekt:** Checkmk OS Info
|
||||
**Version:** 1.0.0
|
||||
**Ziel:** Betriebssysteminformationen als eigenen Checkmk-Service pro Host anzeigen.
|
||||
**Checkmk:** Community 2.5.x / Check API V2
|
||||
|
||||
Das Repository enthält den vollständigen Quellcode für Linux/macOS und Windows,
|
||||
das Checkmk Check-Plug-in, die Checkman-Dokumentation sowie das fertige MKP unter `dist/`.
|
||||
|
||||
Wichtig: MKP-Dateien werden im lokalen Site-Bereich installiert. Die Agent-Plug-ins liegen
|
||||
daher nach Aktivierung unter `~/local/share/check_mk/agents/...`.
|
||||
@@ -0,0 +1,141 @@
|
||||
# 🖥️ Checkmk OS Info
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
MKP-Erweiterung für **Checkmk Community 2.5.x**, die auf überwachten Hosts einen eigenen Service **„Betriebssystem“** bereitstellt.
|
||||
|
||||
⬅️ [Zurück zur Plugin-Übersicht](../README.md)
|
||||
|
||||
## ✨ Funktionen
|
||||
|
||||
Der Service zeigt:
|
||||
|
||||
- Betriebssystem bzw. Linux-Distribution
|
||||
- Betriebssystem-Version / Windows-Build
|
||||
- Architektur
|
||||
- Kernel-Version
|
||||
- OS-ID und Version-ID
|
||||
|
||||
### Unterstützte Plattformen
|
||||
|
||||
<p>
|
||||
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/linux.svg" width="24" height="24" alt="Linux"> <strong>Linux</strong>
|
||||
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-windows.svg" width="24" height="24" alt="Windows"> <strong>Windows</strong>
|
||||
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/apple.svg" width="24" height="24" alt="macOS"> <strong>macOS</strong>
|
||||
</p>
|
||||
|
||||
## 📂 Repository-Struktur
|
||||
|
||||
```text
|
||||
os-info/
|
||||
├── src/
|
||||
│ ├── agents/
|
||||
│ │ ├── plugins/
|
||||
│ │ │ └── os_info
|
||||
│ │ └── windows/
|
||||
│ │ └── plugins/
|
||||
│ │ └── os_info.ps1
|
||||
│ └── cmk_addons_plugins/
|
||||
│ └── os_info/
|
||||
│ ├── agent_based/
|
||||
│ │ └── os_info.py
|
||||
│ └── checkman/
|
||||
│ └── os_info
|
||||
├── dist/
|
||||
│ └── os_info-1.0.0.mkp
|
||||
├── CHANGELOG.md
|
||||
├── PROJECT.md
|
||||
├── LICENSE
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## 📥 Installation des MKP
|
||||
|
||||
Das fertige Paket befindet sich unter `dist/os_info-1.0.0.mkp`.
|
||||
|
||||
```bash
|
||||
mkp add /tmp/os_info-1.0.0.mkp
|
||||
mkp enable os_info 1.0.0
|
||||
cmk -R
|
||||
```
|
||||
|
||||
Kontrolle:
|
||||
|
||||
```bash
|
||||
mkp list
|
||||
```
|
||||
|
||||
Der Eintrag `os_info` sollte als `Enabled (active on this site)` erscheinen.
|
||||
|
||||
## <img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/linux.svg" width="24" height="24" alt="Linux"> Agent-Plug-in für Linux / macOS
|
||||
|
||||
Nach Aktivierung des MKP liegt das Plug-in unter:
|
||||
|
||||
```text
|
||||
~/local/share/check_mk/agents/plugins/os_info
|
||||
```
|
||||
|
||||
Auf den Zielhost kopieren:
|
||||
|
||||
```bash
|
||||
scp ~/local/share/check_mk/agents/plugins/os_info \
|
||||
root@HOST:/usr/lib/check_mk_agent/plugins/os_info
|
||||
```
|
||||
|
||||
Danach auf dem Zielhost:
|
||||
|
||||
```bash
|
||||
chmod 755 /usr/lib/check_mk_agent/plugins/os_info
|
||||
/usr/lib/check_mk_agent/plugins/os_info
|
||||
```
|
||||
|
||||
Die Ausgabe muss mit `<<<os_info:sep(9)>>>` beginnen.
|
||||
|
||||
## <img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-windows.svg" width="24" height="24" alt="Windows"> Agent-Plug-in für Windows
|
||||
|
||||
Quelldatei auf dem Checkmk-Server:
|
||||
|
||||
```text
|
||||
~/local/share/check_mk/agents/windows/plugins/os_info.ps1
|
||||
```
|
||||
|
||||
Ziel auf dem Windows-Host:
|
||||
|
||||
```text
|
||||
C:\ProgramData\checkmk\agent\plugins\os_info.ps1
|
||||
```
|
||||
|
||||
## 🔎 Service Discovery
|
||||
|
||||
```bash
|
||||
cmk -d HOSTNAME | grep -A2 '^<<<os_info'
|
||||
cmk -vI HOSTNAME
|
||||
cmk -R
|
||||
```
|
||||
|
||||
Anschließend erscheint beim Host der Service **Betriebssystem**.
|
||||
|
||||
## 🧰 Fehlersuche
|
||||
|
||||
```bash
|
||||
find ~/local -type f -name 'os_info*'
|
||||
mkp list
|
||||
cmk -d HOSTNAME | grep -A2 '^<<<os_info'
|
||||
```
|
||||
|
||||
## 🛠️ Kompatibilität
|
||||
|
||||
- Checkmk Community 2.5.x
|
||||
- Check API V2
|
||||
- Linux-Agent
|
||||
- Windows-Agent
|
||||
- macOS grundsätzlich unterstützt
|
||||
|
||||
**Aktuelle Paketversion:** `1.0.0`
|
||||
|
||||
## ⚖️ Lizenz
|
||||
|
||||
GPL-2.0
|
||||
Vendored
BIN
Binary file not shown.
Executable
+48
@@ -0,0 +1,48 @@
|
||||
#!/bin/sh
|
||||
# Checkmk agent plug-in: operating system information
|
||||
# Output is tab-separated for safe parsing.
|
||||
set -eu
|
||||
|
||||
name=""
|
||||
version=""
|
||||
os_id=""
|
||||
version_id=""
|
||||
pretty=""
|
||||
arch="$(uname -m 2>/dev/null || echo unknown)"
|
||||
kernel="$(uname -r 2>/dev/null || echo unknown)"
|
||||
|
||||
if [ -r /etc/os-release ]; then
|
||||
# shellcheck disable=SC1091
|
||||
. /etc/os-release
|
||||
name="${NAME:-}"
|
||||
version="${VERSION:-}"
|
||||
os_id="${ID:-}"
|
||||
version_id="${VERSION_ID:-}"
|
||||
pretty="${PRETTY_NAME:-}"
|
||||
elif command -v sw_vers >/dev/null 2>&1; then
|
||||
name="macOS"
|
||||
version="$(sw_vers -productVersion 2>/dev/null || true)"
|
||||
os_id="macos"
|
||||
version_id="$version"
|
||||
pretty="macOS $version"
|
||||
else
|
||||
name="$(uname -s 2>/dev/null || echo unknown)"
|
||||
version="$kernel"
|
||||
os_id="$(printf '%s' "$name" | tr '[:upper:]' '[:lower:]')"
|
||||
version_id="$version"
|
||||
pretty="$name $version"
|
||||
fi
|
||||
|
||||
sanitize() {
|
||||
printf '%s' "$1" | tr '\t\r\n' ' '
|
||||
}
|
||||
|
||||
printf '<<<os_info:sep(9)>>>\n'
|
||||
printf '%s\t%s\t%s\t%s\t%s\t%s\t%s\n' \
|
||||
"$(sanitize "$name")" \
|
||||
"$(sanitize "$version")" \
|
||||
"$(sanitize "$os_id")" \
|
||||
"$(sanitize "$version_id")" \
|
||||
"$(sanitize "$pretty")" \
|
||||
"$(sanitize "$arch")" \
|
||||
"$(sanitize "$kernel")"
|
||||
@@ -0,0 +1,23 @@
|
||||
# Checkmk agent plug-in: operating system information
|
||||
$ErrorActionPreference = "SilentlyContinue"
|
||||
|
||||
$os = Get-CimInstance -ClassName Win32_OperatingSystem
|
||||
$arch = $env:PROCESSOR_ARCHITECTURE
|
||||
if ($os.OSArchitecture) { $arch = $os.OSArchitecture }
|
||||
|
||||
$name = [string]$os.Caption
|
||||
$version = [string]$os.Version
|
||||
$osId = "windows"
|
||||
$versionId = [string]$os.BuildNumber
|
||||
$pretty = "$($os.Caption) (Build $($os.BuildNumber))"
|
||||
$kernel = [string]$os.Version
|
||||
|
||||
function Clean([string]$Value) {
|
||||
if ($null -eq $Value) { return "" }
|
||||
return ($Value -replace "[`t`r`n]", " ")
|
||||
}
|
||||
|
||||
Write-Output "<<<os_info:sep(9)>>>"
|
||||
Write-Output ("{0}`t{1}`t{2}`t{3}`t{4}`t{5}`t{6}" -f `
|
||||
(Clean $name), (Clean $version), (Clean $osId), (Clean $versionId), `
|
||||
(Clean $pretty), (Clean $arch), (Clean $kernel))
|
||||
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env python3
|
||||
from collections.abc import Mapping, Sequence
|
||||
|
||||
from cmk.agent_based.v2 import AgentSection, CheckPlugin, Result, Service, State, StringTable
|
||||
|
||||
|
||||
Section = Mapping[str, str]
|
||||
|
||||
|
||||
def parse_os_info(string_table: StringTable) -> Section:
|
||||
if not string_table:
|
||||
return {}
|
||||
|
||||
row: Sequence[str] = string_table[0]
|
||||
fields = ("name", "version", "id", "version_id", "pretty", "architecture", "kernel")
|
||||
values = list(row) + [""] * max(0, len(fields) - len(row))
|
||||
return dict(zip(fields, values[: len(fields)]))
|
||||
|
||||
|
||||
def discover_os_info(section: Section):
|
||||
if section:
|
||||
yield Service()
|
||||
|
||||
|
||||
def check_os_info(section: Section):
|
||||
pretty = section.get("pretty") or section.get("name") or "Unbekannt"
|
||||
architecture = section.get("architecture") or "unbekannt"
|
||||
kernel = section.get("kernel") or "unbekannt"
|
||||
|
||||
yield Result(
|
||||
state=State.OK,
|
||||
summary=f"{pretty}, Architektur: {architecture}",
|
||||
details=(
|
||||
f"Betriebssystem: {pretty}\n"
|
||||
f"Name: {section.get('name', '')}\n"
|
||||
f"Version: {section.get('version', '')}\n"
|
||||
f"OS-ID: {section.get('id', '')}\n"
|
||||
f"Version-ID/Build: {section.get('version_id', '')}\n"
|
||||
f"Architektur: {architecture}\n"
|
||||
f"Kernel: {kernel}"
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
agent_section_os_info = AgentSection(
|
||||
name="os_info",
|
||||
parse_function=parse_os_info,
|
||||
)
|
||||
|
||||
check_plugin_os_info = CheckPlugin(
|
||||
name="os_info",
|
||||
service_name="Betriebssystem",
|
||||
discovery_function=discover_os_info,
|
||||
check_function=check_os_info,
|
||||
)
|
||||
@@ -0,0 +1,19 @@
|
||||
title: Betriebssystem
|
||||
agents: check_mk
|
||||
catalog: operating_system
|
||||
license: GPLv2
|
||||
distribution: check_mk
|
||||
description:
|
||||
Dieses Plug-in erzeugt pro Host den Service "Betriebssystem".
|
||||
Angezeigt werden Betriebssystem/Distribution, Version bzw. Build,
|
||||
Architektur und Kernel-Version.
|
||||
|
||||
Der mitgelieferte Agent-Plug-in muss auf den überwachten Linux-, macOS-
|
||||
oder Windows-Systemen installiert werden.
|
||||
item:
|
||||
Kein Item. Pro Host wird genau ein Service erzeugt.
|
||||
discovery:
|
||||
Ein Service wird erkannt, sobald die Agent-Sektion <<<os_info>>> vorhanden ist.
|
||||
check:
|
||||
Der Service ist OK und dient der übersichtlichen Anzeige der erkannten
|
||||
Betriebssysteminformationen.
|
||||
+42
-161
@@ -1,68 +1,55 @@
|
||||
# Checkmk Remote Access
|
||||
# 🔗 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
|
||||
Direkter **SSH- und RDP-Zugriff** auf überwachte Hosts aus der Checkmk-Weboberfläche.
|
||||
|
||||
## Funktionen
|
||||
**Version:** `1.4.4` · **Autor:** Domenik Bildhauer · **Zielplattform:** Checkmk Community 2.5
|
||||
|
||||
⬅️ [Zurück zur Plugin-Übersicht](../README.md)
|
||||
|
||||
## ✨ Funktionen
|
||||
|
||||
Das Plugin erweitert Checkmk um Remote-Access-Funktionen für Linux-/Unix- und Windows-Hosts.
|
||||
|
||||
### Linux / Unix
|
||||
### <img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/linux.svg" width="24" height="24" alt="Linux"> Linux / Unix
|
||||
|
||||
Für Linux- und Unix-Systeme wird automatisch ein SSH-Zugriff angeboten.
|
||||
|
||||
Beispiel:
|
||||
Für Linux- und Unix-Systeme wird automatisch ein SSH-Zugriff angeboten:
|
||||
|
||||
```text
|
||||
ssh://192.168.188.125
|
||||
```
|
||||
|
||||
Unterstützte Betriebssystemfamilien:
|
||||
Unterstützt werden Linux, Unix, FreeBSD, OpenBSD, Solaris und AIX.
|
||||
|
||||
- Linux
|
||||
- Unix
|
||||
- FreeBSD
|
||||
- OpenBSD
|
||||
- Solaris
|
||||
- AIX
|
||||
### <img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-windows.svg" width="24" height="24" alt="Windows"> Windows
|
||||
|
||||
### Windows
|
||||
|
||||
Für Windows-Systeme wird ein RDP-Zugriff angeboten.
|
||||
|
||||
Beispiel:
|
||||
Für Windows-Systeme wird ein RDP-Zugriff angeboten:
|
||||
|
||||
```text
|
||||
rdpadmin://192.168.188.122
|
||||
```
|
||||
|
||||
`rdpadmin://` verwendet einen eigenen Windows Protocol Handler, der anschließend den Microsoft Remote Desktop Client (`mstsc.exe`) startet.
|
||||
`rdpadmin://` verwendet einen eigenen Windows Protocol Handler, der `mstsc.exe` startet.
|
||||
|
||||
## Checkmk-Integration
|
||||
## 🔌 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 ↗`
|
||||
Abhängig vom Betriebssystem werden ein SSH- bzw. RDP-Icon sowie `Open SSH ↗` oder `Open RDP ↗` angezeigt.
|
||||
|
||||
### Monitoring
|
||||
|
||||
Das Plugin integriert SSH und RDP zusätzlich in die Icons-Spalte der Checkmk Monitoring Views.
|
||||
SSH und RDP werden zusätzlich in die Icons-Spalte der Checkmk Monitoring Views integriert.
|
||||
|
||||
Bei einem Linux-Host kann dadurch beispielsweise direkt aus einer Service-Problemansicht eine SSH-Verbindung gestartet werden.
|
||||
|
||||
## Automatische Betriebssystemerkennung
|
||||
## 🔎 Automatische Betriebssystemerkennung
|
||||
|
||||
Die Entscheidung zwischen SSH und RDP erfolgt anhand der von Checkmk ermittelten Host-Labels.
|
||||
|
||||
Beispiel Linux:
|
||||
Linux:
|
||||
|
||||
```text
|
||||
cmk/os_family: linux
|
||||
@@ -71,170 +58,77 @@ cmk/os_name: Ubuntu
|
||||
cmk/os_version: 22.04
|
||||
```
|
||||
|
||||
Beispiel Windows:
|
||||
Windows:
|
||||
|
||||
```text
|
||||
cmk/os_family: windows
|
||||
```
|
||||
|
||||
Als Ziel für die Verbindung verwendet das Plugin bevorzugt `host_address`.
|
||||
Als Ziel verwendet das Plugin bevorzugt `host_address`.
|
||||
|
||||
Beispiel:
|
||||
## 📥 Installation
|
||||
|
||||
```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:
|
||||
Paket: `packages/remote_access-1.4.4.mkp`
|
||||
|
||||
```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:
|
||||
## ⬆️ Upgrade
|
||||
|
||||
```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.
|
||||
Anschließend im Browser gegebenenfalls einen Hard-Reload durchführen.
|
||||
|
||||
## Source-Code
|
||||
|
||||
Der Source-Code befindet sich unter:
|
||||
|
||||
```text
|
||||
src/local/share/check_mk/
|
||||
```
|
||||
|
||||
Wichtige Dateien:
|
||||
## 🧑💻 Source-Code
|
||||
|
||||
```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
|
||||
`remote_access_setup.py` integriert die Funktionen in `Setup → Hosts`.
|
||||
|
||||
Integration der Remote-Access-Funktionen in:
|
||||
`remote_access_views.py` integriert die Remote-Access-Icons in die Monitoring Views über `multisite_icons_and_actions`.
|
||||
|
||||
```text
|
||||
Setup → Hosts
|
||||
```
|
||||
## <img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-windows.svg" width="24" height="24" alt="Windows"> Windows SSH
|
||||
|
||||
### 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:
|
||||
Damit `ssh://` unter Windows funktioniert, muss das Protokoll einem geeigneten SSH-Client zugeordnet sein. Getestet wurde PuTTY.
|
||||
|
||||
```text
|
||||
putty.exe 192.168.188.125
|
||||
```
|
||||
|
||||
## Windows RDP
|
||||
## <img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/microsoft-windows.svg" width="24" height="24" alt="Windows"> Windows RDP
|
||||
|
||||
Für RDP wird das benutzerdefinierte Protokoll
|
||||
|
||||
```text
|
||||
rdpadmin://
|
||||
```
|
||||
|
||||
verwendet.
|
||||
|
||||
Beispiel:
|
||||
Für RDP wird `rdpadmin://` verwendet:
|
||||
|
||||
```text
|
||||
rdpadmin://192.168.188.122
|
||||
```
|
||||
|
||||
Der auf dem Windows-Client installierte Protocol Handler startet anschließend `mstsc.exe`.
|
||||
Der Protocol Handler startet `mstsc.exe`; dadurch müssen keine `.rdp`-Dateien heruntergeladen werden.
|
||||
|
||||
Dadurch müssen keine `.rdp`-Dateien heruntergeladen werden.
|
||||
|
||||
## Fehlerdiagnose
|
||||
|
||||
Checkmk Web-Log:
|
||||
## 🧰 Fehlerdiagnose
|
||||
|
||||
```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
|
||||
## ✅ Status 1.4.4
|
||||
|
||||
| Funktion | Status |
|
||||
|---|---|
|
||||
@@ -247,7 +141,7 @@ cat ~/var/log/web.log
|
||||
| Verwendung der Host-IP | ✅ |
|
||||
| RDP aus Monitoring-Problemansicht | ⏳ Noch abschließend zu testen |
|
||||
|
||||
## Repository-Struktur
|
||||
## 📂 Repository-Struktur
|
||||
|
||||
```text
|
||||
remote_access/
|
||||
@@ -256,24 +150,11 @@ remote_access/
|
||||
├── 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
|
||||
└── local/share/check_mk/
|
||||
```
|
||||
|
||||
## Lizenz
|
||||
## ⚖️ Lizenz
|
||||
|
||||
Dieses Plugin wurde für den Einsatz mit Checkmk Community entwickelt.
|
||||
|
||||
Checkmk ist eine Marke der Checkmk GmbH.
|
||||
Checkmk ist eine Marke der Checkmk GmbH.
|
||||
Reference in new issue
Block a user