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: 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} 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: