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:
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:
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:
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:
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:
Bestätigen Sie in der folgenden Dialogbox das gewählte Update auf die neue Version:
Beim Update von einer Raw Edition auf eine der Checkmk Enterprise Editions werden Sie sicherheitshalber noch einmal auf diesen Umstand hingewiesen:
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:
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):
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:
Aktualisieren von Vorgabedateien unter
etc/
undvar/
, also solchen Dateien, die beiomd create
erzeugt wurdenUmschalten der Version auf die Zielversion durch Ändern des symbolischen Links
version
, welcher sich im Instanzverzeichnis befindetNachbearbeitungen 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:
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" ( |
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 nachomd
verhindert alle Fragen vom Typ „Sind Sie sicher…“.Die Option
--conflict=
direkt nachupdate
setzt das gewünschte Verhalten bei einem Dateikonflikt.
Mögliche Werte für --conflict=
sind:
|
Behält im Konfliktfall Ihre eigene modifizierte Version der Datei. Eventuell ist Checkmk dann aber nicht lauffähig und ein manuelles Nacharbeiten erforderlich. |
|
Installiert im Konfliktfall die neue Standardversion der Datei. Damit gehen lokale Änderungen in der Datei zumindest teilweise verloren. |
|
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. |
|
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:
#!/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 Kommandodocker 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:
Stoppen Sie den Container. Wenn der Checkmk-Container
myContainer
heißt, lautet der Befehl:docker stop myContainer
.Entfernen Sie den Container. Der Befehl dazu ist:
docker rm myContainer
.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 VolumemyVolume
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 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!
Aktualisieren Sie zuerst die Firmware der Appliance über deren Web-Oberfläche von der Demoversion der Firmware auf die aktuelle Vollversion.
Installieren Sie die Checkmk-Software der Standard Edition oder der Managed Services Edition auf der Appliance.
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 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 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:
Der durch eine inkompatible Änderung notwendige manuelle Eingriff wurde nicht vorgenommen.
Sie haben ein inkompatibles Erweiterungspaket (MKP) installiert.
Es befinden sich inkompatible Skripte in den lokalen Dateien der Instanzverzeichnisstruktur.
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
).
Pfad | Bedeutung |
---|---|
|
Symbolischer Link auf die Installation der von dieser Instanz verwendeten Checkmk-Version. |
|
In diesem Verzeichnis existiert für jede installierte Checkmk-Version ein Unterverzeichnis. Die Dateien gehören |
|
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. |
|
Verwaltungsbefehl für Checkmk-Instanzen. Dies ist ein symbolischer Link in das |