Künstliche Intelligenz

Neu in Checkmk: KI via MCP anbinden

Ganz neu und experimentell: Checkmk kommt jetzt mit einem MCP-Server

"Gibt es irgendwelche CPU- oder RAM-Probleme, die ich mir anschauen sollte?" Solche Fragen konnte Checkmk schon immer über Dashboards, Graphen und Ansichten implizit beantworten. Jetzt kann man diese Frage genau so stellen! Und bekommt Antworten, die über reine Service-Status hinausgehen. Hallo Zukunft.

MCP-Server in Checkmk

Der MCP-Server in Checkmk ist derzeit noch ein experimentelles Feature, verfügbar in den kommerziellen Editionen ab den Versionen 2.5.0p13 und 3.0.0b1.

Und falls MCP kein Begriff ist: Im Grunde heißt Multi Context Protocol ganz schlicht, dass sich Informationsquellen an ein KI-Interface wie einen Chat-Bot anbinden und per LLM auswerten lassen können.

Mein Setup: Checkmk mit MCP-Server + LibreChat als Client + OpenAI via API-Tokens.

Man kann aber genauso gut mit ChatGPT, Claude Code und jedem sonstigen MCP-kompatiblen Tool arbeiten. Übrigens: Das Ding ist read only! Man kann also nichts kaputt machen. Was genau kann der MCP-Server? Nun, fragen wir mal - hier die KI-eigene Antwort:

Tool Welche Informationen ich abrufen kann
get_monitoring_overview Gesamtübersicht über den Zustand aller Hosts und Services der Checkmk-Site
get_hosts Aktuelle Host-Zustände, Quittierungen, Wartungsstatus und Metadaten
get_services Aktuelle Service-Zustände, Check-Ausgaben, Messwerte und Zeitpunkte von Zustandsänderungen
get_metric_history Historische Messwerte eines Services auf einem Host, etwa CPU-Auslastung, RAM-Nutzung oder Festplattenlatenz
get_availability Verweildauer in Monitoring-Zuständen sowie zeitlicher Verlauf der Zustandswechsel
get_comments Kommentare von Operatoren zu Hosts und Services
get_downtimes Geplante Wartungszeiten einschließlich Zeitraum, Verfasser und Begründung
get_ec_events Aktuelle und historische Ereignisse der Event Console
get_config_changes Änderungsprotokoll der Konfiguration: Wer hat wann was geändert?
get_pending_changes Noch nicht aktivierte Änderungen aus dem Setup
list_structure Ordner, Host- und Servicegruppen, Host-Tag-Gruppen und Labels
read_setup_configuration Konfiguration eines Hosts oder Ordners, einschließlich geerbter Host-Attribute
version Version der lokalen Checkmk-Site

Übrigens: All diese einzelnen Tools können in LibreChat auch einzeln genutzt werden, indem Agenten mit dem MCP-Server konfiguriert und auf einzelne Tools beschränkt werden.

Und so könnte am Ende eine Interaktion aussehen:

librechat gpt analyse ram.
Analyse von RAM-Problemen auf allen Hosts

Einrichtung, Grundlagen

Die Einrichtung ist im Grunde sehr einfach. Und wie das immer so ist, wenn jemand mit im Grunde um die Ecke kommt: Es ist nicht für alle ganz so einfach. Was es braucht:

  • Checkmk Pro, Ultimate, Cloud oder Ultimate MT
  • Checkmk-Weboberfläche abgesichert per HTTPS
  • Client-Option 1: LibreChat + OpenAI-API-Schlüssel (oder ähnlich)
  • Client-Option 2: ChatGPT Pro, Claude Code

Checkmk lässt sich auf vielen Wegen installieren, schaut ins Handbuch, direkt in den Download-Bereich, in meinen (älteren) Schnellstart ..., aber tendenziell ist das ja schon vorhanden, sonst würdet Ihr vermutlich nicht hier landen.

