Checkmk
to checkmk.com

1. Einleitung

Das Update von Checkmk auf eine neue Version läuft etwas anders als bei anderer Software. Warum?

Grund ist, dass Checkmk nicht nur mehrere unabhängige Instanzen (sites) auf einem Server erlaubt, sondern auch mehrere gleichzeitig installierte Software-Versionen. Dabei ist jede Instanz einer installierten Version zugeordnet. Nehmen Sie als Beispiel folgende Situation auf einem fiktiven Server:

update1

Hier verwendet die Instanz mysite1 die Version 2.0.0p3.cee, die Instanzen mysite2 und mysite3 die Version 2.0.0p1.cre. Die Checkmk-Version 2.0.0p1.cfe ist zwar installiert, wird aber aktuell nicht verwendet.

Dieses Beispiel macht klar, dass ein Update nicht einfach nur die Installation eines neuen RPM/DEB-Pakets von Checkmk auf dem Server bedeuten kann. Vielmehr braucht es dazu noch einen weiteren Schritt. Nehmen Sie nun als Beispiel folgende Situation:

update2

Hier soll die Instanz mysite auf die Checkmk-Version 2.0.0p3.cee aktualisiert werden. Der erste Schritt ist das Herunterladen und Installieren des passenden RPM/DEB-Pakets. Dies geschieht genauso wie bei der ersten Installation. Die neu installierte Version wird zunächst noch von keiner Instanz verwendet und das sieht dann so aus:

update3

Als zweiter Schritt erfolgt nun ein Update der Instanz von 2.0.0p1.cre auf 2.0.0p3.cee. Dies geschieht durch den Befehl omd update, welchen Sie weiter unten im Detail kennenlernen:

update4

Nach dem Update können Sie die (eventuell) nicht mehr benötigte Version 2.0.0p1.cre durch das Deinstallieren des entsprechenden Pakets entfernen.

2. Vor dem Update

Falls Sie ein Update der Checkmk-Version 2.0.0 auf 2.1.0 planen, sollten Sie zuerst den Artikel Update auf Version 2.1.0 lesen, in dem wir die wichtigsten Themen zusammengetragen haben, die Sie vor und nach einem solchen Update beachten sollten.

Aber auch, wenn Sie bereits eine 2.1.0-Version installiert haben und auf eine neue stabile Patch-Version der 2.1.0 updaten wollen, können die in den folgenden Abschnitten beschriebenen Themen relevant sein.

2.1. Update auf Major-Version

Bei einem Update auf eine Major-Version sollten Sie immer direkt auf die nächste Version aktualisieren und nicht einfach welche überspringen. Wenn Sie also beispielsweise von 1.6.0 auf 2.1.0 aktualisieren wollen, aktualisieren Sie zunächst auf die 2.0.0. Der Grund ist simpel: Zwischen zwei Major-Versionen gibt es bisweilen schlicht so viele Änderungen, dass es beim Überspringen zu Problemen kommen kann. Diese Empfehlung setzt omd update durch eine Sperre um und gibt gegebenenfalls eine entsprechende Warnmeldung aus. Dennoch können Sie ein solches Updates durchführen, indem Sie den Vorgang mit der Option -f erzwingen:

OMD[mysite]:~$ omd -f update

Achtung: Auf diese Weise aktualisierte Instanzen werden von uns nicht mehr unterstützt!

Der Befehl omd update ermöglicht auch die Aktualisierung auf eine niedrigere Version. Nach einem solchen Update in die Rückwärtsrichtung sind allerdings viele Anpassungen nötig, um Konfiguration und Laufzeitumgebung wieder kompatibel zu machen — insbesondere, aber nicht nur, bei einem Update auf eine niedrigere Major-Version. Daher raten wir von diesem Vorgehen ab — und können auch bei einem Update auf eine niedrigere Version keinen Support mehr bieten.

2.2. Lokale Dateien

Mit lokalen Dateien können Sie die von Checkmk bereitgestellte Funktionalität anpassen und erweitern. Diese Dateien befinden sich im lokalen Teil der Instanzverzeichnisstruktur, d. h. in ~/local. Lokale Dateien können bei einem Update Probleme bereiten, da sie eventuell nicht mehr zur neuen Checkmk-Version passen.

Da es für Checkmk bei einem Update nicht möglich ist, die lokalen Anpassungen und jede von einem Drittanbieter hergestellte Erweiterung abzufangen und zu behandeln, sollten Sie Ihre Checkmk-Instanz vor einem Update daraufhin überprüfen, ob lokale Dateien bei Ihnen verwendet werden und gegebenenfalls welche.

Verschaffen Sie sich einen Überblick über die lokalen Dateien Ihrer Checkmk-Instanz, indem Sie als Instanzbenutzer das folgende Kommando ausführen (bei dem die Option -L dafür sorgt, dass auch symbolischen Links gefolgt wird):

OMD[mysite]:~$ find -L ~/local -type f

In einer frischen Installation von Checkmk wird Ihnen derzeit nur eine Datei namens README.TXT aufgelistet. Alles, was darüber hinaus angezeigt wird, sollte ganz oben auf Ihrer Liste zur Fehlerdiagnose stehen, falls es beim Update Probleme gibt.

2.3. Inkompatible und obsolete MKPs

Über die Checkmk Erweiterungspakete (MKPs) lässt sich Ihr Monitoring-System recht einfach und bequem erweitern. Auf der einen Seite kommt es dabei vor, dass solche MKPs nicht weiter gepflegt werden und dann ggf. mit neuen Versionen von Checkmk nicht mehr kompatibel sind. Auf der anderen Seite nehmen wir immer wieder neue Plugins und Funktionserweiterungen in Checkmk auf, weshalb MKPs mitunter obsolet werden. Ihre Funktionalität wird schlicht von Checkmk selbst sichergestellt.

Falls Sie MKPs installiert haben, ist aus diesem Grund eine Prüfung dieser MKPs dringend geboten. So verhindern Sie, dass inkompatible Pakete das Update behindern oder im Anschluss an das Update doppelte oder zumindest sehr ähnliche Services entstehen.

Prüfen Sie hierzu Ihre installierten MKPs gegen unseren Katalog der Check-Plugins und entfernen Sie Pakete, welche inzwischen nativ von Checkmk bereitgestellt werden. Bei dieser Gelegenheit können Sie auch MKPs entfernen, die eventuell nur mal für einen Probelauf installiert worden sind. Eine Auflistung finden Sie im Setup-Menü unter Maintenance > Extension packages. Auf der Kommandozeile können Sie sich installierte Erweiterungen und auch unpaketierte Dateien mit den folgenden Befehlen anzeigen lassen:

OMD[mysite]:~$ mkp list
OMD[mysite]:~$ mkp find

Überprüfen Sie die Ausgaben dieser Befehle auf Erweiterungen und Dateien, die nicht mehr benötigt werden oder die Sie gar nicht mehr zuordnen können. Um deren Einfluss auf das Update zu prüfen, können Sie Kopien dieser Erweiterungen und Dateien anlegen und zumindest vorübergehend aus Ihrer Checkmk-Instanz entfernen.

3. Update von Checkmk

3.1. Installation neuer Versionen

Wie in der Einleitung beschrieben, ist der erste Schritt beim Update die Installation der gewünschten neuen Version von Checkmk. Dies erfolgt genau wie bei der ersten Installation  —  allerdings wird es wohl etwas schneller gehen, weil die meisten abhängigen Pakete jetzt schon installiert sind. In folgendem Beispiel installieren wir das Paket für Ubuntu 20.04 (Focal Fossa):

root@linux# apt install /tmp/check-mk-enterprise-2.1.0p1_0.focal_amd64.deb

Hinweis: Wenn Sie ein lokal vorliegendes Paket mit apt install installieren, müssen Sie den vollständigen Pfad zu der .deb-Datei angeben.

Die Liste der installierten Checkmk-Versionen können Sie jederzeit mit dem Befehl omd versions abrufen:

root@linux# omd versions
1.6.0p22.cre
2.0.0p2.cre
2.1.0p1.cee (default)

Eine dieser Versionen ist mit (default) markiert. Diese Defaultversion wird automatisch beim Anlegen von neuen Instanzen verwendet, sofern Sie nicht mit omd -V myversion create mysite eine andere angeben. Die aktuelle Defaultversion können Sie mit omd version abfragen und mit omd setversion ändern:

root@linux# omd version
OMD - Open Monitoring Distribution Version 2.0.0p3.cee
root@linux# omd setversion 2.1.0p1.cre
root@linux# omd version
OMD - Open Monitoring Distribution Version 2.1.0p1.cre

Beim Verwalten bestehender Instanzen spielt die Defaultversion keine Rolle. Der omd-Befehl startet immer mit der Version, die zur Instanz passt, für die der Befehl aufgerufen wird.

Eine Auflistung der aktuellen Instanzen und welche Versionen diese verwenden liefert der Befehl omd sites:

root@linux# omd sites
SITE             VERSION          COMMENTS
mysite           1.6.0p22.cre
test             2.1.0p1.cee      default version

3.2. Durchführen des Updates

Nachdem die gewünschte neue Version installiert ist, können Sie das Update der Instanz durchführen. Dazu sind keine root-Rechte erforderlich. Machen Sie das Update am besten als Instanzbenutzer:

root@linux# omd su mysite

Stellen Sie sicher, dass die Instanz gestoppt ist:

OMD[mysite]:~$ omd stop

Das Updaten — also eigentlich das Umschalten auf eine andere Version — geschieht nun einfach mit dem Befehl omd update:

OMD[mysite]:~$ omd update

Falls es mehr als eine mögliche Zielversion gibt, bekommen Sie diese zur Auswahl:

update omd update 2

Bestätigen Sie in der folgenden Dialogbox das gewählte Update auf die neue Version:

update omd update 3

Beim Update von einer Raw Edition auf eine der CEE Checkmk Enterprise Editions werden Sie sicherheitshalber noch einmal auf diesen Umstand hingewiesen:

update raw to enterprise

Ein wichtiger Teil des Updates ist das Aktualisieren von mitausgelieferten Konfigurationsdateien. Dabei werden von Ihnen eventuell vorgenommene Änderungen in diesen Dateien nicht einfach verworfen, sondern zusammengeführt. Dies funktioniert sehr ähnlich zu Versionskontrollsystemen, die versuchen, gleichzeitige Änderungen mehrerer Entwickler in der gleichen Datei automatisch zusammenzuführen.

Manchmal — wenn die Änderungen die gleiche Stelle der Datei betreffen — funktioniert das nicht und es kommt zu einem Konflikt. Wie Sie diesen lösen können, zeigen wir weiter unten.

Das Update zeigt eine Liste aller angepassten Dateien und Verzeichnisse (im folgenden Beispiel gekürzt):

2022-05-16 16:49:42 - Updating site 'mysite' from version 2.0.0p23.cee to 2.1.0p1.cee...

 * Identical new  etc/omd
 * Installed file etc/mk-livestatus/livestatus.socket
 * Updated        etc/mk-livestatus/nagios.cfg
...
 * Vanished       etc/jmx4perl/config/websphere
 * Vanished       etc/jmx4perl/config
Creating temporary filesystem /omd/sites/mysite_update/tmp...OK
Executing update-pre-hooks script "01_mkp-disable-outdated"...OK
Executing update-pre-hooks script "02_cmk-update-config"...
-| Initializing application...
-| Updating Checkmk configuration...
-| ATTENTION: Some steps may take a long time depending on your installation, e.g. during major upgrades.
-|  1/24 Rewriting password store...
-|  2/24 Migrate Visuals context...
...
-|  24/24 Rewriting InfluxDB connections...
-| Done
OK
Updating core configuration...
Generating configuration for core (type cmc)...
Starting full compilation for all hosts Creating global helper config...OK
 Creating cmc protobuf configuration...OK
Finished update.

Wenn alles erfolgreich durchgelaufen ist, ist die Instanz auf die neue Version umgeschaltet:

OMD[mysite]:~$ omd version
OMD - Open Monitoring Distribution Version 2.1.0p1.cee

… und kann gestartet werden:

OMD[mysite]:~$ omd start

3.3. Inkompatible Änderungen

