setup full autodeployment for icingaweb with grafana

This commit is contained in:
2025-02-02 02:35:29 +01:00
parent 99858ab83d
commit 1e7e1f829c
5 changed files with 420 additions and 24 deletions

View File

@@ -1,6 +1,6 @@
services:
icingaweb2:
image: git.ao-it.net/docker/icingaweb2
image: git.ao-it.net/docker/icingaweb2:latest
hostname: icingaweb2
depends_on:
- db_icingaweb
@@ -10,7 +10,7 @@ services:
ports:
- 8080:8080
networks:
- icingaweb
- icinga
environment:
## icingaweb2 general
- ICINGAWEB2_DB_RESOURCE_NAME=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}
@@ -61,6 +61,16 @@ services:
#- ICINGAWEB2_ICINGADB_CMD__icinga2__port=${ICINGA_API_PORT:-5665}
#- ICINGAWEB2_ICINGADB_CMD__icinga2__username=${ICINGA_API_ICINGAWEB_USER:-icingaweb}
#- 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
@@ -69,12 +79,47 @@ services:
volumes:
- ./files/dbs/icingaweb:/var/lib/mysql
networks:
- icingaweb
- 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_NAME: Main Org.
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:-influxdb}
GRAFANA_DEFAULT_SOURCE_UID: ${ICINGA_INFLUX_HOST:-influxdb}
GRAFANA_DEFAULT_SOURCE_USER: ${ICINGA_INFLUX_USER:-icinga}
GRAFANA_DEFAULT_SOURCE_DB: ${ICINGA_INFLUX_DB:-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}
networks:
icingaweb:
icinga: