Checkmk
to checkmk.com

1. Einleitung

Checkmk ist sehr modular aufgebaut und kann an vielen Stellen mit Python-Programmierkenntnissen erweitert werden. Unter anderem ist es möglich, Checkmk um folgende Elemente ausbauen:

  • Eigene Checks und Agentenplugins inklusive Eingabemasken für die Konfigurationsumgebung

  • Eigene Plugins für die Checkmk HW/SW-Inventur

  • Erweiterungen für die GUI (Ansichten, Dashboards, Spalten, Icons, etc.)

  • Definitionen von Graphen oder Perf-O-Metern

  • Benachrichtigungs- und Alert Handler-Skripte (auch in Shell oder anderen Skriptsprachen)

All diese Erweiterungen werden durch Ablage von zusätzlichen Dateien unterhalb des Verzeichnisses ~/local innerhalb der Checkmk-Instanz realisiert. Um diese Erweiterungen sinnvoll zu verwalten, innerhalb von verteilten Umgebungen auszurollen und auch mit anderen Anwendern auszutauschen, stellt Checkmk ein eigenes Paketformat bereit: das Checkmk-Erweiterungspaket — kurz MKP.

Ein MKP sammelt eine beliebige Menge von Erweiterungen — z.B. einen Satz Check-Plugins inklusive zugehöriger Handbuchseiten, der Konfigurationsumgebung für Schwellwerte und zugehörigen Metrikdefinitionen. Es kann darüber hinaus Einstellungen für die Verteilung via Agentenbäckerei enthalten. Das MKP hat einen Namen, eine Versionsnummer und kann mit einer einfachen Aktion installiert oder auch wieder entfernt werden.

Tipp: Verwenden Sie zur Erstellung und Anpassung von MKPs eine Testinstanz und kopieren Sie die MKPs für die Verteilung auf die produktiv genutzte Instanz. Dies wird Ihnen vor allem zwei potentielle Probleme ersparen, die entstehen, wenn geänderte Dateien nicht rechtzeitig zu MKPs gepackt werden:

  • Beim Checkmk-Update werden lokal geänderte Dateien durch den letzten Stand des MKPs überschrieben (dem Autor dieses Satzes ist genau dies passiert).

  • Im verteilten Setup wundern Sie sich, weil sich Plugins auf Remote-Instanzen anders verhalten als auf der Zentralinstanz, denn die Remote-Instanzen erhalten weiterhin den zuletzt gepackten Stand.

1.1. Die Checkmk Exchange

Auf der Checkmk Exchange können Plugin-Programmierer Pakete für andere Checkmk-Benutzer bereitstellen und untereinander austauschen. Von dort können Sie kostenlos Erweiterungen herunterladen und verwenden. Beachten Sie bei Paketen von der Exchange, dass diese durch andere Benutzer freiwillig und ohne jede Garantie bereitgestellt werden.

Unsauber programmierte Plugins können zu erhöhter Last und erhöhtem Arbeitsspeicherbedarf führen. Zudem ist es möglich, dass MKPs für ältere Versionen von CMK entwickelt wurden und so keine vollständige Kompatibilität vorhanden ist (von Version 1.6.0 auf 2.0.0 wechselte Checkmk von Python 2 auf Python 3). In Extremfällen droht Datenverlust. Wir empfehlen daher vor dem produktiven Einsatz fremder MKPs die Installation in einer Testinstanz.

1.2. Werkzeuge für MKPs

Zur Verwaltung von MKPs gibt es zwei Werkzeuge:

  • Den Kommandozeilenbefehl mkp

  • In den kommerziellen Editionen haben Sie zusätzlich den Setup-Menüeintrag Extension Packages

Beide sind miteinander kompatibel, so dass Sie mal den Kommandozeilenbefehl und mal Extension Packages verwenden können, ohne dass dabei etwas „durcheinander gerät“.

2. Erweiterungspakete über das Setup-Menü verwalten

CEE Die Möglichkeit MKPs über die GUI zu verwalten gibt es ausschließlich in den kommerziellen Editionen von Checkmk. Im Setup-Menü steigen Sie in die Verwaltung der MKPs über Setup > Maintenance > Extension packages ein. Hier können Sie MKPs hinzufügen, ändern oder neu erstellen:

mkp manager sidebar

2.1. Hinzufügen eines MKPs

Ein MKP, das Sie z.B. von der Exchange heruntergeladen haben, können Sie mit dem Knopf Upload package in Checkmk hochladen und so verfügbar machen. Dafür muss die Datei auf dem Rechner vorhanden sein, auf dem auch Ihr Webbrowser läuft. Die Dateiendung des Pakets muss .mkp sein.

mkp manager upload

Nach der Installation ist das Erweiterungspaket zunächst verfügbar, jedoch nicht aktiv. Es befindet sich unter All packages (enabled or disabled):

mkp manager present not active

2.2. Aktivierung eines MKPs

Erst mit dem Klick auf das Steckersymbol icon install wird ein verfügbares Paket auch aktiviert. Bei der Aktivierung werden die Dateien in einer Ordnerhierarchie unterhalb von ~/local/ installiert und eine Paketbeschreibungsdatei in ~/var/check_mk/packages/ abgelegt. Das Paket erscheint dann auch in der Liste der freigeschalteten und aktiven MKPs – Enabled (active on this site):

mkp manager list active

Nun führen Sie noch eine Aktivierung der Änderungen durch und alle Funktionen aus dem Paket sind im System verankert und stehen Ihnen bereit.

2.3. Pakete deaktivieren und entfernen

Auch die vollständige Löschung eines Paketes erfolgt zweistufig. Mit dem icon disabled deaktivieren Sie es zunächst in der Liste der aktiven Pakete. In diesem Schritt werden die installierten Dateien entfernt, aber das MKP wird weiter vorgehalten – dieser Schritt macht lediglich die Aktivierung rückgängig.

Über das Symbol icon delete in der Liste aller Pakete, können Sie installierte und nicht verwendete Pakete wieder löschen. Beim Löschen wird das Paket gelöscht und somit die Erweiterung komplett entfernt – also das Gegenteil des Hinzufügens eines Paketes.

2.4. MKPs in verteilten Umgebungen

Bei einem verteilten Setup reicht es, wenn Sie die Pakete auf der Zentralinstanz verfügbar machen. Für jede der Zentralinstanz zugeordneten Remote-Instanz können Sie dann separat bestimmen, ob die Anpassungen an diese Instanz übertragen werden sollen. Sie müssen dazu lediglich die Option Replicate extensions aktivieren. Danach werden bei der Synchronisation auch die MKPs und alle anderen Änderungen unterhalb des Verzeichnisses ~/local übertragen.

mkp distr wato

Ist die Übertragung nicht gewünscht, schalten Sie die Option für diese oder alle Instanzen einfach ab.

Wichtig: Die Anpassungen für das verteilte Setup werden nur übertragen, wenn die Option Enable replication auf Push configuration to this site eingestellt ist.

2.5. Sonderfall: Freigeschaltete, aber inaktive Pakete

Ein Sonderfall stellt der Aktivierungsversuch eines Paketes dar, das nicht zur verwendeten Checkmk-Version passt. Ein solches Paket, das zwar freigeschaltet ist, aber dessen Aktivierung wegen einer inkompatiblen Checkmk-Version fehlschlägt, landet in der Liste Enabled (inactive on this site).

mkp manager all states

Warum aber sollte man Pakete installieren, die nicht zur verwendeten Checkmk-Version passen? Dafür gibt es zwei gute Gründe:

  1. Das Update der Checkmk-Version: Sie haben die Möglichkeit, Pakete sowohl für die alte als auch für die neue Version vorzuhalten – beim Update wird dann automatisch das neuere aktiviert.

  2. Verteiltes Monitoring: Um Updates zu erleichtern, darf die Checkmk-Major-Version von Remote-Instanzen eine höher als die der Zentralinstanz sein. Dies erschwerte jedoch bislang die Verteilung von MKPs, denn diese mussten zu beiden Major-Versionen kompatibel sein. Mit der Möglichkeit, auch unpassende Pakete freizuschalten, können Sie in der Zentralinstanz jeweils Pakete vorhalten, die zur Ausgangs- und Zielversion passen. Beim Update wird dann automatisch das neuere aktiviert.