Die HTTPS-Absicherung dürfte in jedem echten Monitoring eingerichtet sein. Falls nicht: Das ist der "im Grunde"-Einschub - ohne HTTPS geht es nicht, weil der MCP-Server OAuth für die Authentifizierung nutzt.

Wer das richtig machen will: Im Checkmk-Handbuch gibt es einen passenden Artikel, der die Einrichtung via Let's Encrypt oder eigener Zertifizierung erklärt.

Ich habe hingegen auf mkcert gesetzt, das lokal vertrauenswürdige Zertifikate erstellt und eher für Entwicklung und Tests gedacht ist. Wie das hier ging, folgt im nächsten Kapitel - zur Veranschaulichung.

Bei den Clients verweist Checkmk selbst primär auf Claude Code und erwähnt ChatGPT. Aber: Für ChatGPT braucht es schon einen Pro-Account, für über 100 Euro im Monat, damit MCP geht. Claude Code kann das wohl auch in der kostenlosen Version, allerdings nur, wenn das Monitoring von außen erreichbar ist. Wenn nicht, muss das über Claudes CLI-Schnittstelle im Terminal konfiguriert werden, die wiederum nicht in der kostenlosen Version zur Verfügung steht. Also wieder Pro.

Für mich einfacher: LibreChat ist sowas wie ChatGPT, nur dass das OpenAI-LLM per API-Tokens angebunden werden muss. Und nur weil häufig verwirrend: ChatGPT-Accounts sind völlig separat von OpenAI-API-Accounts!

Einrichtung mit "Pro-Account" und HTTPS gegeben

In vielen Fällen dürfte Checkmk schon mit HTTPS abgesichert sein und zumindest im professionellen Umfeld dürften auch Claude Code Pro oder ChatGPT Pro zu bekommen sein.

Dann ist die Einrichtung unfassbar simpel:

  1. MCP-Server in Checkmk aktivieren: Unter Global Settings -> AI Features -> MCP Server einschalten und dann ein Activate changes durchführen.
    mcp setting in checkmk
    In Checkmk muss der MCP-Server nur aktiviert werden
  2. MCP-Server im Client registrieren: https://MYSERVER/MYSITE/check_mk/mcp angeben - wo auch immer der Client es verlangt.
  3. MCP-Server authentifizieren: Im Client die registrierte Verbindung suchen und verbinden - nach einer einmaligen Anmeldung bei Checkmk ist der Server authentifiziert und kann genutzt werden.
    mcp auth.
    Die Authentifizierung von LibreChat für Checkmk

Das ist die im Grunde einfache Variante.

Einrichtung mit LibreChat von Grund auf

Hier folgt nun die Einrichtung, wie sie bei mir nötig war, sprich:

  1. HTTPS einrichten
  2. LibreChat einrichten
  3. Checkmk MCP Server einrichten

Mein Setup:

  • FritzBox-Heimnetz
  • Checkmk Ultimate 3.0.0-2026.09.08 auf Ubuntu Server 22.04
  • LibreChat als Docker-Container unter Windows

Ich belasse es hier mal bei den einzelnen Schritten ohne große Erklärungen. Tipp: Wenn das alles nach böhmischen Dörfern klingt, sagt einfach der KI Eures Vertrauens, dass sie Euch Schritt für Schritt (!) durch die Einrichtung führen soll.

1. Hostname für Checkmk-Server herausfinden

Für die HTTPS-Einrichtung braucht es einen Namen im Netzwerk. Wenn Ihr nur die IP kennt:

nslookup 192.168.178.100

Der Name ist dann sowas wie checkmk.fritz.box - oder guckt halt in der FritzBox selbst ;)

2. mkcert installieren (Ubuntu)

sudo apt update
sudo apt install mkcert
mkcert -install

3. Zertifikat erstellen (Ubuntu)

cd /tmp
mkcert cmkserver.fritz.box
sudo mkdir -p /etc/ssl/checkmk
sudo cp cmkserver.fritz.box.pem cmkserver.fritz.box-key.pem /etc/ssl/checkmk/
sudo chmod 600 /etc/ssl/checkmk/cmkserver.fritz.box-key.pem

