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 Edition Checkmk-Downloadseite
 Checkmk Managed Services Edition 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.

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 -v /omd/sites --name monitoring -v /etc/localtime:/etc/localtime --restart always checkmk/check-mk-raw:1.5.0-latest
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 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.
--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 /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 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 Docker-Node kein zweites Mal verwendet werden.
-v /etc/localtime:/etc/localtime Mit dieser Option nutzen Sie in dem Container dieselbe Zeitzone wie im Docker-Node.
--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.)

3. Installation der Enterprise Edition

Auch die  Checkmk Enterprise Edition und die  Checkmk Managed Services Edition können Sie in einem Docker-Container betreiben. Da diese jedoch eine gültige Subskription benötigen, sind sie 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  Checkmk Enterprise Edition bzw.  Checkmk 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.