Aus den Versionsnummern im Screenshot können Sie entnehmen, dass es sich um eine Checkmk 2.1.0 Zentralinstanz handelte, die Pakete für Remote-Instanzen bereithält, welche bereits auf 2.2.0 aktualisiert wurden.

3. Erweiterungspakete auf der Kommandozeile verwalten

Alle oben genannten Aktionen können Sie auch auf der Kommandozeile ausführen. Dazu dient der Befehl mkp. Ruft man ihn ohne Subkommando auf, zeigt er Hinweise zur Verwendung. Die etwa 50 Zeilen lange Ausgabe haben wir auf weniger als die Hälfte abgekürzt:

OMD[mysite]:~$ mkp
usage: mkp [-h] [--debug] [--verbose] {find,inspect,show,show-all,files,list,add,...}

Command line interface for the Checkmk Extension Packages

options:
  -h, --help            show this help message and exit
  --debug, -d
  --verbose, -v         Be more verbose

available commands:
  {find,inspect,show,show-all,files,list,add,...}
    find                Show information about local files.
    inspect             Show manifest of an MKP file.
    show                Show manifest of a stored package.
    show-all            Show all manifests.
    files               Show all files beloning to a package.
    list                Show a table of all known files, including the deployment state.
    add                 Add an MKP to the collection of managed MKPs.
[...]

In den folgenden Abschnitten stellen wir Ihnen die wichtigsten Befehle zur Verwaltung von MKPs vor. Eine Befehlsreferenz in Tabellenform finden Sie am Ende dieses Artikels.

3.1. Hinzufügen eines MKPs

Das Hinzufügen eines Pakets geschieht mit mkp add. Dazu müssen Sie die MKP-Datei natürlich zunächst auf den Checkmk-Server bringen (z.B. mit scp). Anschließend führen Sie den folgenden Befehl aus:

OMD[mysite]:~$ mkp add /tmp/hello_world-0.2.2.mkp

Die Liste der vorhandenen Pakete rufen Sie mit mkp list ab. Nach der Installation ist das Erweiterungspaket zunächst verfügbar, jedoch nicht aktiv. Es hat den Zustand State: Disabled:

OMD[mysite]:~$ mkp list
Name        Version Title        Req. Version Until Version Files State
----------- ------- ------------ ------------ ------------- ----- --------
hello_world 0.2.2   Hello world! 2.2.0        2.2.99        6     Disabled

3.2. Aktivierung eines MKPs

Erst mit dem Subkommando enable wird ein verfügbares Paket auch aktiviert. Die Angabe der Versionsnummer ist nur in dem Fall erforderlich, dass der Name alleine nicht eindeutig ist:

OMD[mysite]:~$ mkp enable hello_world 0.2.2

Bei der Aktivierung werden die Dateien in einer Verzeichnishierarchie unterhalb von ~/local/ installiert und die Paketbeschreibungsdatei in ~/var/check_mk/packages/ abgelegt. Das Paket erhält dadurch den Zustand Enabled (active on this site):

OMD[mysite]:~$ mkp list
Name        Version Title        Req. Version Until Version Files State
----------- ------- ------------ ------------ ------------- ----- -----------------------------
hello_world 0.2.2   Hello world! 2.2.0        2.2.99        6     Enabled (active on this site)

Details über ein einzelnes Paket erfahren Sie mit mkp show, der Aktivierungszustand spielt dabei keine Rolle:

OMD[mysite]:~$ mkp show hello_world 0.2.2
Name:                          hello_world
Version:                       0.2.2
Packaged on Checkmk Version:   2023.01.16
Required Checkmk Version:      2.2.0
Valid until Checkmk version:   2.2.99
Title:                         Hello world!
Author:                        Mattias Schlenker
Download-URL:                  https://exchange.checkmk.com/p/hello-world
Files:
  Agent based plugins (Checks, Inventory)
    hello_world.py
  Agents
    plugins/hello_world
  Checks' man pages
    hello_world
  Legacy GUI extensions
    plugins/metrics/helloworld_metric.py
    plugins/perfometer/helloworld_perfometer.py
    plugins/wato/helloworld_parameters.py
