232 lines
10 KiB
YAML
232 lines
10 KiB
YAML
services:
|
|
##### ICINGAWEB2 #####
|
|
icingaweb2:
|
|
image: git.ao-it.net/docker/icingaweb2:latest
|
|
hostname: icingaweb2
|
|
depends_on:
|
|
- db_icingaweb
|
|
restart: always
|
|
volumes:
|
|
- ./files/icingaweb2:/data
|
|
ports:
|
|
- 8080:8080
|
|
networks:
|
|
- icinga
|
|
environment:
|
|
## icingaweb2 general
|
|
- ICINGAWEB2_DB_RESOURCE_NAME=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}
|
|
- ICINGAWEB2_DEFAULT_ADMIN_USER=${ICINGAWEB_DEFAULT_ADMIN_USER:-icingaadmin}
|
|
- ICINGAWEB2_DEFAULT_ADMIN_PASS=${ICINGAWEB_DEFAULT_ADMIN_PASS:-icingaadmin}
|
|
## icingaweb2: conf.ini
|
|
- ICINGAWEB2_CONF__logging__log=php
|
|
- ICINGAWEB2_CONF__logging__level=ERROR
|
|
- ICINGAWEB2_CONF__logging__application=icingaweb2
|
|
- ICINGAWEB2_CONF__global__config_backend=db
|
|
- ICINGAWEB2_CONF__global__config_resource=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}
|
|
## icingaweb2: resources.ini
|
|
### user & resource db for icingaweb2
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__type=db
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__db=mysql
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__host=${ICINGAWEB_DB_HOST:-db_icingaweb}
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__dbname=${ICINGAWEB_DB:-icingaweb}
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__username=${ICINGAWEB_DB_USER:-icingaweb}
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__password=${ICINGAWEB_DB_PASS:-icingaweb}
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__charset=utf8mb4
|
|
### module oidc db for icingaweb2
|
|
- ICINGAWEB2_RESOURCES__${OIDC_RESOURCE_NAME:-icingaweb_oidc_db}__type=db
|
|
- ICINGAWEB2_RESOURCES__${OIDC_RESOURCE_NAME:-icingaweb_oidc_db}__db=mysql
|
|
- ICINGAWEB2_RESOURCES__${OIDC_RESOURCE_NAME:-icingaweb_oidc_db}__host=${OIDC_DB_HOST:-db_icingaweb_oidc}
|
|
- ICINGAWEB2_RESOURCES__${OIDC_RESOURCE_NAME:-icingaweb_oidc_db}__dbname=${OIDC_DB:-icingaweb_oidc}
|
|
- ICINGAWEB2_RESOURCES__${OIDC_RESOURCE_NAME:-icingaweb_oidc_db}__username=${OIDC_DB_USER:-icingaweb_oidc}
|
|
- ICINGAWEB2_RESOURCES__${OIDC_RESOURCE_NAME:-icingaweb_oidc_db}__password=${OIDC_DB_PASS:-icingaweb_oidc}
|
|
- ICINGAWEB2_RESOURCES__${OIDC_RESOURCE_NAME:-icingaweb_oidc_db}__charset=utf8mb4
|
|
### module: icingadb db resource
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__type=db
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__db=mysql
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__host=${ICINGA_DB_HOST:-db_icinga}
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__dbname=${ICINGA_DB:-icingadb}
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__username=${ICINGA_DB_USER:-icingadb}
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__password=${ICINGA_DB_PASS:-icingadb}
|
|
- ICINGAWEB2_RESOURCES__${ICINGAWDB_RESOURCE_NAME:-icingadb}__charset=utf8mb4
|
|
## icingaweb2: authencitation.ini
|
|
- ICINGAWEB2_AUTH__icingaweb2__backend=db
|
|
- ICINGAWEB2_AUTH__icingaweb2__resource=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}
|
|
## icingaweb2: groups.ini
|
|
- ICINGAWEB2_GROUPS__icingaweb2__backend=db
|
|
- ICINGAWEB2_GROUPS__icingaweb2__resource=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}
|
|
## icingaweb2: roles.ini
|
|
- ICINGAWEB2_ROLES__${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators}__groups=${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators}
|
|
- ICINGAWEB2_ROLES__${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators}__permissions="*"
|
|
- ICINGAWEB2_ROLES__${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators}__users=${ICINGAWEB_DEFAULT_ADMIN_USER:-icingaadmin}
|
|
## module: icingadb
|
|
### icingadb: conf.ini
|
|
- ICINGAWEB2_ICINGADB_CONF__icingadb__resource=icingadb
|
|
### icingadb: redis.ini
|
|
- ICINGAWEB2_ICINGADB_REDIS__redis1__host=${ICINGADB_REDIS_HOST:-db_redis}
|
|
- ICINGAWEB2_ICINGADB_REDIS__redis1__port=${ICINGADB_REDIS_PORT:-6379}
|
|
### icingadb: commandtransports.ini
|
|
- ICINGAWEB2_ICINGADB_CMD__icinga2__transport=${ICINGADB_CMD_TYPE:-api}
|
|
- ICINGAWEB2_ICINGADB_CMD__icinga2__host=${ICINGA_API_HOST:-icinga2}
|
|
- ICINGAWEB2_ICINGADB_CMD__icinga2__port=${ICINGA_API_PORT:-5665}
|
|
- ICINGAWEB2_ICINGADB_CMD__icinga2__username=${ICINGA_API_ICINGAWEB_USER:-icingaweb2}
|
|
- ICINGAWEB2_ICINGADB_CMD__icinga2__password=${ICINGA_API_ICINGAWEB_PASS:-icingaweb}
|
|
## module: grafana
|
|
### grafana: conf.ini
|
|
- ICINGAWEB2_GRAFANA_CONF__grafana__host=${GRAFANA_HOST:-grafana}:${GRAFANA_PORT:-3000}
|
|
- ICINGAWEB2_GRAFANA_CONF__grafana__defaultdashboard=${GRAFANA_DASHBOARD_NAME:-icinga2-default}
|
|
- ICINGAWEB2_GRAFANA_CONF__grafana__defaultdashboarduid=${GRAFANA_DASHBOARD_UID:-icinga2-default}
|
|
- ICINGAWEB2_GRAFANA_CONF__grafana__defaultdashboardpanelid=1
|
|
- ICINGAWEB2_GRAFANA_CONF__grafana__defaultorgid=1
|
|
- ICINGAWEB2_GRAFANA_CONF__grafana__timerange=12h
|
|
- ICINGAWEB2_GRAFANA_CONF__grafana__shadows="1"
|
|
- ICINGAWEB2_GRAFANA_CONF__grafana__accessmode=iframe
|
|
|
|
db_icingaweb:
|
|
image: mariadb:latest
|
|
hostname: ${ICINGAWEB_DB_HOST:-db_icingaweb}
|
|
restart: always
|
|
volumes:
|
|
- ./files/dbs/icingaweb:/var/lib/mysql
|
|
- /etc/localtime:/etc/localtime:ro
|
|
networks:
|
|
- icinga
|
|
environment:
|
|
MARIADB_RANDOM_ROOT_PASSWORD: yes
|
|
MARIADB_DATABASE: ${ICINGAWEB_DB:-icingaweb}
|
|
MARIADB_USER: ${ICINGAWEB_DB_USER:-icingaweb}
|
|
MARIADB_PASSWORD: ${ICINGAWEB_DB_PASS:-icingaweb}
|
|
|
|
db_icingaweb_oidc:
|
|
image: mariadb:latest
|
|
hostname: ${OIDC_DB_HOST:-db_icingaweb_oidc}
|
|
restart: always
|
|
volumes:
|
|
- ./files/dbs/icingaweb_oidc:/var/lib/mysql
|
|
- /etc/localtime:/etc/localtime:ro
|
|
networks:
|
|
- icinga
|
|
environment:
|
|
MARIADB_RANDOM_ROOT_PASSWORD: yes
|
|
MARIADB_DATABASE: ${OIDC_DB:-icingaweb_oidc}
|
|
MARIADB_USER: ${OIDC_DB_USER:-icingaweb_oidc}
|
|
MARIADB_PASSWORD: ${OIDC_DB_PASS:-icingaweb_oidc}
|
|
|
|
grafana:
|
|
image: grafana/grafana:latest
|
|
hostname: grafana
|
|
depends_on:
|
|
- icingaweb2
|
|
restart: always
|
|
#user: '0'
|
|
ports:
|
|
- ${GRAFANA_PORT:-3000}:3000
|
|
networks:
|
|
- icinga
|
|
volumes:
|
|
- ./grafana/default.source.yml:/etc/grafana/provisioning/datasources/default.yml
|
|
- ./grafana/default.dashboard.yml:/etc/grafana/provisioning/dashboards/default.yml
|
|
- ./grafana/icinga2-default.json:/var/lib/grafana/dashboards/${GRAFANA_DASHBOARD_FILE:-icinga2-default.json}
|
|
environment:
|
|
## required configs
|
|
GF_AUTH_ANONYMOUS_ENABLED: true
|
|
GF_SECURITY_ALLOW_EMBEDDING: true
|
|
GF_AUTH_ANONYMOUS_ORG_ROLE: Viewer
|
|
GF_AUTH_ANONYMOUS_HIDE_VERSION: true
|
|
## user settings
|
|
GF_SECURITY_ADMIN_USER: ${GRAFANA_ADMIN_USER:-grafanaadmin}
|
|
GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_ADMIN_PASS:-grafanaadmin}
|
|
## default data source
|
|
GRAFANA_DEFAULT_SOURCE_NAME: ${ICINGA_INFLUX_HOST:-db_influxdb}
|
|
GRAFANA_DEFAULT_SOURCE_UID: ${ICINGA_INFLUX_HOST:-db_influxdb}
|
|
GRAFANA_DEFAULT_SOURCE_DB: ${ICINGA_INFLUX_DB:-icinga}
|
|
GRAFANA_DEFAULT_SOURCE_HOST: ${ICINGA_INFLUX_HOST:-db_influxdb}
|
|
GRAFANA_DEFAULT_SOURCE_PORT: ${ICINGA_INFLUX_PORT:-8086}
|
|
GRAFANA_DEFAULT_SOURCE_USER: ${ICINGA_INFLUX_USER:-icinga}
|
|
GRAFANA_DEFAULT_SOURCE_PASS: ${ICINGA_INFLUX_PASS:-icinga}
|
|
## default dashboard
|
|
GRAFANA_DEFAULT_DASHBOARD_NAME: ${GRAFANA_DASHBOARD_NAME:-icinga2-default}
|
|
GRAFANA_DEFAULT_DASHBOARD_FILE: ${GRAFANA_DASHBOARD_FILE:-icinga2-default.json}
|
|
|
|
##### ICINGA2 #####
|
|
db_icinga:
|
|
image: mariadb
|
|
hostname: ${ICINGA_DB_HOST:-db_icinga}
|
|
restart: always
|
|
volumes:
|
|
- ./files/dbs/icinga:/var/lib/mysql
|
|
networks:
|
|
- icinga
|
|
environment:
|
|
MARIADB_RANDOM_ROOT_PASSWORD: yes
|
|
MARIADB_DATABASE: ${ICINGA_DB:-icingadb}
|
|
MARIADB_USER: ${ICINGA_DB_USER:-icingadb}
|
|
MARIADB_PASSWORD: ${ICINGA_DB_PASS:-icingadb}
|
|
|
|
db_redis:
|
|
image: redis
|
|
hostname: ${ICINGADB_REDIS_HOST:-db_redis}
|
|
restart: always
|
|
networks:
|
|
- icinga
|
|
|
|
# sync handler between icingadb (db_icinga) and redis (db_redis)
|
|
icingadb:
|
|
image: icinga/icingadb
|
|
depends_on:
|
|
- db_redis
|
|
- db_icinga
|
|
restart: always
|
|
networks:
|
|
- icinga
|
|
environment:
|
|
- ICINGADB_REDIS_HOST=${ICINGADB_REDIS_HOST:-db_redis}
|
|
- ICINGADB_REDIS_PORT=${ICINGADB_REDIS_PORT:-6379}
|
|
- ICINGADB_DATABASE_HOST=${ICINGA_DB_HOST:-db_icinga}
|
|
- ICINGADB_DATABASE_PORT=${ICINGA_DB_PORT:-3306}
|
|
- ICINGADB_DATABASE_DATABASE=${ICINGA_DB:-icingadb}
|
|
- ICINGADB_DATABASE_USER=${ICINGA_DB_USER:-icingadb}
|
|
- ICINGADB_DATABASE_PASSWORD=${ICINGA_DB_PASS:-icingadb}
|
|
|
|
db_influxdb:
|
|
image: influxdb:1.8
|
|
hostname: ${ICINGA_INFLUX_HOST:-db_influxdb}
|
|
restart: always
|
|
networks:
|
|
- icinga
|
|
volumes:
|
|
- ./files/dbs/influx:/vol01/Docker/monitoring
|
|
environment:
|
|
- INFLUXDB_DB=${ICINGA_INFLUX_DB:-icinga}
|
|
- INFLUXDB_USER=${ICINGA_INFLUX_USER:-icinga}
|
|
- INFLUXDB_ADMIN_ENABLED=true
|
|
- INFLUXDB_ADMIN_USER=${INFLUX_ADMIN_USER:-icinga}
|
|
- INFLUXDB_ADMIN_PASSWORD=${INFLUX_ADMIN_PASS:-icinga}
|
|
|
|
icinga2:
|
|
image: git.ao-it.net/docker/icinga2:latest
|
|
hostname: ${ICINGA_API_HOST:-icinga2}
|
|
depends_on:
|
|
- db_redis
|
|
restart: always
|
|
volumes:
|
|
- ./files/icinga2:/data
|
|
- /etc/localtime:/etc/localtime:ro
|
|
ports:
|
|
- ${ICINGA_API_PORT:-5665}:5665 # only need if you plan to use api from other sources as icingaweb2
|
|
networks:
|
|
- icinga
|
|
environment:
|
|
# REMOVE VARS HERE IF YOU EDIT THE CONFIG DIRECTLY!!
|
|
# The variables are primarily for the initial setup, later editing is recommended directly in the icinga config.
|
|
# Empty or non-existent vars do not change anything
|
|
ICINGA2_API_USER_ROOT_PASS: ${API_ROOT_PASS:-changeME!}
|
|
ICINGA2_API_USER_ICINGAWEB_PASS: ${ICINGA_API_ICINGAWEB_PASS:-icingaweb} # only on first init! create api user icingaweb and set password
|
|
#ICINGA2_API_USER_SATELLITE_PASS: ${ICINGA_API_ICINGAWEB_PASS:-pkigen123!!} # only on first init! create api user icingaweb and set password
|
|
ICINGA2_ICINGADB_REDIS_HOST: ${ICINGADB_REDIS_HOST:-db_redis}
|
|
ICINGA2_ICINGADB_REDIS_PORT: ${ICINGADB_REDIS_PORT:-6379}
|
|
ICINGA2_INFLUXDB_HOST: ${ICINGA_INFLUX_HOST:-db_influxdb}
|
|
ICINGA2_INFLUXDB_PORT: ${ICINGA_INFLUX_PORT:-8086}
|
|
ICINGA2_INFLUXDB_DB: ${ICINGA_INFLUX_DB:-icinga}
|
|
|
|
networks:
|
|
icinga: |