4. Apache konfigurieren (Ubuntu)

sudo a2enmod ssl
sudo a2enmod headers

5. SSL-Konfiguration erstellen (Ubuntu)

Datei: /etc/apache2/sites-available/checkmk-ssl.conf:

<VirtualHost *:443>
    ServerName cmkserver.fritz.box

    SSLEngine on
    SSLCertificateFile /etc/ssl/checkmk/cmkserver.fritz.box.pem
    SSLCertificateKeyFile /etc/ssl/checkmk/cmkserver.fritz.box-key.pem

    RequestHeader set X-Forwarded-Proto "https"

    ErrorLog ${APACHE_LOG_DIR}/checkmk-ssl-error.log
    CustomLog ${APACHE_LOG_DIR}/checkmk-ssl-access.log combined
</VirtualHost>

6. HTTPS aktivieren (Ubuntu)

sudo a2ensite checkmk-ssl
sudo apache2ctl configtest
sudo systemctl reload apache2

7. Zertifikat importieren (Windows)

Nun muss die unter Ubuntu generierte Zertifikatsdatei rootCA.pem auf den Windows-Rechner kopiert und dann importiert werden: Startmenü -> Benutzerzertifikate verwalten -> Vertauenswürdige Stammzertifizierungsstellen öffnen. Dort ein Rechtsklick auf Zertifikate -> Alle Aufgaben -> Importieren.

8. SSL-Verbindung verifizieren (Windows)

curl --ssl-no-revoke -I https://cmkserver.fritz.box/SITENAME/

9. Docker Desktop installieren (Windows)

docker --version
docker compose version

10. Git installieren (Windows)

Git for Windows installieren und prüfen:

git --version

11. LibreChat herunterladen (Windows)

cd ~
git clone https://github.com/danny-avila/LibreChat.git
cd LibreChat

Hinweis: Alle folgenden Kommandos werden im LibreChat-Ordner ausgeführt.

12. LibreChat-Umgebung konfigurieren (Windows)

Zunächst wird der OpenAI-API-Schlüssel benötigt, zu bekommen hier.

Beispiel-Config kopieren/aktivieren:

cp .env.example .env

Darin wird der API-Key eingetragen:

OPENAI_API_KEY=sk-...

13. LibreChat-MCP-Konfiguration erstellen (Windows)

Datei: librechat.yaml:

version: 1.2.1

mcpSettings:
  allowedAddresses:
    - "cmkserver.fritz.box:443"

mcpServers:
  checkmk:
    type: streamable-http
    url: "https://cmkserver.fritz.box/SITENAME/check_mk/mcp"
    requiresOAuth: true

Diese YAML-Datei entspricht den Server-Registrieren-Klicks in den grafischen Clients.

14. LibreChat mit Zertifikat versorgen (Windows)

Da LibreChat als Container läuft, genügt es nicht, wenn Windows dem Zertifikat vertraut. Also muss auch LibreChat manuell angebunden werden.

Zunmächst muss die Datei rootCA.pem in den LibreChat-Ordner kopiert werden.

Die Konfiguration geht dann über eine Override-Datei docker-compose.override.yml:

services:
  api:
    volumes:
      - ./rootCA.pem:/etc/ssl/local/rootCA.pem:ro
      - ./librechat.yaml:/app/librechat.yaml:ro
    environment:
      NODE_EXTRA_CA_CERTS: /etc/ssl/local/rootCA.pem

15. LibreChat starten (Windows)

Starten:

docker compose up -d

Der Aufruf erfolgt dann im Browser über localhost:3000 (falls der Port 3000 schon blockiert ist), das hier in der Override-Datei docker-compose.override.yml aus dem letzten Schritt hinzufügen:

services:
  api:
    ports:
      - "3080:3080"

16. Erreichbarkeit von Checkmk aus LibreChat prüfen (Windows)