Description:
  This is a very basic plugin with the sole purpose to be used as template for your own plugin development.

3.3. Pakete deaktivieren und entfernen

Die Deinstallation eines Pakets geschieht in zwei Stufen. Zunächst wird das Paket mit mkp disable deaktiviert. Dies löscht installierte Dateien, hält das Paket aber – beispielsweise für eine spätere erneute Aktivierung – weiterhin vor. Die Angabe der Versionsnummer ist auch hier nur in dem Fall erforderlich, dass der Name alleine nicht eindeutig ist:

OMD[mysite]:~$ mkp disable hello_world 0.2.2

In der Paketliste sehen Sie nun den Zustand Disabled, wenn Sie ein weiteres mal mkp list aufrufen:

OMD[mysite]:~$ mkp list
Name        Version Title        Req. Version Until Version Files State
----------- ------- ------------ ------------ ------------- ----- --------
hello_world 0.2.2   Hello world! 2.2.0        2.2.99        6     Disabled

Erst mkp remove löscht das Paket unwiderruflich:

OMD[mysite]:~$ mkp remove hello_world 0.2.2

3.4. Sonderfall: Freigeschaltete, aber inaktive Pakete

Ein Sonderfall stellt die Installation eines Paketes dar, das nicht zur verwendeten Checkmk-Version passt:

OMD[mysite]:~$ mkp install /tmp/hello_world-0.2.3.mkp
The package requires Check_MK version 2.3.0, but you have 2.2.0b1 installed.

Ein solches Paket können Sie zwar freischalten. Dessen Aktivierung schlägt dann aber wegen der inkompatiblen Checkmk-Version fehl und erhält den Zustand Enabled (inactive on this site).

OMD[mysite]:~$ mkp list
Name        Version Title        Req. Version Until Version Files State
----------- ------- ------------ ------------ ------------- ----- -------------------------------
hello_world 0.2.3   Hello world! 2.3.0        2.3.99        6     Enabled (inactive on this site)
hello_world 0.2.2   Hello world! 2.2.0        2.2.99        6     Enabled (active on this site)

Die Gründe für die Installation inkompatibler Pakete – Updates und verteilte Umgebungen – erklären wir oben im entsprechenden Setup-Schritt. Ebenso analog zum Vorgehen im Setup verwenden Sie mkp enable paketname version, um ein Paket freizuschalten, respektive mkp disable paketname version, um eine vorhandene Freischaltung aufzuheben.

4. MKPs für Entwickler

Die meisten von uns, die programmieren können oder lernen, sind gleichsam Zwerge, die auf den Schultern von Riesen sitzen, um mehr und Entfernteres als diese sehen zu können: Gerade im Open Source Bereich können wir vom früheren Schaffen anderer profitieren. Im Falle von Checkmk gilt dies ganz besonders für Erweiterungen, welche im Sinne der GPL abgeleitete Werke von Checkmk selbst sind, die wiederum der GPL (Version 2.0) unterliegen. Konkret bedeutet dies, dass Sie in der Checkmk Exchange heruntergeladene Pakete nach Herzenslust (oder einfach aktuellem Bedarf) anpassen können.

In den folgenden Abschnitten zeigen wir – angefangen vom neu paketieren mit kleinen Änderungen, über Auflösen eines vorhandenen (Beispiel-) Paketes, hin zur Zusammenstellung unpaketierter Dateien – alle relevanten Schritte in ihrer typischen Reihenfolge.

Wenn Sie selbst Plugins für Checkmk programmieren oder modifizieren, beachten Sie die Artikel zu den vorhandenen Programmierschnittstellen, der Integration in die Agentenbäckerei sowie die Richtlinien für Check-Plugins.

4.1. Pakete editieren