Software-Entwicklung bedeutet Änderung. Und da wir immer daran arbeiten, Checkmk modern zu halten, kommen wir manchmal nicht drumherum, alte Zöpfe abzuschneiden und Änderungen zu machen, die inkompatibel sind. Das bedeutet, dass Sie nach einem Update eventuell Ihre Konfiguration anpassen oder wenigstens überprüfen sollten.

Ein typisches Beispiel dafür sind neue Check-Plugins, die bestehende Plugins ersetzen. Falls Sie eines der betroffenen Plugins einsetzen, ist nach dem Update eine erneute Serviceerkennung auf den betroffenen Hosts notwendig.

Eine Übersicht über alle Änderungen in Checkmk inklusive einer Suchfunktion finden Sie online in unseren Werks.

Noch praktischer ist aber die in Checkmk eingebaute Funktion zur Recherche in den Release Notes. Nachdem Sie sich an der Instanz angemeldet haben, finden Sie im Help-Menü den rot hinterlegten Link:

update help menu incompatible werks

Checkmk verfolgt die beim Update von der ursprünglichen zur aktuellen Version angefallenen inkompatiblen Änderungen und fordert Sie auf, diese zu überprüfen und dann zu bestätigen (acknowledge):

update incomp werks

Sie können jedes „Werk“ einzeln aufrufen, ansehen, per Mausklick bestätigen — und damit die Zahl der offenen inkompatiblen Änderungen sukzessive verringern. Zusätzlich können Sie mit dem Filter-Knopf die Filterleiste einblenden und haben so Zugriff auf die komplette Historie der Änderungen.

3.4. Das Update im Detail

Sind Sie neugierig, was beim Update genau „unter der Haube abläuft“? Oder haben Sie beim Durchlauf von omd update Konflikte in Dateien bekommen? Dann sollten Sie hier weiterlesen.

Bei omd update geschehen drei Dinge:

  1. Aktualisieren von Vorgabedateien unter etc/ und var/, also solchen Dateien, die bei omd create erzeugt wurden

  2. Umschalten der Version auf die Zielversion durch Ändern des symbolischen Links version, welcher sich im Instanzverzeichnis befindet

  3. Nachbearbeitungen durch verschiedene Pakete (z.B. Checkmk). Insbesondere werden automatisch die Änderungen aktiviert, um eine valide Konfiguration für den Kern zu erzeugen.

Aktualisieren von Dateien, Zusammenführen von Änderungen

Der erste Schritt ist der bei weitem umfangreichste. Hier zeigt sich ein großer Vorteil von Checkmk gegenüber klassischen Software-Installationen: Checkmk hilft Ihnen, alle Standard-Konfigurationsdateien an die Erfordernisse der neuen Version anzupassen. Dies ähnelt dem Vorgang beim Update einer Linux-Distribution, geht aber in der Umsetzung darüber hinaus. So behandelt Checkmk eine Vielzahl von Fällen, zum Beispiel:

  • Zusammenführen von Dateiänderungen mit lokalen Änderungen des Benutzers

  • Dateien, Verzeichnisse und symbolische Links, die in der neuen Version obsolet sind oder vom Benutzer gelöscht wurden

  • Änderungen an den Berechtigungen

  • Änderungen des Dateityps (aus Verzeichnis oder Datei wird symbolischer Link oder umgekehrt)

  • Änderungen des Ziels von symbolischen Links

Dabei achtet Checkmk stets darauf, dass Ihre lokalen Änderungen erhalten bleiben, gleichzeitig aber alle für die neue Version notwendigen Änderungen umgesetzt werden.

Zusammenführen und Konflikte

Falls die neue Version eine Änderung an einer Konfigurationsdatei vorsieht, an der Sie inzwischen selbst Änderungen vorgenommen haben, versucht Checkmk, beide Änderungen automatisch zusammenzuführen (merge). Dies geschieht mit den gleichen Methoden, die auch Versionskontrollsysteme verwenden.

Am wenigsten Probleme gibt es immer dann, wenn Ihre und Checkmks Änderungen räumlich weit genug auseinander liegen (mindestens ein paar Zeilen). Dann erfolgt die Zusammenführung automatisch und ohne Ihre Hilfe.

Wenn zwei Änderungen kollidieren, weil sie die gleiche Stelle der Datei betreffen, kann und will Checkmk nicht entscheiden, welche der beiden Änderungen wichtiger ist. In diesem Fall werden Sie als Benutzer eingeschaltet und können den Konflikt interaktiv auflösen:

omd update

Sie haben nun folgende Möglichkeiten:

d

Dies zeigt Ihnen die Unterschiede zwischen der neuen Defaultversion der Datei und Ihrer Version in Form eines "unified diff" (diff -u).

y

Dies ist ähnlich, zeigt aber ausgehend von der früheren Defaultversion, welche Änderungen Sie an der Datei gemacht haben.

n

Diese dritte Option schließt quasi das Dreieck und zeigt die Änderungen, welche Checkmk an der Datei vornehmen möchte.

e

Lösen Sie den Konflikt manuell im Editor auf.

t

Drücken Sie t, so wird Ihre Originaldatei  —  ohne die bereits erfolgreich zusammengeführten Änderungen  —  in einem Editor geöffnet. Editieren Sie nun die Datei, um eventuellen Konflikten aus dem Weg zu gehen. Nach dem Schließen des Editors probiert Checkmk die Zusammenführung erneut.

k

Hier entscheiden Sie sich dafür, die Datei so zu übernehmen, wie sie jetzt ist. Die erfolgreich eingebauten Änderungen bleiben. Ansonsten bleibt die Datei so, wie von Ihnen angepasst.

r

So stellen Sie Ihre Datei im Ausgangszustand wieder her und verzichten auf das Update von Checkmk für diese Datei. Möglicherweise notwendige Anpassungen müssen Sie selbst vornehmen.

i

Installieren der neuen Defaultversion der Datei: Ihre Änderungen an der Datei gehen verloren.

s

Wenn Sie unsicher sind, können Sie mit s eine Shell öffnen. Sie befinden sich im Verzeichnis, in der die betroffene Datei liegt, und können sich ein Bild von der Lage machen. Beenden Sie die Shell mit Ctrl+D, um das Update fortzusetzen.

a

Abbruch des Updates. Die Instanz bleibt auf der alten Version. Die bereits geänderten Dateien bleiben aber geändert! Sie können jederzeit einen neuen Update-Versuch starten.

Weitere Konfliktsituationen

Neben dem inhaltlichen Zusammenführen von Dateien gibt es noch eine ganze Reihe weiterer Fälle, in denen Checkmk Ihre Entscheidung braucht. Dies sind teils sehr ungewöhnliche Situationen, die aber trotzdem korrekte Behandlung brauchen. Checkmk wird Ihnen in diesen Fällen stets die Auswahl geben, Ihre Version beizubehalten oder die neue Defaultversion zu übernehmen. Außerdem haben Sie immer die Möglichkeit eines Abbruchs oder können eine Shell öffnen. Beispiele für solche Fälle sind:

  • Kollidierende Änderungen des Dateityps (z.B. wenn eine Datei durch einen symbolischen Link ersetzt wird)

  • Kollidierende Änderungen an den Dateirechten

  • Geänderte Dateien, die in der neuen Version entfallen

  • Von Ihnen angelegte Dateien, Verzeichnisse oder Links, die mit neuen Dateien/Verzeichnissen/Links kollidieren

Erklärung der Ausgaben beim Update

Immer wenn der Update-Vorgang automatisch Änderungen an Dateien macht, gibt er eine Zeile zur Erklärung aus. Dabei gibt es folgende Möglichkeiten (wenn von Datei die Rede ist, gilt dies analog auch für Links und Verzeichnisse):

Updated

Eine Datei hat sich in der neuen Version geändert. Da Sie keine Änderungen an der Datei gemacht haben, setzt Checkmk einfach die neue Defaultversion der Datei ein.

Merged

Eine Datei hat sich in der neuen Version geändert, während Sie gleichzeitig andere Änderungen an der Datei gemacht haben. Beide konnten konfliktfrei zusammengeführt werden.

Identical

Eine Datei hat sich in der neuen Version geändert. Gleichzeitig haben Sie die Datei selbst schon in genau der gleichen Art geändert. Checkmk muss nichts unternehmen.

Installed

Die neue Version bringt eine neue Konfigurationsdatei mit, welche soeben installiert wurde.

Identical new

