Wir nutzen Cookies, um Ihnen eine optimale Nutzung dieser Webseite zu ermöglichen. Mehr Informationen finden Sie im Datenschutzhinweis. Wir nehmen an, dass Sie damit einverstanden sind, falls Sie diese Webseite weiter besuchen.

Ihre Cookie-Einstellungen
Ihre Einstellungen wurden aktualisiert.
Damit die Änderungen wirksam werden, löschen Sie bitte Ihre Browser-Cookies und den Cache und laden dann die Seite neu.

Installation als Docker-Container

Checkmk Manual
Letzte Aktualisierung: 12. Februar 2019

Suche im Handbuch

1. Grundsätzliches

Es gibt viele Gründe, weshalb Anwender Software in einem Docker-Container betreiben möchten. Auch Monitoringsoftware wie Checkmk kann man ab der Version 1.5.0p5 offiziell in einer Docker-Umgebung einsetzen. Ein Anwendungsfall kann sein, eine dynamisch erstellte Containergruppe zu überwachen und Checkmk zu einem Teil dieser Gruppe zu machen. Wird die Containergruppe nicht mehr benötigt, kann auch die Instanz von Checkmk wieder entfernt werden.

Wichtig: Jegliche Virtualisierung bringt zum einen eine verringerte Performance mit sich. Zum anderen sollte das Monitoring möglichst immer von der restlichen physischen Infrastruktur unabhängig sein, weswegen sich die Checkmk-Container nicht dazu eignen, die Infrastruktur insgesamt zu überwachen.

Um die Bereitstellung als Container für Sie so einfach wie möglich zu gestalten, stellen wir für jede Checkmk-Editon eigene Images zur Verfügung, welche neben Checkmk das Linux-Betriebssystem Debian 9 (Stretch) enthalten. Diese erhalten Sie wie folgt:

 Checkmk Raw Edition Docker Hub
 Checkmk Enterprise Editions Checkmk-Downloadseite

In diesem Artikel führen wir Sie durch die Einrichtung von Checkmk in Docker und zeigen Ihnen einige Tricks, die das Leben mit Checkmk in Docker einfacher machen.

Weitere Informationen zu Checkmk in einem Docker-Container finden Sie in dem weitereführenden Artikel Checkmk-Server im Docker-Container.

2. Installation der RAW-Edition

Der Start mit Docker mit der  Checkmk Raw Edition ist einfach. Ein passendes Image steht Ihnen direkt über Docker Hub zur Verfügung. Das Ganze geht mit einem einzigen Kommando auf der Linux-Konsole. Dabei wird nicht nur ein Docker-Container mit Checkmk erzeugt, sondern auch gleich eine Monitoringinstanz mit dem Namen cmk eingerichtet und gestartet. Diese ist sofort bereit zur Anmeldung als Benutzer cmkadmin:

root@linux# docker container run -dit -p 8080:5000 --ulimit nofile=1024 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v monitoring:/omd/sites --name monitoring -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:1.6.0-latest
Unable to find image 'checkmk/check-mk-raw:1.6.0-latest' locally
1.6.0-latest: Pulling from checkmk/check-mk-raw
8f91359f1fff: Pull complete
3d794619eec5: Pull complete
1468b0cb296b: Pull complete
787a36ef0a12: Pull complete
159fac9366a1: Pull complete
fefc9fe50b26: Pull complete
Digest: sha256:153b6a6b4002cc0e02c17e127f582fa54a539803960d36d265802426c0066aa8
Status: Downloaded newer image for checkmk/check-mk-raw:1.6.0-latest
511cd26bdc2847ee5b430a1c0c52ff4489b3556775d07878b0533df077b67a83

Nähere Informationen zu den benutzen Optionen:

Option Beschreibung
-p 8080:5000 Der Webserver des Containers lauscht standardmäßig auf Port 5000. In diesem Beispiel wird der Port 8080 des Docker-Node an den Port des Containers gebunden, damit dieser von außen erreichbar ist. Wenn Sie keinen anderen Container oder Prozess haben, welcher den Standard-HTTP-Port 80 benutzt, können Sie den Container auch daran binden. In diesem Fall würde die Option so aussehen: -p 80:5000. Die Nutzung von HTTPS wird weiter unten näher erläutert.
--ulimit nofile=1024 Indem Sie das User Limit (ulimit) für nofile manuell setzen, reduzieren Sie die Anzahl an Dateideskriptoren, die ein Prozess in dem Container öffnen kann. Das ist vor allem hier sinnvoll, da Checkmk derzeit noch auf Python 2 setzt, welches einen sehr hohen Standardwert heranzieht und damit den Prozess sehr stark ausbremsen kann.
--tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 Ab 1.6.0 kann für eine optimale Performance ein temporäres Dateisystem direkt im RAM des Docker-Node genutzt werden. Mit dieser Option geben Sie den Pfad zu diesem Dateisystem an. Wenn Sie die ID der Instanz ändern, so muss auch dieser Pfad entsprechend angepasst werden.
-v monitoring:/omd/sites Diese Option bindet die Daten der Instanz in diesem Container an eine persistente Stelle im Dateisystem des Docker-Node. Sie gehen daher nicht verloren, wenn der Container wieder entfernt wird. Der Teil vor dem Doppelpunkt bestimmt hierbei den Namen. So können Sie später den Speicherpunkt eindeutig identifizieren. Zum Beispiel mit dem Befehl docker volume ls.
--name monitoring Hiermit wird der Name des Containers definiert. Dieser Name muss eindeutig sein und darf auf dem Docker-Node kein zweites Mal verwendet werden.
-v /etc/localtime:/etc/localtime:ro Mit dieser Option nutzen Sie in dem Container dieselbe Zeitzone wie im Docker-Node. Gleichzeitig wird die Datei nur lesend (ro) eingebunden.
--restart always Normalerweise startet ein Container nicht neu, wenn er gestoppt wurde. Mit dieser Option sorgen Sie dafür, dass er eben doch automatisch neu startet.

Nachdem alle benötigten Dateien geladen wurden und der Container gestartet ist, sollten Sie die GUI von Checkmk über http://localhost:8080/cmk/check_mk/ erreichen:

Sie können sich nun erstmals einloggen und Checkmk ausprobieren. Das initiale Passwort für den Account cmkadmin finden Sie in den Logs, welche für diesen Container geschrieben werden (hier auf die wesentlichen Informationen gekürzt):

root@linux# docker container logs monitoring
Created new site cmk with version 1.5.0p5.cre.

  The site can be started with omd start cmk.
  The default web UI is available at http://c395cfe2d50d/cmk/

  The admin user for the web applications is cmkadmin with password: erYJR0IT
  (It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.)

Kurzlebige Container

Wenn Sie sich sicher sind, dass die Daten in der Checkmk-Container-Instanz nur in diesem speziellen Container verfügbar sein sollen, können Sie entweder darauf verzichten dem Container einen persistenten Datenspeicher zuzuordnen, oder diesen Speicher automatisch beim Stoppen des Containers entfernen. Um den persistenten Speicher wegzulassen, lassen Sie schlicht die Option -v /omd/sites weg. Um einen persistenten Speicher anzulegen und beim stoppen automatisch zu entfernen, benutzen Sie den folgenden Befehl:

root@linux# docker container run --rm -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 --ulimit nofile=1024 -v /omd/sites --name monitoring -v /etc/localtime:/etc/localtime:ro checkmk/check-mk-raw:1.6.0-latest
3d7f04bc7d0a1ded5fb5ab49e3c72894615a2058c5df2d7af11e20f4662b5c09

Dieser Befehl hat – im Gegensatz zu dem von oben – lediglich zwei andere Optionen:

  • Mit --rm übergeben direkt zum Start den Befehl, dass auch der Datenspeicher für den Container beim Stoppen ebenfalls entfernt werden soll. Auf diese Weise sparen Sie sich das manuelle Aufräumen, wenn Sie viele kurzlebige Checkmk-Container haben. Wichtig: Beim Stoppen wird auch der Container selbst komplett entfernt!
  • Die Option -v /omd/sites ist im Vergleich zu oben angepasst. Sie beinhaltet keinen selbst vergebenen Namen mehr, da der Datenspeicher sonst nicht korrekt gelöscht wird.

3. Installation der Enterprise Editions

Auch die Enterprise Editions können Sie in einem Docker-Container betreiben. Diese sind nicht frei über Docker Hub verfügbar. Derzeit laden Sie die gewünschte Version über unsere Downloadseite herunter und laden das Image in Docker:

root@linux# docker load -i check-mk-enterprise-docker-1.5.0p5.tar.gz
8b15606a9e3e: Loading layer [=====================================>]  58.44MB/58.44MB
a710e8ce658e: Loading layer [=====================================>]  2.048kB/2.048kB
87e4835e12d0: Loading layer [=====================================>]  263.5MB/263.5MB
6b003c5cba06: Loading layer [=====================================>]  138.9MB/138.9MB
2789307956c0: Loading layer [=====================================>]  524.4MB/524.4MB
85e714d514e1: Loading layer [=====================================>]  4.608kB/4.608kB
Loaded image: checkmk/check-mk-enterprise:1.5.0p5

Danach können Sie den Container mit einem sehr ähnlichem Befehl wie oben starten. Achten Sie nur darauf, dass Sie in diesem Fall das Image der Standard Edition bzw. Managed Services Edition angeben (z. B. checkmk/check-mk-enterprise:1.5.0p5):

root@linux# docker container run -dit -p 8080:5000 -v /omd/sites --name monitoring -v /etc/localtime:/etc/localtime --restart always checkmk/check-mk-enterprise:1.5.0p5
5bcf761ab056dd0466874bc110c9356f6763d3f275b565277bafac9233bc2a9a

Auch hier finden Sie das Passwort in den Logs.