Oft macht die Korrektur kleinerer Fehler die Anpassung eines vorhandenen Paketes notwendig, ohne dass Struktur oder Name geändert werden sollen. In diesem Fall ist es ratsam, nicht nur die im Dateisystem abgelegten Dateien anzupassen, sondern zumindest auch die Versionsnummer zu aktualisieren. Erfordern Änderungen der APIs von Checkmk-Modifikationen an einem Paket, passen Sie zudem die im Paket hinterlegten Versionsnummern für minimal und maximal unterstützte Versionen an. Bei Verwendung der Agentenbäckerei triggert zudem das Vorhandensein neuer MKPs den Neubau der Agentenpakete.

In den kommerziellen Editionen verwenden Sie das Symbol icon edit, um zum Änderungsdialog zu gelangen.

mkp edit description

Benutzer der CRE Checkmk Raw Edition gehen stattdessen die beiden folgenden Schritte über auflösen und neu erstellen.

4.2. Pakete auflösen

Setup-Menü

Das icon release mkp Auflösen eines Paketes entlässt die paketierten Dateien unter ~/local/ sozusagen "in die Freiheit" und entfernt nur die Paketbeschreibung. Als Ergebnis sind die Dateien dann unpaketiert und die Erweiterungen weiterhin aktiv. Dies ist das Gegenteil des Erzeugens eines Pakets aus bisher unpaketierten Dateien.

In der Praxis werden Sie das Auflösen von Paketen am ehesten benötigen, wenn Sie eine Erweiterung anpassen und später mit Änderungen neu paketieren wollen. Zum Beispiel können Sie mit unserem Hello world! Beispiel, welches nichts sinnvolles tut, aber als Vorlage für das erste eigene Paket dienen kann, loslegen.

Kommandozeile

Auf der Kommandozeile lösen Sie ein Paket mit mkp release auf. Das aufzulösende Paket muss hierfür den Zustand Enabled (active on this site) haben. Dabei bleiben die Erweiterungsdateien erhalten und nur die Paketbeschreibung wird gelöscht:

OMD[mysite]:~$ mkp release hello_world

Das ursprüngliche Paket bleibt hierbei erhalten und wechselt den Zustand auf Enabled (inactive on this site). Es kann so auch als Backup für den Fall dienen, dass bei der Anpassung etwas schiefgeht. Löschen Sie dann einfach die "entlassenen" Dateien, aktivieren Sie das Paket erneut und beginnen Sie von vorn.

4.3. Unpaketierte Dateien finden

Setup-Menü

Sind die Programmier- oder Anpassungsarbeiten abgeschlossen, gilt es, die vorhandenen und hinzugefügten Dateien wieder zu finden. Da diese Dateien momentan zu keinem Paket gehören, werden sie im Setup unter Unpackaged files aufgelistet:

mkps unpackaged
Liste der Unpackaged files und der Knopf Create package

Kommandozeile

Das Äquivalent auf der Kommandozeile ist mkp find:

OMD[mysite]:~$ mkp find
File                                        Package Version Part                                    Mode
------------------------------------------- ------- ------- --------------------------------------- ----------
hello_world.py                                              Agent based plugins (Checks, Inventory) -rw-r--r--
plugins/hello_world                                         Agents                                  -rwxr-xr-x
hello_world                                                 Checks' man pages                       -rw-r--r--
plugins/perfometer/helloworld_perfometer.py                 Legacy GUI extensions                   -rw-r--r--
plugins/metrics/helloworld_metric.py                        Legacy GUI extensions                   -rw-r--r--
plugins/wato/helloworld_parameters.py                       Legacy GUI extensions                   -rw-r--r--

Löschen Sie nicht benötigte Dateien, beziehungsweise notieren Sie, welche noch nicht mit ins Paket gepackt werden sollen. Im nächsten Schritt werden die unpaketierten Dateien dann (wieder) zu einem Paket zusammengefasst.

4.4. Pakete erstellen

Setup-Menü

Über den Knopf icon new mkp Create package in der Übersicht der unpaketierten Dateien gelangen Sie zum Dialog zum Erstellen eines neuen Pakets:

mkps create