Die neue Version bringt eine Datei mit, inzwischen haben Sie selbst die gleiche Datei mit dem gleichen Inhalt angelegt.

Obsolete

In der neuen Version ist eine Datei (Link, Verzeichnis) weggefallen. Sie haben diese Datei sowieso schon gelöscht. Nichts passiert.

Vanished

Auch hier ist eine Datei weggefallen, welche Sie aber weder gelöscht noch verändert haben. Checkmk entfernt diese Datei automatisch.

Unwanted

Sie haben eine Datei gelöscht, die normalerweise vorhanden ist. Da sich in der neuen Version keine Änderung in der Datei ergeben hat, belässt es Checkmk dabei, dass die Datei fehlt.

Missing

Sie haben eine Datei gelöscht, an der sich in der neuen Version Änderungen ergeben haben. Checkmk legt die Datei nicht neu an, warnt Sie aber durch diese Ausgabe.

Permissions

Checkmk hat die Berechtigungen einer Datei aktualisiert, da in der neuen Version andere Rechte gesetzt sind.

3.5. Update ohne Benutzerinteraktion

Möchten Sie das Software-Update von Checkmk automatisieren? Dann werden Sie vielleicht erstmal an den interaktiven Rückfragen von omd update gescheitert sein. Dafür gibt es eine einfache Lösung: Der Befehl kennt nämlich Optionen, die speziell für den Einsatz in Skripten gedacht sind:

  • Die Option -f oder --force direkt nach omd verhindert alle Fragen vom Typ „Sind Sie sicher…​“.

  • Die Option --conflict= direkt nach update setzt das gewünschte Verhalten bei einem Dateikonflikt.

Mögliche Werte für --conflict= sind:

--conflict=keepold

Behält im Konfliktfall Ihre eigene modifizierte Version der Datei. Eventuell ist Checkmk dann aber nicht lauffähig und ein manuelles Nacharbeiten erforderlich.

--conflict=install

Installiert im Konfliktfall die neue Standardversion der Datei. Damit gehen lokale Änderungen in der Datei zumindest teilweise verloren.

--conflict=abort

Bricht das Update im Konfliktfall ab. Das bedeutet aber nicht, dass alles auf den alten Stand zurückgerollt wird. Etliche Konfigurationsdateien sind eventuell schon umgestellt. Als Version ist aber noch die alte Version eingestellt.

--conflict=ask

Dies ist das Standardverhalten, somit ist die Option in dieser Form eigentlich wirkungslos.

Ein Beispiel für den kompletten Befehl für ein automatisches Update der Instanz mysite auf die Version 2.1.0p1.cee:

root@linux# omd stop mysite ; omd -f -V 2.1.0p1.cee update --conflict=install mysite && omd start mysite

Durch das && vor dem omd start wird ein Starten der Instanz verhindert, falls das omd update mit einem Fehler abbricht. Ersetzen Sie das && durch ein Semikolon (;), falls Sie einen Start auch in diesem Fall unbedingt versuchen wollen.

Falls Sie sicher sind, dass Sie nur eine einzige Checkmk-Instanz auf dem Server haben, können Sie deren Namen zur Verwendung in einem Shellskript einfach in einer Variable einfangen:

root@linux# omd sites --bare
mysite
root@linux# SITENAME=$(omd sites --bare)
root@linux# echo $SITENAME
mysite

Das ermöglicht Ihnen, obige Zeile vom Namen der Instanz unabhängig zu machen. Ein kleines Shellskript könnte z.B. so aussehen:

update.sh
#!/bin/bash
SITE=$(omd sites --bare)
VERSION=2.1.0p1.cee

omd stop $SITE
omd -f -V $VERSION update --conflict=install $SITE  && omd start $SITE

4. Aktualisierung eines Docker-Containers

Der Update-Prozess für eine Checkmk-Instanz im Docker-Container ist sehr einfach. Es gibt lediglich die folgenden Voraussetzungen:

  • Der Container wird nicht gelöscht, wenn er gestoppt wird. Das heißt, die Option --rm wurde beim Starten nicht benutzt.

  • Sie kennen die ID des Datenspeichers (volume) zum Container. Normalerweise sollten Sie beim Start des Containers seinem Speicher eine eindeutige ID gegeben haben. Wenn Sie sich unsicher sind, wie die ID Ihres Volumes ist, können Sie Informationen zum Container namens myContainer mit dem Kommando docker inspect myContainer abrufen.

Wenn Sie der Installationsanleitung für Checkmk in Docker gefolgt sind, sollten Sie die Voraussetzungen automatisch erfüllt haben.

Die Aktualisierung selbst ist in 3 Schritten erledigt:

  1. Stoppen Sie den Container. Wenn der Checkmk-Container myContainer heißt, lautet der Befehl: docker stop myContainer.

  2. Entfernen Sie den Container. Der Befehl dazu ist: docker rm myContainer.

  3. Starten Sie einen neuen Container mit dem Befehl docker container run mit der gewünschten Version und binden Sie das bekannte Volume ein. Wenn Ihr Volume myVolume heißt, ist die entsprechende Option -v myVolume:/omd/sites. Alle Optionen des Kommandos finden Sie in der Installationsanleitung für Checkmk in Docker.

Danach wird Checkmk automatisch den Rest erledigen und Ihre Checkmk-Instanz aktualisieren und starten. Sie können sich danach wie gewohnt anmelden.

5. Upgrade der Free Edition auf eine Vollversion

Haben Sie Ihre erste Installation von Checkmk mit der CFE Checkmk Enterprise Free Edition gemacht? Sobald Sie eine Subskription der Standard Edition oder Managed Services Edition haben, können Sie Ihre bestehende Instanz einfach auf die Vollversion upgraden.

Das Vorgehen ist exakt wie beim „normalen“ Update. Der einzige Unterschied ist, dass Sie von einer Version mit der Endung .cfe auf eine Version mit der Endung .cee upgraden. Installieren Sie einfach das gewünschte Paket der Vollversion und schalten Sie dann die bestehende Instanz mit omd update auf diese um.

Am einfachsten geht das, wenn beide Versionen bis auf das Suffix .cfe bzw. .cee identisch sind. Was die Funktionalität betrifft, ist die Free Edition völlig identisch mit der Vollversion. Daher ergeben sich durch das Upgrade keinerlei Unterschiede.

Ein gleichzeitiger Upgrade mit Wechsel der Version ist aber durchaus möglich. Dabei gelten die gleichen Grundsätze wie bei einem normalen Update von Checkmk.

5.1. Upgrade der Checkmk-Appliance

Auch die Appliance der Free Edition können Sie ohne Datenverlust auf eine Vollversion einer der Enterprise Editions upgraden. Hierfür müssen Sie die Firmware der Appliance ebenfalls aktualisieren!

  1. Aktualisieren Sie zuerst die Firmware der Appliance über deren Web-Oberfläche von der Demoversion der Firmware auf die aktuelle Vollversion.

  2. Installieren Sie die Checkmk-Software der Standard Edition oder der Managed Services Edition auf der Appliance.

  3. Stellen Sie in der Instanzverwaltung der Appliance die Instanzen auf die Vollversion um.

6. Upgrade der Raw Edition auf eine der Enterprise Editions

6.1. Einleitung

Auch ein Upgrade der CRE Checkmk Raw Edition auf eine der Enterprise Editions ist möglich. Auch hier ist das Vorgehen wie gehabt: Gewünschtes Paket installieren und Instanzen mit omd update umstellen.

Da der Raw Edition etliche Module und Features der Enterprise Editions fehlen, gibt es allerdings nach der Umstellung ein paar Dinge zu beachten. Der entscheidende Punkt ist, dass beim Anlegen von neuen Instanzen der Raw Edition bzw. Enterprise Editions unterschiedliche Standardeinstellungen gesetzt werden.

6.2. Nagios vs. CMC

Da die Raw Edition nur Nagios als Kern unterstützt, ist dieser bei Instanzen voreingestellt, die mit der Raw Edition erstellt wurden. Diese Einstellung bleibt beim Upgrade auf die CSE Checkmk Enterprise Standard Edition erhalten. Das bedeutet, dass Sie nach einem Upgrade zunächst weiterhin mit Nagios als Kern fahren. Eine Umstellung auf den CMC erfolgt mit omd config und wird in einem eigenen Artikel beschrieben.

