Checkmk
to checkmk.com

1. Einleitung

CEE Die Checkmk-Erweiterungspakete (MKPs) können neben funktionalen Erweiterungen auch solche für die Benutzeroberfläche (GUI) verpacken, also Dashboards, Ansichten oder Berichte. Das Besondere daran: Sie können derlei MKPs in den kommerziellen Editionen direkt über die Weboberfläche erstellen, externe Dateien oder Werkzeuge werden nicht benötigt. Alternativ steht dafür natürlich auch die Kommandozeile zur Verfügung, ebenfalls exklusiv in den kommerziellen Editionen.

Die MKPs lassen sich dann intern mit weiteren Nutzern und Checkmk-Installationen teilen und natürlich auch über die Checkmk Exchange. Doch auch ohne Beteiligung der Community oder weiterer Instanzen kann es nützlich sein, komplexe Kreationen zu paketieren.

Wird beispielsweise ein Dashboard mit der Option Make this dashboard available for other users erstellt, steht dieses allen oder einigen Nutzern ebenfalls zur Verfügung. Löschen Nutzer ihre Dashboards dann aber irgendwann wieder, sind sie natürlich auch für alle anderen verloren — sofern sie sich nicht rechtzeitig persönliche Kopien angefertigt haben. Da bietet es sich an, dass mit entsprechenden Rechten ausgestattete Nutzer Dashboards bei Bedarf als Erweiterung zur Verfügung stellen.

Auch eine Versionierung von Dashboards wird so möglich — nützlich für reibungslose Updates.

Das Vorgehen zum Erstellen von MKPs ist für alle Arten von GUI-Erweiterungen identisch, daher beschränken wir uns im Folgenden auf das Beispiel Dashboard.

Voraussetzung: Nutzer benötigen die Berechtigung Manage Extension Packages (MKPs).

2. Weboberfläche

2.1. GUI-MKPs erstellen

Los geht es in der Dashboard-Liste unter Customize > Visualization > Dashboards. Wenn Sie bereits ein eigenes Dashboard angelegt haben, können Sie damit arbeiten. Ansonsten erstellen Sie eine private Kopie eines beliebigen eingebauten Dashboards. In beiden Fällen ist Ihr Ausgangspunkt ein Dashboard im Bereich Customized.

Liste mit angepassten Dashboards.

Über Icon für das Klonen von Elementen. Clone this dashboard for packaging as extension package erstellen Sie aus dem Dashboard eine Erweiterung, die anschließend im Bereich Extensions gelistet wird:

Listen mit angepassten und als Erweiterungen geführten Dashboards.

Von hier aus gelangen Sie über Icon, das zum Paketmanagement führt. Go to extension packages zur Verwaltung der Erweiterungspakete. Ihre unpaketierten Erweiterungen, beziehungsweise Dateien, sehen Sie unter Packages > List unpackaged files.

Liste mit GUI-Erweiterungen.

Über icon new mkp Create Package erstellen Sie nun das Paket.

Einstellungsdialog eines zu paketierenden Dashboards.

In den Paketeinstellungen fügen Sie unten unter Packaged files die eben erstellte GUI-Erweiterung ein. Natürlich können dies auch mehrere Dashboards oder sonstige Elemente sein. Ansonsten müssen Sie vor allem auf die korrekten Versionsinformationen achten. Zum einen benötigt das Paket selbst eine Versionsnummer. Diese muss den Richtlinien des Semantic Versioning folgen, also zum Beispiel 1.0.0. Zum anderen können Sie die minimal und maximal unterstützten Checkmk-Versionen angeben. Praktisch ist die Versionierung für Checkmk-Updates und verteiltes Monitoring mit Instanzen mit unterschiedlichen Checkmk-Versionen (mehr dazu im MKP-Artikel).

Nach der Paketierung werden Ihre Pakete auf der Startseite der Erweiterungspakete gelistet — hier im Beispiel in zwei unterschiedlichen Versionen, ein mal aktiviert, ein mal deaktiviert:

Versionierte und paketierte Erweiterungen in der Übersicht.

Unter All packages (enabled or disabled) haben Sie nun die Möglichkeit, die Pakete als MKP-Dateien herunterzuladen.

2.2. GUI-MKPs installieren

Die Installation von Paketen ist weitgehend selbsterklärend. Zunächst laden Sie das gewünschte Paket unter Setup > Maintenance > Extension packages über Icon für den Paket-Upload. Upload package hoch.

Upload-Formular für Erweiterungspakete mit Dashboard-MKP.

Das Paket landet wieder in der Tabelle All packages (enabled or disabled) und kann dort über Icon zum Aktivieren von Erweiterungen. aktiviert werden.

Hochgeladenes, nicht aktiviertes Paket in der Paketverwaltung.

3. Kommandozeile

3.1. GUI-MKPs erstellen

Alternativ können Sie auch über die Kommandozeile paketieren. Das Vorgehen entspricht exakt dem Paketieren funktionaler Erweiterungen, wie im MKP-Artikel ausführlich beschrieben. Daher hier nur die Kurzversion:

  1. Erstellen des Dashboards.

  2. Wechsel auf die Kommandozeile als Instanzbenutzer.

  3. Nicht paketierte Dateien auflisten:
    mkp find

  4. Erstellen der Paketkonfiguration:
    mkp template mydashboard

  5. Bearbeiten der Konfiguration in:
    ~/tmp/check_mk/mydashboard.manifest.temp

  6. Erstellen des Pakets mit:
    mkp package tmp/check_mk/mydashboard.manifest.temp

  7. Paket wird gespeichert unter:
    /var/check_mk/packages_local/mydashboard-1.0.0.mkp

3.2. GUI-MKPs installieren

Wenn Sie derlei MKPs nun installieren und aktivieren möchten:

  1. Installieren:
    mkp add /tmp/mydashboard-1.0.0.mkp

  2. Aktivieren:
    mkp enable mydashboard-1.0.0.mkp

Befehlsreferenzen, eine Beschreibung des MKP-Formats und weitere Hinweise finden Sie im MKP-Artikel.

CRE Hinweis für Nutzer von Checkmk Raw: Auch hier können Sie GUI-Erweiterungen wie alle anderen MKPs installieren. Da die kommerziellen Editionen jedoch einige exklusive visuelle Elemente (etwa Dashlets) enthalten, könnten Sie über eine Meldung folgender Art stolpern:
Dashlet type 'state_host' could not be found. Please remove it from your dashboard configuration.
Hier fehlt also ein einzelnes Dashlet, das übrige Dashboard ist aber weiterhin nutzbar.

4. Dateien und Verzeichnisse

Pfad Bedeutung

~/local/lib/check_mk/gui/plugins/views

Ablageort für als Erweiterung geklonte Ansichten.

~/local/lib/check_mk/gui/plugins/reports

Ablageort für als Erweiterung geklonte Berichte.

~/local/lib/check_mk/gui/plugins/dashboards

Ablageort für als Erweiterung geklonte Dashboards.

~/tmp/check_mk/mydashboard.manifest.temp

Konfigurationsdatei zum Erstellen des Pakets.

~/var/check_mk/packages_local/

Ablageort für installierte MKPs.

~/local/share/check_mk/enabled_packages/

Ablageort für aktivierte MKPs.

Auf dieser Seite