MSYS_NO_PATHCONV=1 docker compose exec api node -e "fetch('https://cmkserver.fritz.box/SITENAME/').then(r => console.log(r.status, r.url)).catch(console.error)"

17. LibreChat starten (Browser)

Beim ersten Aufruf via localhost:3000 fragt LibreChat nach einem Account. Es gibt hier kein Standard-Login! Das erste erstellte Konto ist gleichzeitig das Admin-Konto.

18. MCP-Server verbinden (Browser)

Nun muss in der LibreChat-Oberfläche der bereits angezeigte Checkmk-MCP-Server verbunden und authentifiziert werden.

Dazu einfach in der Hauptnavigation die MCP-Einstellungen aufrufen und auf den Verbinden-Button klicken. Es erfolgt eine Weiterleitung nach Checkmk, wo sich ein Nutzer mit entsprechenden Rechten authentifizieren muss - daheim und der Einfachheit halber kann das das Admin-Konto sein.

19. MCP-Anbidung testen (Windows)

Optional kann man jetzt nochmal die Verbindung prüfen:

docker compose logs api --tail=150 | grep -i -E 'mcp|oauth|checkmk'

Aber eigentlich heißt es ab sofort: Spielen :)

Der Einfachheit halber könnte man sich zunächst alle Hosts auflisten lassen - aber freilich können GPT-6 und LibreChat viel mehr. Wie wäre es mit einem Balkendiagramm zur Anzahl von CPU-Kernen? Erstellt die KI flux im Mermaid-Format.

Troubleshooting

Es handelt sich um ein experimentelles Feature - es können sich also ständig Dinge ändern. Und letztlich sind allerlei Komponenten beteiligt, es kann also allerhand schiefgehen.

Die wichtigsten Informationsquellen sind derzeit der Knowledge-Base-Artikel sowie das Werk (Changelog-Eintrag bei Checkmk) zu MCP.

Einen offiziellen Handbuchartikel gibt es noch nicht, aber ich beeil' mich, versprochen ;) Link folgt dann. Wie weit da auf einzelne Clients, LLMs, APIs und dergleichen eingegangen werde kann, steht aber noch nicht fest.

Auch OAuth ist eine plausible Fehlerquelle, hier das Werk dazu.

Apropos: Der Knowledge-Base-Artikel sagt, die Authentifizierung würde auch per Bearer-Token funktionieren, also Passwort und Nutzername via URL statt OAuth. Das kann ich Stand heute mit meinem Setup nicht bestätigen! Vielmehr wollte ich mich um OAuth drücken, das vermeintlich einfachere Bearer-Prozedere nutzen und musste dann feststellen: Nope, da ist irgendwo ein Bug. Wie gesagt: Alles experimentell, alles im Fluss.

Vorsicht Kosten!

Ein Wort noch zu den Kosten: Vorsicht!

Bei meinen Tests habe ich mal eben 20 Euro an Tokens verpulvert - das geht mit wenigen Anfragen und Mini-Monitoring. Der größte Kostentreiber ist das Modell, hier war es GPT-6 Astra. Auch der Kontext treibt: Nutzt ein und denselben Chat für 50 Anfragen und die Kosten steigen und steigen. Und die Anzahl der Tools: Checkmk MCP Server bietet 13 eigenständige Tools, die auch einzeln genutzt werden können! Die Kurzversion dazu: Agent einrichten, Checkmk MCP Server hinzufügen und auf ein Tool, zum Beispiel get_availability beschränken.

Kurz: Ich würde dringend raten, die Kosten im Blick zu haben, Token-Nutzung zu limitieren und/oder den automatischen Nachkauf zu deaktivieren.

So oder so, am Ende leistet der MCP-Server schon jetzt als experimentelles Tool gute Arbeit - und macht wirklich Spaß! Vor allem, wenn man das Ding dann in ein Dashboard packt. Aber das ist wieder ein anderes Thema ...

LibreChat im Dashboard ;)

Mehr zu Checkmk.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Schaltfläche "Zurück zum Anfang"