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
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:
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.
Nach der Installation ist das Erweiterungspaket zunächst verfügbar, jedoch nicht aktiv. Es befindet sich unter All packages (enabled or disabled):
2.2. Aktivierung eines MKPs
Erst mit dem Klick auf das Steckersymbol 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):
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 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 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.
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).
Warum aber sollte man Pakete installieren, die nicht zur verwendeten Checkmk-Version passen? Dafür gibt es zwei gute Gründe:
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.
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 , um zum Änderungsdialog zu gelangen.
Benutzer der Checkmk Raw Edition gehen stattdessen die beiden folgenden Schritte über auflösen und neu erstellen.
4.2. Pakete auflösen
Setup-Menü
Das 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:
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 Create package in der Übersicht der unpaketierten Dateien gelangen Sie zum Dialog zum Erstellen eines neuen Pakets:
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 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:
{'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 |
---|---|---|
|
Dateiname des hinzuzufügenden Pakets |
Macht ein Paket verfügbar, aktiviert es aber noch nicht. |
|
Name des Pakets (und ggf. Versionsnummer) |
Aktiviert ein Paket je nach Versionskompatibilität für lokale Verwendung oder Verteilung an Remote-Instanzen. |
|
Name des Pakets und Versionsnummer |
Deaktiviert ein Paket, das im Dateisystem verfügbar bleibt. |
|
Name des Pakets und Versionsnummer |
Entfernt ein zuvor deaktiviertes Paket vollständig. |
|
Dateiname des hinzuzufügenden Pakets |
Dieses Subkommando ist abgekündigt und wird bald entfernt werden! |
|
keine |
Listet alle verfügbaren Pakete und deren Aktivierungszustand auf. |
|
Dateiname des zu untersuchenden Pakets |
Zeigt Informationen zu einem nicht installierten MKP. |
|
Name des Pakets (und ggf. Versionsnummer) |
Zeigt Informationen zu einem verfügbaren MKP. |
|
keine |
Zeigt Informationen zu allen verfügbaren MKPs. |
|
Name des Pakets (und ggf. Versionsnummer) |
Listet alle zu einem Paket gehörenden Dateien auf. |
6.2. Entwicklung
Subkommando | Parameter | Verwendungszweck |
---|---|---|
|
Name des Pakets |
Löst ein aktives Paket auf. |
|
keine |
Listet alle zu keinem Paket gehörenden Dateien auf. |
|
Name des neu zu erstellenden Pakets |
Erstellt eine Manifest-Datei als Basis für ein neues Paket. |
|
Pfad zur Manifest-Datei |
Erstellt auf Basis des Inhalts einer Manifest-Datei ein MKP. |
6.3. Updates
Subkommando | Parameter | Verwendungszweck |
---|---|---|
|
keine |
Deaktiviert nach einem Update nicht mehr zur Checkmk-Version passende Pakete. |
|
keine |
Aktiviert nach einem Update die zur Checkmk-Version passenden Pakete. |