Installation als Docker-Container


Dieser Artikel ist noch nicht fertig und nur ein Entwurf!

Ab der Version 1.5.0p5 können Sie Check_MK auch in einer Dockerumgebung betreiben. Das dafür nötige Image stellen wir selbstverständlich nicht nur für die  Check_MK Enterprise Edition, sondern auch für die  Check_MK Raw Edition zur Verfügung. Wie Sie an das jeweilie Image kommen, unterscheidet sich lizenzbedingt jedoch ein wenig.

Im Folgenden finden Sie daher ein Einführung für beide Versionen und dazu ein paar kleine Feinheiten, die das Leben mit Check_MK in Docker einfacher machen.

1. Installation

1.1. Installation der RAW-Edition

Ein erster Start mit Docker ist nicht schwierig. Da die RAW-Edition direkt über Dockerhub zur Verfügung steht, können Sie ihre erste Instanz ganz einfach mit einem Einzeiler starten. Mit dem folgenden Kommando starten Sie eine sofot lauffähige Instanz von Check_MK, an der Sie sich nur noch anmelden müssen:

root@linux# docker container run -dit -p 8080:5000 -v /omd/sites --name monitoring -v /etc/localtime:/etc/localtime --restart always checkmk/check-mk-raw:1.5.0p5
Unable to find image 'checkmk/check-mk-raw:1.5.0p5' locally
1.5.0p5: Pulling from checkmk/check-mk-raw
802b00ed6f79: Pull complete
79057211cef4: Pull complete
81c661525dd4: Pull complete
4d4fdd41d09a: Pull complete
d229ac9815b1: Pull complete
d29a86db4594: Pull complete
Digest: sha256:afcf4a9f843809598ccb9ddd11a6c415ef465e31969141304e9be57c3e53b438
Status: Downloaded newer image for checkmk/check-mk-raw:1.5.0p5
c395cfe2d50dd7d342ba7c6d672caf80028058c41d2cba2b5c26145f5256f497

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 Dockernode 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.
--tmpfs /omd/sites/cmk/tmp Check_MK nutzt für eine optimale Performance ein temporäres Dateisystem direkt im RAM der Dockernode. Mit dieser Option wird der Pfad dieses Dateisystems angegeben. Wenn Sie die ID der Instanz ändern, so muss auch dieser Pfad entsprechend angepasst werden. Wichtig: Auf einigen Systemen sorgt diese Option für Probleme. Aus diesem Grund wird sie in dem Beispiel nicht benutzt, obwohl diese Option für eine optimale Performance empfohlen ist.
-v /omd/sites Diese Option bindet die Daten der Instanz in diesem Containers an eine persistente Stelle im Dateisystem der Dockernode. Sie gehen daher nicht verloren, wenn der Container zerstört wird. Wenn Sie diese Option nicht nutzen, sind alle Konfigurations- und Monitoringdaten an den Container gebunden und entsprechend gelöscht, sobald dieser gelöscht wird.
--name monitoring Hiermit wird der Name des Containers definiert. Dieser Name muss eindeutig sein und darf auf dem Dockernode kein zweites Mal verwendet werden.
-v /etc/localtime:/etc/localtime Mit dieser Option nutzen Sie in dem Container dieselbe Zeitzone der Dockernode.
--restart always Normalerweise startet ein Container nicht neu, wenn er gestoppt wurde. Mit dieser Option sorgen Sie dafür, dass sich dieser in einem solchen immer wieder neu startet.

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

Sie können sich nun erstmals einloggen und Check_MK ausprobieren. Das initiale Passwort für den Account cmkadmin finden Sie in den Logs, welche für diesen Container geschrieben werden. Die Ausgabe ist 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.)

Beachten Sie, dass es sich hier um eine Standardausgabe handelt. Durch den Befehl von oben, um den Container anzulegen, haben Sie diesen auch automatisch gestartet. Ein manuelles Starten der Instanz ist hier also nicht notwendig.

1.2. Installation der Enterprise-Edition

Auch wenn Sie Check_MK in einem Dockercontainer betreiben wollen, müssen Sie nicht auf die  Check_MK Enterprise Edition verzichten. Da diese jedoch eine gültige Lizenz benötigt, ist sie nicht frei über Dockerhub verfügbar. Derzeit laden Sie die gewünschte Version über unsere Downlaodseite herunter und laden Sie 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 dem gleichen Befehl, wie oben den Container starten. Achten Sie darauf, dass Sie in diesem Fall das Enterprise-Image angeben:

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

Auch hier finden Sie sie das Passwort in den Logs.