CheckMk: Use Docker Compose for CheckMk
CheckMk is a great tool for monitoring. It's quite easy to deploy, and it offers support for monitoring a big range of hardware and software solutions - either through plugins, or out of the box.
To create a CheckMk container, you can use this docker-compose.yml:
services:
checkmk:
image: checkmk/check-mk-raw:2.2.0-latest
tmpfs: /opt/omd/sites/cmk/tmp:uid=1000,gid=1000
volumes:
- ./monitoring:/omd/sites
- /etc/localtime:/etc/localtime:ro
ports:
- 5000:5000
- 8000:8000
restart: always
This image will only work on x86_64
.
Then, the image will be pulled and the container started:
# docker compose pull
# docker compose up -d
[+] Pulling 7/7
✔ checkmk Pulled 243.7s
✔ 43f89b94cd7d Pull complete 17.9s
✔ c333a7cd7991 Pull complete 18.0s
✔ f1a8ddf7a047 Pull complete 100.5s
✔ c3b68830a381 Pull complete 110.9s
✔ cdb87fce6a90 Pull complete 241.8s
✔ c04a97edb62a Pull complete 241.9s
[+] Running 2/2
✔ Network checkmk_default Created 0.6s
✔ Container checkmk-checkmk-1 Started 3.2s
The logs show what happens:
# docker compose logs -f
checkmk-1 | ### CREATING SITE 'cmk'
checkmk-1 | Generating configuration for core (type nagios)...
checkmk-1 | Precompiling host checks...OK
checkmk-1 | Adding /opt/omd/sites/cmk/tmp to /etc/fstab.
checkmk-1 | Going to set TMPFS to off.
checkmk-1 | Temporary filesystem already mounted
checkmk-1 | Updating core configuration...
checkmk-1 | Executing post-create script "01_create-sample-config.py"...OK
checkmk-1 | Adding /opt/omd/sites/cmk/tmp to /etc/fstab.
checkmk-1 | Going to set TMPFS to off.
checkmk-1 | Created new site cmk with version 2.2.0p37.cre.
checkmk-1 |
checkmk-1 | The site can be started with omd start cmk.
checkmk-1 | The default web UI is available at http://checkmk/cmk/
checkmk-1 |
checkmk-1 | The admin user for the web applications is cmkadmin with password: XxXxXxXx
checkmk-1 | For command line administration of the site, log in with 'omd su cmk'.
checkmk-1 | After logging in, you can change the password for cmkadmin with 'cmk-passwd cmkadmin'.
checkmk-1 |
checkmk-1 | WARNING: You have to execute 'omd update-apache-config cmk' as root to update and apply the configuration of the system apache.
checkmk-1 | WARNING: You have to execute 'omd update-apache-config cmk' as root to update and apply the configuration of the system apache.
checkmk-1 | ### STARTING XINETD
checkmk-1 | * Starting internet superserver xinetd
checkmk-1 | ...done.
checkmk-1 | ### STARTING SITE
checkmk-1 | Starting agent-receiver...OK
checkmk-1 | Starting mkeventd...OK
checkmk-1 | Starting rrdcached...OK
checkmk-1 | Starting npcd...OK
checkmk-1 | Starting nagios...OK
checkmk-1 | Starting apache...OK
checkmk-1 | Starting redis...OK
checkmk-1 | Initializing Crontab...OK
checkmk-1 | Temporary filesystem already mounted
checkmk-1 | ### STARTING CRON
checkmk-1 | ### CONTAINER STARTED
Now, CheckMk is available, using the port 5000
.
Login is cmkadmin
, password can be taken from the log files:
checkmk-1 | The admin user for the web applications is cmkadmin with password: XxXxXxXx
To install a CheckMk agent, we can use the link from Setup -> Linux -> Packaged Agents. It's available for DEB and RPM based distributions, using Setup -> Windows -> Packaged Agents there's also an MSI package for Windows.
Download links for the agent look like that:
http://<hostname>:5000/cmk/check_mk/agents/check-mk-agent_2.2.0p37-1_all.deb
http://<hostname>:5000/cmk/check_mk/agents/check-mk-agent-2.2.0p37-1.noarch.rpm
http://<hostname>:5000/cmk/check_mk/agents/windows/check_mk_agent.msi
After installation, we can add the host to CheckMk. And monitoring begins...