This guide uses Docker Compose to run Icinga 2 monitoring stack.
For Docker installation, see Docker.
mkdir -p /opt/icinga/{data,config}
cd /opt/icinga
Create docker-compose.yml:
services:
icinga2:
image: icinga/icinga2:2.15.2
container_name: icinga2
hostname: icinga2
ports:
- "5665:5665"
- "5666:5666"
volumes:
- ./data:/var/lib/icinga2:rw
- ./config:/etc/icinga2:rw
environment:
- ICINGA2_MASTER=true
- ICINGA2_NODE_NAME=icinga2
- ICINGA2_ACCEPT_CONFIG=true
- ICINGA2_ACCEPT_COMMANDS=true
restart: unless-stopped
networks:
- icinga
icingadb:
image: icinga/icingadb:1.5.1
container_name: icingadb
depends_on:
- icinga2
- mysql
environment:
- ICINGADB_REDIS_HOST=redis
- ICINGADB_DB_HOST=mysql
- ICINGADB_DB_NAME=icinga
- ICINGADB_DB_USER=icinga
- ICINGADB_DB_PASSWORD=icinga_password
restart: unless-stopped
networks:
- icinga
mysql:
image: mariadb:11
container_name: icinga-mysql
environment:
- MYSQL_ROOT_PASSWORD=root_password
- MYSQL_DATABASE=icinga
- MYSQL_USER=icinga
- MYSQL_PASSWORD=icinga_password
volumes:
- ./data/mysql:/var/lib/mysql
restart: unless-stopped
networks:
- icinga
redis:
image: redis:7-alpine
container_name: icinga-redis
volumes:
- ./data/redis:/data
restart: unless-stopped
networks:
- icinga
director:
image: icinga/icingaweb2:2.12.6-director
container_name: icinga-director
depends_on:
- icinga2
- mysql
ports:
- "80:80"
volumes:
- ./config/director:/etc/icingaweb2:rw
environment:
- ICINGAWEB2_CONFIG_CONFIG_BACKEND=db
- DB_BACKEND=mysql
- DB_HOST=mysql
- DB_NAME=icingaweb2
- DB_USER=icinga
- DB_PASS=icinga_password
restart: unless-stopped
networks:
- icinga
networks:
icinga:
driver: bridge
docker compose up -d
Note: Initial startup may take 3-5 minutes.
Check container status:
docker compose ps
View logs:
docker compose logs -f icinga2
Access web UI at http://SERVER_IP/icingaweb2 with:
icingaadmindocker compose exec icinga2 icinga2 --help
docker compose restart icinga2
docker compose down
docker compose pull
docker compose up -d
./data directoryOn monitored hosts (Debian/Ubuntu):
wget -O - https://packages.icinga.com/icinga.key | apt-key add -
add-apt-repository "deb https://packages.icinga.com/debian icinga-$(lsb_release -cs) main"
apt-get update
apt-get install icinga2
Deploying Icinga in containers for production? Our consulting covers:
Get expert help: office@linux-server-admin.com | Contact Page