This set of docker containers can be used to run Icinga2 - https://www.icinga.org/products/icinga-2/ The existing docker setups put several processes (like icinga2, icingaweb2, sometimes mysql) into one single container. I split these roles into several containers for better (re-)usability. It also makes it possible to run multiple icinga2 nodes + one single icingaweb2 interface.
The Icingaweb2 container also contains the director module - https://github.com/Icinga/icingaweb2-module-director
Please note that this setup and director are in alpha state, don't use for production.
docker run --name my-mariadb -e MYSQL_ROOT_PASSWORD=my-secret -d mariadb docker run --name my-icinga2 -h icinga2 --link my-mariadb:mysql --restart=always -d rbicker/icinga2 docker run --name my-icingaweb2 -h icingaweb2 -v icinga2-config:/etc/icinga2 -v icinga2-lib:/var/lib/icinga2 --link my-mariadb:mysql --link my-icinga2:icinga2 -p 8080:80 -d rbicker/icingaweb2
Browse to http://localhost:8080 and log in using admin / admin
You can find a more complete template in the 'compose' directory.
File mysql.env
:
MYSQL_ROOT_PASSWORD=icinga2
File icinga2.env
:
MYSQL_ICINGA_PASSWORD=icinga2
MYSQL_ICINGA_USER=icinga2
MYSQL_ICINGA_DB=icinga2
API_USER=api
API_PASSWORD=api
File icingaweb2.env
:
MYSQL_ICINGAWEB_DB=icingaweb2
MYSQL_ICINGAWEB_USER=icingaweb2
MYSQL_ICINGAWEB_PASSWORD=icingaweb2
MYSQL_DIRECTOR_DB=director
MYSQL_DIRECTOR_USER=director
MYSQL_DIRECTOR_PASSWORD=director
File docker-compose.yml
:
version: '2'
services:
mysql:
image: mariadb
env_file:
- mysql.env
icinga2:
image: rbicker/icinga2
hostname: icinga2
links:
- mysql
env_file:
- mysql.env
- icinga2.env
icingaweb2:
image: rbicker/icingaweb2
ports:
- 8080:80
env_file:
- mysql.env
- icinga2.env
- icingaweb2.env
links:
- mysql
- icinga2
volumes:
- ./icinga2-config:/etc/icinga2
- ./icinga2-lib:/var/lib/icinga2
And just run docker-compose up -d
and browse to http://localhost:8080, logging in using admin / admin
MYSQL_ICINGA_DB icinga2 - name of the icinga2 database MYSQL_ICINGA_USER icinga2 - icinga2 database user MYSQL_ICINGA_PASSWORD icinga2 - icinga2 database password API_USER api - api user (used by icingaweb2 -> director) API_PASSWORD api - api password
MYSQL_ICINGAWEB_DB icingaweb2 - name of the icingaweb2 database MYSQL_ICINGAWEB_USER icingaweb2 - icingaweb2 database user MYSQL_ICINGAWEB_PASSWORD icingaweb2 - icingaweb2 database password
MYSQL_DIRECTOR_DB director - name of the director database MYSQL_DIRECTOR_USER director - name of the director database user MYSQL_DIRECTOR_PASSWORD director - director database user password
ADMIN_USER admin - icingaweb2 frontend username ADMIN_PASSWORD admin - icingaweb2 frontend password
The goal is to create a production ready set of docker containers for icinga2, icingaweb2, director plugin.