update some informations after create full stack

This commit is contained in:
2025-02-02 19:30:34 +01:00
parent 09e50c5e36
commit 6ad0ed98d2
5 changed files with 39 additions and 47 deletions

View File

@@ -1,21 +1,29 @@
# Docker IcingaWeb2 # Docker IcingaWeb2
[![Build Status](https://git.ao-it.net/docker/icingaweb2/actions/workflows/docker-build.yml/badge.svg?branch=main&event=push)](https://git.ao-it.net/docker/icingaweb2/actions?workflow=docker-build.yml&actor=0&status=0) [![Build Status](https://git.ao-it.net/docker/icingaweb2/actions/workflows/docker-build.yml/badge.svg?branch=main&event=push)](https://git.ao-it.net/docker/icingaweb2/actions?workflow=docker-build.yml&actor=0&status=0)
Designed with [https://git.ao-it.net/docker/icinga2](https://git.ao-it.net/docker/icinga2) If you need a full stack:
* [AO-IT: icinga-stack](https://git.ao-it.net/docker/icinga-stack)
* [AO-IT: icinga2](https://git.ao-it.net/docker/icinga2)
## quick start Or a additional satellite:
* [AO-IT: icinga-satellite](https://git.ao-it.net/docker/icinga-satellite)
## usage
If you have a functional icinga2 instance only without icingaweb2: If you have a functional icinga2 instance only without icingaweb2:
```bash ```bash
git clone https://git.ao-it.net/docker/icingaweb2 git clone https://git.ao-it.net/docker/icingaweb2
cd icingaweb2 cd icingaweb2
cp env.sample .env cp env.sample .env
nano .env # edit your settings # must edit: GRAFANA_HOST with local IP or FQDN
nano .env # edit your env
docker compose up -d docker compose up -d
``` ```
Hints:
For a full deployment see: [comming soon ...]() * If you run the setup without any environment vars the setup token will be printet in docker log!
* If you deploy IcingaDB ENV but it can't be reach, icingaweb looks like broken but it isn't
If you run the setup without any environment vars the setup token will be printet in docker log! * You can remove the environment var `ICINGAWEB2_CONF_ONCE` whan will changes in `compose.yml` environment deploy every time if the container starts.
* You can use this for future config changes, but this isn't good tested and i am not sure i will recommend this...
## understand environment ## understand environment
For the configuration (primarily the initial setup) I use a similar method as: https://hub.docker.com/r/icinga/icingaweb2 For the configuration (primarily the initial setup) I use a similar method as: https://hub.docker.com/r/icinga/icingaweb2
@@ -77,7 +85,7 @@ Vars for the container have the `2`
## example ## example
See [compose.yml](compose.yml). See [compose.yml](compose.yml).
This is for environment priview This is for environment priview (minimal setup)
```yaml ```yaml
services: services:
icingaweb2: icingaweb2:
@@ -96,13 +104,6 @@ services:
- ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__username=${ICINGAWEB_DB_USER:-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}__password=${ICINGAWEB_DB_PASS:-icingaweb}
- ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__charset=utf8mb4 - ICINGAWEB2_RESOURCES__${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}__charset=utf8mb4
- 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_AUTH__icingaweb2__backend=db - ICINGAWEB2_AUTH__icingaweb2__backend=db
- ICINGAWEB2_AUTH__icingaweb2__resource=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db} - ICINGAWEB2_AUTH__icingaweb2__resource=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}
- ICINGAWEB2_GROUPS__icingaweb2__backend=db - ICINGAWEB2_GROUPS__icingaweb2__backend=db
@@ -110,14 +111,6 @@ services:
- ICINGAWEB2_ROLES__${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators}__groups=${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators} - 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}__permissions="*"
- ICINGAWEB2_ROLES__${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators}__users=${ICINGAWEB_DEFAULT_ADMIN_USER:-icingaadmin} - ICINGAWEB2_ROLES__${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators}__users=${ICINGAWEB_DEFAULT_ADMIN_USER:-icingaadmin}
- ICINGAWEB2_ICINGADB_CONF__icingadb__resource=icingadb
- ICINGAWEB2_ICINGADB_REDIS__redis1__host=redis
- ICINGAWEB2_ICINGADB_REDIS__redis1__port=6379
- ICINGAWEB2_ICINGADB_CMD__icinga2__transport=api
- ICINGAWEB2_ICINGADB_CMD__icinga2__host=icinga2
- ICINGAWEB2_ICINGADB_CMD__icinga2__port=5665
- ICINGAWEB2_ICINGADB_CMD__icinga2__username=icingaweb
- ICINGAWEB2_ICINGADB_CMD__icinga2__password=icingaweb
- ICINGAWEB2_DB_RESOURCE_NAME=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db} - ICINGAWEB2_DB_RESOURCE_NAME=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}
- ICINGAWEB2_DEFAULT_ADMIN_USER=${ICINGAWEB_DEFAULT_ADMIN_USER:-icingaadmin} - ICINGAWEB2_DEFAULT_ADMIN_USER=${ICINGAWEB_DEFAULT_ADMIN_USER:-icingaadmin}
- ICINGAWEB2_DEFAULT_ADMIN_PASS=${ICINGAWEB_DEFAULT_ADMIN_PASS:-icingaadmin} - ICINGAWEB2_DEFAULT_ADMIN_PASS=${ICINGAWEB_DEFAULT_ADMIN_PASS:-icingaadmin}
@@ -133,11 +126,6 @@ services:
- ICINGAWEB2_GRAFANA_GRAPH__check_command__panelId= - ICINGAWEB2_GRAFANA_GRAPH__check_command__panelId=
``` ```
You can remove the environment var `ICINGAWEB2_CONF_ONCE` whan will changes in `compose.yml` environment deploy every time if the container starts.
You can use this for future config changes, but this isn't tested and i am not sure i will recommend this...
For now be save and use it only for inital setup.
## Sources ## Sources
### Icingaweb2 ### Icingaweb2
* [Install Icinga Web 2](https://icinga.com/docs/icinga-web/latest/doc/02-Installation/01-Debian/) * [Install Icinga Web 2](https://icinga.com/docs/icinga-web/latest/doc/02-Installation/01-Debian/)

View File

@@ -1,4 +1,5 @@
services: services:
##### ICINGAWEB2 #####
icingaweb2: icingaweb2:
image: git.ao-it.net/docker/icingaweb2:latest image: git.ao-it.net/docker/icingaweb2:latest
hostname: icingaweb2 hostname: icingaweb2
@@ -12,6 +13,7 @@ services:
networks: networks:
- icinga - icinga
environment: environment:
- ICINGAWEB2_CONF_ONCE=true
## icingaweb2 general ## icingaweb2 general
- ICINGAWEB2_DB_RESOURCE_NAME=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db} - ICINGAWEB2_DB_RESOURCE_NAME=${ICINGAWEB_DB_RESOURCE_NAME:-icingaweb_db}
- ICINGAWEB2_DEFAULT_ADMIN_USER=${ICINGAWEB_DEFAULT_ADMIN_USER:-icingaadmin} - ICINGAWEB2_DEFAULT_ADMIN_USER=${ICINGAWEB_DEFAULT_ADMIN_USER:-icingaadmin}
@@ -51,16 +53,16 @@ services:
- ICINGAWEB2_ROLES__${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators}__users=${ICINGAWEB_DEFAULT_ADMIN_USER:-icingaadmin} - ICINGAWEB2_ROLES__${ICINGAWEB_DEFAULT_ADMIN_ROLE:-Administrators}__users=${ICINGAWEB_DEFAULT_ADMIN_USER:-icingaadmin}
## module: icingadb ## module: icingadb
### icingadb: conf.ini ### icingadb: conf.ini
#- ICINGAWEB2_ICINGADB_CONF__icingadb__resource=icingadb - ICINGAWEB2_ICINGADB_CONF__icingadb__resource=icingadb
### icingadb: redis.ini ### icingadb: redis.ini
#- ICINGAWEB2_ICINGADB_REDIS__redis1__host=${ICINGADB_REDIS_HOST:-redis} - ICINGAWEB2_ICINGADB_REDIS__redis1__host=${ICINGADB_REDIS_HOST:-db_redis}
#- ICINGAWEB2_ICINGADB_REDIS__redis1__port=${ICINGADB_REDIS_PORT:-6379} - ICINGAWEB2_ICINGADB_REDIS__redis1__port=${ICINGADB_REDIS_PORT:-6379}
### icingadb: commandtransports.ini ### icingadb: commandtransports.ini
#- ICINGAWEB2_ICINGADB_CMD__icinga2__transport=${ICINGADB_CMD_TYPE:-api} - ICINGAWEB2_ICINGADB_CMD__icinga2__transport=${ICINGADB_CMD_TYPE:-api}
#- ICINGAWEB2_ICINGADB_CMD__icinga2__host=${ICINGA_API_HOST:-icinga2} - ICINGAWEB2_ICINGADB_CMD__icinga2__host=${ICINGA_API_HOST:-icinga2}
#- ICINGAWEB2_ICINGADB_CMD__icinga2__port=${ICINGA_API_PORT:-5665} - ICINGAWEB2_ICINGADB_CMD__icinga2__port=${ICINGA_API_PORT:-5665}
#- ICINGAWEB2_ICINGADB_CMD__icinga2__username=${ICINGA_API_ICINGAWEB_USER:-icingaweb} - ICINGAWEB2_ICINGADB_CMD__icinga2__username=${ICINGA_API_ICINGAWEB_USER:-icingaweb2}
#- ICINGAWEB2_ICINGADB_CMD__icinga2__password=${ICINGA_API_ICINGAWEB_PASS:-icingaweb} - ICINGAWEB2_ICINGADB_CMD__icinga2__password=${ICINGA_API_ICINGAWEB_PASS:-icingaweb}
## module: grafana ## module: grafana
### grafana: conf.ini ### grafana: conf.ini
- ICINGAWEB2_GRAFANA_CONF__grafana__host=${GRAFANA_HOST:-grafana}:${GRAFANA_PORT:-3000} - ICINGAWEB2_GRAFANA_CONF__grafana__host=${GRAFANA_HOST:-grafana}:${GRAFANA_PORT:-3000}
@@ -92,7 +94,6 @@ services:
depends_on: depends_on:
- icingaweb2 - icingaweb2
restart: always restart: always
#user: '0'
ports: ports:
- ${GRAFANA_PORT:-3000}:3000 - ${GRAFANA_PORT:-3000}:3000
networks: networks:
@@ -105,17 +106,18 @@ services:
## required configs ## required configs
GF_AUTH_ANONYMOUS_ENABLED: true GF_AUTH_ANONYMOUS_ENABLED: true
GF_SECURITY_ALLOW_EMBEDDING: true GF_SECURITY_ALLOW_EMBEDDING: true
#GF_AUTH_ANONYMOUS_ORG_NAME: Main Org.
GF_AUTH_ANONYMOUS_ORG_ROLE: Viewer GF_AUTH_ANONYMOUS_ORG_ROLE: Viewer
GF_AUTH_ANONYMOUS_HIDE_VERSION: true GF_AUTH_ANONYMOUS_HIDE_VERSION: true
## user settings ## user settings
GF_SECURITY_ADMIN_USER: ${GRAFANA_ADMIN_USER:-grafanaadmin} GF_SECURITY_ADMIN_USER: ${GRAFANA_ADMIN_USER:-grafanaadmin}
GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_ADMIN_PASS:-grafanaadmin} GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_ADMIN_PASS:-grafanaadmin}
## default data source ## default data source
GRAFANA_DEFAULT_SOURCE_NAME: ${ICINGA_INFLUX_HOST:-influxdb} GRAFANA_DEFAULT_SOURCE_NAME: ${ICINGA_INFLUX_HOST:-db_influxdb}
GRAFANA_DEFAULT_SOURCE_UID: ${ICINGA_INFLUX_HOST:-influxdb} GRAFANA_DEFAULT_SOURCE_UID: ${ICINGA_INFLUX_HOST:-db_influxdb}
GRAFANA_DEFAULT_SOURCE_USER: ${ICINGA_INFLUX_USER:-icinga}
GRAFANA_DEFAULT_SOURCE_DB: ${ICINGA_INFLUX_DB:-icinga} 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} GRAFANA_DEFAULT_SOURCE_PASS: ${ICINGA_INFLUX_PASS:-icinga}
## default dashboard ## default dashboard
GRAFANA_DEFAULT_DASHBOARD_NAME: ${GRAFANA_DASHBOARD_NAME:-icinga2-default} GRAFANA_DEFAULT_DASHBOARD_NAME: ${GRAFANA_DASHBOARD_NAME:-icinga2-default}

