CheckMK im Docker Container updaten (Docker Compose)
Alle die, die das offizielle CheckMK Docker Image im Einsatz haben, um damit ihr Monitoring zu betreiben, werden sich früher oder später fragen, wie man ein Versionsupdate des CheckMK Containers durchführt.
Zuerst sollte man sich vom Datenverzeichnis, welches man höchstwahrscheinlich in den Docker Container mountet, ein Backup erstellen. Die Dateistruktur wird hier bei vielen unterschiedlich aussehen. Bei mir gelingt ein solches Backup wie folgt.
cp -r docker/checkmk /home/user/checkmk_backup
Update
Anschließend wird ein weiterer CheckMK Container mit der Version gestartet, auf welche geupdated werden soll. Außerdem wird angegeben, dass dieser die gleichen Verzeichnisse, wie der bereits bestehende Docker Container verwenden soll. Des Weiteren wird angegeben, auf welche Version geupdated werden soll.
docker container run -t -d --rm --volumes-from checkmk --name checkmk_update checkmk/check-mk-raw:1.5.0p16 bash
Nun wird festgelegt, welche Version aktuell auf dem existierenden Container genutzt wird. Diese wird vorerst auf den neuen Container kopiert.
docker cp -L checkmk:/omd/versions/default - | docker cp - checkmk_update:/omd/versions/
Anschließend wird nur noch das folgende Kommando benötigt, um das Update durchzuführen.
docker exec -it -u cmk checkmk_update omd update
Nun wird nochmal gefragt, ob das Update tatsächlich durchgeführt werden soll.
Mit der Meldung „Finished Update.“ sollte dieses abgeschlossen werden. Der Update-Container kann nun mit folgendem Kommando wieder entfernt werden.
docker kill checkmk_update
Um die Update-Prozedur abzuschließen, muss nun nur noch die Checkmk-Version im Compose-File angepasst werden und der/die Container neu gestartet werden.
nano docker-compose.yml
version: '3' services: checkmk: image: checkmk/check-mk-raw:1.5.0p15
abändern zu:
version: '3' services: checkmk: image: checkmk/check-mk-raw:1.5.0p16
Nun noch der besagte Neustart.
docker-compose down && docker-compose up -d
Nach Abschluss sollte nun die neue Version in der CheckMK-Oberfläche angezeigt werden.
Skript zur Automatisierung
Damit die Kommandos nicht immer erneut ausgeführt werden müssen, habe ich ein Skript veröffentlicht, welches den kompletten Aktualisierungsprozess übernimmt.
Verfügbar ist dieses mit entsprechender Anleitung unter folgendem Link: https://github.com/bjarneeins/compose-checkmk-updater
Hi, kannst du deine docker-compose config posten?
wäre lieb, thx 🙂
Hi, hier mein docker-compose für Checkmk 🙂 (Volume und Listen Port ist spezifisch für meine Zwecke):
version: '3'
services:
checkmk:
image: checkmk/check-mk-raw:2.0.0p1
ports:
- "172.17.0.1:7030:5000"
container_name: checkmk
volumes:
- checkmk-data:/omd/sites/cmk
restart: always
volumes:
checkmk-data:
external: true
Leider werden die Einrückungen im Kommentar nicht ordentlich angezeigt.
Ist das immer noch nötig? Ich wollte grad mein v2.0.0p23 auf p32 updaten und bin beim Update an dem Punkt hängen geblieben, dass die alte Version beim Update benötigt wird. Lt. Werk 7089 (https://checkmk.com/werk/7089) soll das aber nicht mehr nötig sein.
Nun bin ich etwas verwirrt … kannst du dazu was sagen?
Hi, ich nutze das Setup so nicht mehr und kann dir daher nicht sagen ob das noch nötig ist.