Neben den offensichtlichen Angaben ist es wichtig, dass Sie mindestens eine Datei auswählen, die eingepackt werden soll. Durch das Erstellen wird eine Paketbeschreibung unter ~/var/check_mk/packages/ angelegt, welche neben den allgemeinen Angaben auch die Liste der enthaltenen Dateien beinhaltet. Die maximal unterstützte Checkmk-Version ist natürlich ohne Glaskugel schwer vorherzusagen. Derzeit sind für Checkmk 2.3.0 keine tief greifenden Änderungen geplant. Daher dient die maximale Checkmk-Version vor allem bei der Verteilung über die Exchange dazu, ältere Pakete zu identifizieren, die intensivere Tests und möglicherweise Anpassungen benötigen. Auch für die Abwärtskompatibilität zu 2.0.0 und 2.1.0 gilt, dass Sie wegen einiger kleiner Änderungen zumindest testen sollten.

Dieses Paket können Sie nun in der Paketliste mit dem Symbol icon download als MKP-Datei herunterladen, um es z.B. auf ein anderes System zu übertragen oder auf die Exchange hochzuladen.

Kommandozeile

Die Vorgehensweise zum Erstellen von MKPs auf der Kommandozeile ist analog zum Setup-Menü. Zunächst erzeugen Sie mit mkp template eine Paketkonfiguration, welche (vorerst) all diese Dateien beinhaltet. Geben Sie als Parameter den gewünschten Namen des neuen Pakets an:

OMD[mysite]:~$ mkp template hello_world_ng
Created 'tmp/check_mk/hello_world_ng.manifest.temp'.
You may now edit it.
Create the package using mkp package tmp/check_mk/hello_world_ng.manifest.temp.

Die Eigenschaften des Pakets editieren Sie nun mit einem Texteditor:

tmp/check_mk/hello_world_ng.manifest.temp
{'author': 'Add your name here',
 'description': 'Please add a description here',
 'download_url': 'https://example.com/hello_world_ng/',
 'files': {'agent_based': ['hello_world.py'],
           'agents': ['plugins/hello_world'],
           'checkman': ['hello_world'],
           'web': ['plugins/metrics/helloworld_metric.py',
                   'plugins/perfometer/helloworld_perfometer.py',
                   'plugins/wato/helloworld_parameters.py']},
 'name': 'hello_world_ng',
 'title': 'Title of hello_world_ng',
 'version': '1.0.0',
 'version.min_required': '2.2.0',
 'version.packaged': '2.2.0b1',
 'version.usable_until': None}

Bearbeiten Sie diese Datei nach Ihren Wünschen. Achten Sie dabei auf korrekte Python-Syntax. Unicode-Zeichenketten (Texte, die nicht-ASCII-Zeichen wie Umlaute enthalten) müssen mit einem kleinen vorangestellten u gekennzeichnet werden.

Unter dem Eintrag files können Sie Dateien entfernen, welche nicht paketiert werden sollen. Tragen Sie unter version.min_required die Mindestversion von Checkmk ein, die erforderlich ist, um das Paket zu verwenden.

Anschließend können Sie mit mkp package eine MKP-Datei erzeugen:

OMD[mysite]:~$ mkp package tmp/check_mk/hello_world_ng.manifest.temp
[hello_world_ng 1.0.0]: Installing

Abgelegt werden Pakete unter ~/var/check_mk/packages_local:

OMD[mysite]:~$ ll ~/var/check_mk/packages_local/*.mkp
-rw-rw---- 2 mysite mysite 4197 Feb 20 13:19 hello_world_ng-1.0.0.mkp

5. Das MKP-Paketformat

Möglicherweise möchten Sie Erweiterungspakete auf einem Entwicklungsrechner programmieren und packen, um dann das fertige Paket zum Checkmk-Server zu übertragen und dort zu testen. Das ist recht einfach möglich, weil das MKP-Format lediglich eine .tar.gz Datei ist, die wiederum .tar Dateien und Manifest-Dateien enthält.

Die Untersuchung der heruntergeladenen hello_world-0.1.3.mkp gibt die erste Stufe der Struktur preis:

user@host:~$ tar tvf hello_world-0.1.3.mkp
-rw-r--r-- 0/0            1153 2021-10-08 09:35 info
-rw-r--r-- 0/0             973 2021-10-08 09:35 info.json
-rw-r--r-- 0/0           10240 2021-10-08 09:35 agent_based.tar
-rw-r--r-- 0/0           10240 2021-10-08 09:35 checkman.tar
-rw-r--r-- 0/0           10240 2021-10-08 09:35 agents.tar
-rw-r--r-- 0/0           10240 2021-10-08 09:35 web.tar

Entpacken Sie das Paket in ein temporäres Verzeichnis, können Sie die Inhalte der enthaltenen Tar-Archive anschauen. Die Pfade sind relativ zum Verzeichnis, das die jeweiligen Komponenten enthält:

user@host:~$ tar tvf web.tar
-rw-r--r-- 0/0 698 2021-10-08 09:04 plugins/metrics/helloworld_metric.py
-rw-r--r-- 0/0 676 2021-10-08 09:04 plugins/perfometer/helloworld_perfometer.py
-rw-r--r-- 0/0 2383 2021-10-08 09:27 plugins/wato/helloworld_parameters.py

Und was ist mit den beiden Manifest-Dateien info und info.json? Die Datei info und Ihre im Python-Dict-Format enthaltenen Felder haben Sie weiter oben kennengelernt. Das JSON-Äquivalent info.json enthält exakt die gleichen Felder und Werte, wurde aber im JSON-Format serialisiert. Falls Sie den Paketbau in einem Skript durchführen wollen, sollten Sie die Python-Dict-Datei info einlesen und vor dem Packen daraus die JSON-Datei info.json generieren.

Wenn Sie die Archive neu packen, achten Sie darauf, keine Pfade miteinzupacken, die nicht Teil der Ordnerhierarchie unter ~/local sind. Auf der obersten Ebene dürfen nur die oben zu sehenden Manifeste und Tar-Dateien enthalten sein. Packen Sie hier zudem mit UID und GID 0.

6. Befehlsreferenz

6.1. Verwaltung

Subkommando Parameter Verwendungszweck

add

Dateiname des hinzuzufügenden Pakets

Macht ein Paket verfügbar, aktiviert es aber noch nicht.

enable

Name des Pakets (und ggf. Versionsnummer)

Aktiviert ein Paket je nach Versionskompatibilität für lokale Verwendung oder Verteilung an Remote-Instanzen.

disable

Name des Pakets und Versionsnummer

Deaktiviert ein Paket, das im Dateisystem verfügbar bleibt.

remove

Name des Pakets und Versionsnummer

Entfernt ein zuvor deaktiviertes Paket vollständig.

install

Dateiname des hinzuzufügenden Pakets

Dieses Subkommando ist abgekündigt und wird bald entfernt werden!

list

keine

Listet alle verfügbaren Pakete und deren Aktivierungszustand auf.

inspect

Dateiname des zu untersuchenden Pakets

Zeigt Informationen zu einem nicht installierten MKP.

show

Name des Pakets (und ggf. Versionsnummer)

Zeigt Informationen zu einem verfügbaren MKP.

show-all

keine

Zeigt Informationen zu allen verfügbaren MKPs.

files

Name des Pakets (und ggf. Versionsnummer)

Listet alle zu einem Paket gehörenden Dateien auf.

6.2. Entwicklung

Subkommando Parameter Verwendungszweck

release

Name des Pakets

Löst ein aktives Paket auf.

find

keine

Listet alle zu keinem Paket gehörenden Dateien auf.

template

Name des neu zu erstellenden Pakets

Erstellt eine Manifest-Datei als Basis für ein neues Paket.

package

Pfad zur Manifest-Datei

Erstellt auf Basis des Inhalts einer Manifest-Datei ein MKP.

6.3. Updates

Subkommando Parameter Verwendungszweck

disable-outdated

keine

Deaktiviert nach einem Update nicht mehr zur Checkmk-Version passende Pakete.

update-active

keine

Aktiviert nach einem Update die zur Checkmk-Version passenden Pakete.

Auf dieser Seite