View File

@@ -31,9 +31,9 @@ ICINGA_API_ICINGAWEB_USER=icingaweb
ICINGA_API_ICINGAWEB_PASS=icingaweb ICINGA_API_ICINGAWEB_PASS=icingaweb
## grafana settings ## grafana settings
### must be change else you dont have graphs #> GRAFANA_HOST must be change else you dont have graphs
### must be a network address what your client can reach #> GRAFANA_HOST must be a network address what your client can reach
GRAFANA_HOST=$(hostname -I | awk '{print $1}') # set first ip of system, can be wrong! GRAFANA_HOST='' # to get ip: $(hostname -I | awk '{print $1}') # sets first ip of system, can be wrong!
GRAFANA_PORT=3000 GRAFANA_PORT=3000
GRAFANA_DASHBOARD_NAME=icinga2-default GRAFANA_DASHBOARD_NAME=icinga2-default
GRAFANA_DASHBOARD_UID=icinga2-default GRAFANA_DASHBOARD_UID=icinga2-default

View File

@@ -6,7 +6,8 @@ datasources:
uid: $GRAFANA_DEFAULT_SOURCE_UID uid: $GRAFANA_DEFAULT_SOURCE_UID
access: proxy access: proxy
user: $GRAFANA_DEFAULT_SOURCE_USER user: $GRAFANA_DEFAULT_SOURCE_USER
url: http://influxdb:8086 url: http://$GRAFANA_DEFAULT_SOURCE_HOST:$GRAFANA_DEFAULT_SOURCE_PORT
isDefault: true
jsonData: jsonData:
dbName: $GRAFANA_DEFAULT_SOURCE_DB dbName: $GRAFANA_DEFAULT_SOURCE_DB
httpMode: GET httpMode: GET

View File

@@ -3,6 +3,7 @@
{ {
"name": "DS_ICINGA2", "name": "DS_ICINGA2",
"label": "Icinga2", "label": "Icinga2",
"value": "db_influxdb",
"description": "", "description": "",
"type": "datasource", "type": "datasource",
"pluginId": "influxdb", "pluginId": "influxdb",
@@ -80,7 +81,7 @@
"bars": false, "bars": false,
"dashLength": 10, "dashLength": 10,
"dashes": false, "dashes": false,
"datasource": "influxdb", "datasource": "db_influxdb",
"fill": 1, "fill": 1,
"id": 1, "id": 1,
"legend": { "legend": {
@@ -302,6 +303,6 @@
}, },
"timezone": "", "timezone": "",
"title": "icinga2-default", "title": "icinga2-default",
"uid": "icinga-default", "uid": "icinga2-default",
"version": 3 "version": 3
} }