6.3. RRD-Format

Die Enterprise Editions unterstützen ein alternatives Format für die Speicherung historischer Messdaten, welches deutlich weniger Platten-I/O erzeugt. Bei neuen Enterprise Editions-Instanzen ist dies automatisch voreingestellt. Raw Edition-Instanzen werden auch hier beim Upgrade nicht automatisch umgestellt. Wie das Umstellen geht, beschreibt ein eigener Abschnitt im Artikel über Messwerte und Graphen.

6.4. Benachrichtigungs-Spooler

Die Raw Edition hat keinen Benachrichtigungs-Spooler. Deswegen ist dieser nach dem Umstieg auf eine der Enterprise Editions ausgeschaltet. Wie dieser eingeschaltet werden kann, erfahren Sie hier.

7. Deinstallation von Checkmk

7.1. Übersicht

Das Deinstallieren von nicht mehr benötigten Checkmk-Versionen geschieht mit dem Paketmanager des Betriebssystems. Geben Sie hier den Namen des installierten Pakets an, nicht den Dateinamen der ursprünglichen RPM/DEB-Datei. Wichtig: Löschen Sie nur solche Checkmk-Versionen, die von keiner Instanz mehr verwendet werden!

Nicht mehr benötigte Checkmk-Instanzen können Sie einfach mit omd rm entfernen (und dabei alle Daten löschen!):

root@linux# omd rm mysite

7.2. SLES, RedHat, CentOS

So finden Sie bei RPM-basierten Systemen heraus, welche Checkmk-Pakete installiert sind:

root@linux# rpm -qa | grep check-mk
check-mk-enterprise-2.1.0p1-el8-38.x86_64
check-mk-raw-2.0.0p2-el8-38.x86_64
check-mk-raw-1.6.0p22-el8-38.x86_64

Das Löschen geschieht mit rpm -e:

root@linux# rpm -e check-mk-raw-1.6.0p22-el8-38.x86_64

7.3. Debian, Ubuntu

So finden Sie heraus, welche Pakete installiert sind:

root@linux# dpkg -l | grep check-mk
ii  check-mk-enterprise-2.1.0p1  0.focal  amd64  Checkmk - Best-in-class infrastructure & application monitoring
ii  check-mk-enterprise-2.0.0p3  0.focal  amd64  Checkmk - Best-in-class infrastructure & application monitoring
ii  check-mk-raw-2.0.0p2         0.focal  amd64  Checkmk - Best-in-class infrastructure & application monitoring

Die Deinstallation geschieht mit dpkg --purge:

root@linux# dpkg --purge check-mk-raw-1.6.0p22
(Reading database ... 567850 files and directories currently installed.)
Removing check-mk-raw-1.6.0p22 (0.focal) ...
...

8. Diagnosemöglichkeiten

Sollte es beim Update von Checkmk mal zu einem Fehler kommen, liegt diesem zumeist eine der folgenden drei Ursachen zugrunde, die bereits in den vorherigen Kapiteln angesprochen wurden:

9. Dateien und Verzeichnisse

Hier finden Sie für diesen Artikel relevante Dateien und Verzeichnisse. Pfade, die nicht mit einem / beginnen, gelten wie immer ab dem Home-Verzeichnis der Instanz (/omd/sites/mysite).

PfadBedeutung

~/version

Symbolischer Link auf die Installation der von dieser Instanz verwendeten Checkmk-Version.

/omd/versions

In diesem Verzeichnis existiert für jede installierte Checkmk-Version ein Unterverzeichnis. Die Dateien gehören root und werden niemals geändert.

/omd/sites

In diesem Verzeichnis liegt für jede Instanz deren Home-Verzeichnis mit den Konfigurationsdateien und den variablen Daten. Die Dateien gehören dem Instanzbenutzer und werden durch Konfiguration und Betrieb geändert.

/usr/bin/omd

Verwaltungsbefehl für Checkmk-Instanzen. Dies ist ein symbolischer Link in das bin-Verzeichnis der Defaultversion. Sobald auf eine bestimmte Instanz zugegriffen wird, ersetzt sich der omd-Befehl selbst durch denjenigen der passenden Version.

Auf dieser Seite