From fc0db54fb766872185f08b4a1dac998de5aad8d2 Mon Sep 17 00:00:00 2001 From: wserr Date: Sun, 6 Oct 2024 17:26:49 +0200 Subject: [PATCH] Update configuration --- .../configuration-production.yaml | 13 ++++ configurations/otel/collector-config.yaml | 11 ++- configurations/prometheus/prometheus.yml | 7 +- configurations/traefik/traefik.1.7.10.toml | 74 ------------------- configurations/traefik/traefik.yml | 25 +++++++ home-server/docker-compose.yml | 45 ++++++++--- home-server/envs/production.env | 2 - 7 files changed, 87 insertions(+), 90 deletions(-) create mode 100644 configurations/home-assistant/configuration-production.yaml delete mode 100644 configurations/traefik/traefik.1.7.10.toml create mode 100644 configurations/traefik/traefik.yml diff --git a/configurations/home-assistant/configuration-production.yaml b/configurations/home-assistant/configuration-production.yaml new file mode 100644 index 0000000..b6919eb --- /dev/null +++ b/configurations/home-assistant/configuration-production.yaml @@ -0,0 +1,13 @@ +# Loads default set of integrations. Do not remove +# This was added to the homeAutomation repo. +# This is a sample configuration. Please create a configuration.production.yml for production use. +default_config: + +automation: !include automations.yaml +script: !include scripts.yaml +scene: !include scenes.yaml + +http: + use_x_forwarded_for: true + trusted_proxies: + - 172.18.0.0/24 diff --git a/configurations/otel/collector-config.yaml b/configurations/otel/collector-config.yaml index 3060b1a..907f3ea 100644 --- a/configurations/otel/collector-config.yaml +++ b/configurations/otel/collector-config.yaml @@ -6,7 +6,12 @@ receivers: http: endpoint: 0.0.0.0:4318 +processors: + batch: + exporters: + prometheus: + endpoint: 0.0.0.0:8889 debug: verbosity: detailed @@ -15,5 +20,9 @@ service: pipelines: traces: receivers: [otlp] - processors: [] + processors: [batch] exporters: [debug] + metrics: + receivers: [otlp] + processors: [batch] + exporters: [prometheus,debug] diff --git a/configurations/prometheus/prometheus.yml b/configurations/prometheus/prometheus.yml index 4be0808..e644fcf 100644 --- a/configurations/prometheus/prometheus.yml +++ b/configurations/prometheus/prometheus.yml @@ -8,8 +8,11 @@ scrape_configs: - targets: ["prometheus:9090"] - job_name: "node" + scrape_interval: 1m static_configs: - targets: ["node-exporter:9100"] - - job_name: "pi_node" + + - job_name: "otel" + scrape_interval: 5s static_configs: - - targets: ["10.55.8.1:9100"] + - targets: ["otel-collector:8889"] diff --git a/configurations/traefik/traefik.1.7.10.toml b/configurations/traefik/traefik.1.7.10.toml deleted file mode 100644 index efe886b..0000000 --- a/configurations/traefik/traefik.1.7.10.toml +++ /dev/null @@ -1,74 +0,0 @@ -[entryPoints] - [entryPoints.http] - address = ":80" - - [entryPoints.https] - address = ":443" - [entryPoints.https.tls] - [[entryPoints.https.tls.certificates]] - certFile = "/var/lib/certificates/cert.pem" - keyFile = "/var/lib/certificates/key.pem" - -[file] -[backends] - [backends.whoami] - [backends.whoami.servers.server1] - url = "http://whoami:2001" - - [backends.grafana] - [backends.grafana.servers.server1] - url = "http://grafana:3000" - - [backends.syncthing] - [backends.syncthing.servers.server1] - url = "http://syncthing:8384" - - [backends.homeassistant] - [backends.homeassistant.servers.server1] - url = "http://homeassistant:8123" - - [backends.influxdb] - [backends.influxdb.servers.server1] - url = "http://influxdb:8086" - -[frontends] - [frontends.whoami] - backend = "whoami" - [frontends.whoami.routes.path] - rule = "Path:/whoami;ReplacePathRegex: ^/whoami(.*) /$1" - - [frontends.grafana] - backend = "grafana" - [frontends.grafana.routes.path] - rule = "Path:/grafana;ReplacePathRegex: ^/grafana(.*) /$1" - - [frontends.syncthing] - backend = "syncthing" - [frontends.syncthing.routes.path] - rule = "Path:/syncthing;ReplacePathRegex: ^/syncthing(.*) /$1" - - [frontends.syncthing-referrer] - backend = "syncthing" - [frontends.syncthing-referrer.routes.referrer] - rule = "HeadersRegexp: Referer, /*.syncthing" - - [frontends.homeassistant] - backend = "homeassistant" - [frontends.homeassistant.routes.path] - rule = "Path:/homeassistant;ReplacePathRegex: ^/homeassistant(.*) /$1" - - [frontends.influxdb] - backend = "influxdb" - [frontends.influxdb.routes.path] - rule = "Path:/influxdb;ReplacePathRegex: ^/influxdb(.*) /$1" - - [frontends.influxdb-referrer] - backend = "influxdb" - [frontends.influxdb-referrer.routes.referrer] - rule = "HeadersRegexp: Referer, /*.influxdb" - - -[tracing] - [tracing.otlp.http] - endpoint = "http://otel-collector:4318" - insecure = true diff --git a/configurations/traefik/traefik.yml b/configurations/traefik/traefik.yml new file mode 100644 index 0000000..3ad12e2 --- /dev/null +++ b/configurations/traefik/traefik.yml @@ -0,0 +1,25 @@ +## traefik.yml + +# Docker configuration backend +providers: + docker: + defaultRule: "Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)" + +# API and dashboard configuration +api: + insecure: true + +tracing: + capturedRequestHeaders: + - X-Forwarded-Prefix + otlp: + grpc: + endpoint: otel-collector:4317 + insecure: true + +metrics: + otlp: + addEntryPointsLabels: true + grpc: + endpoint: otel-collector:4317 + insecure: true diff --git a/home-server/docker-compose.yml b/home-server/docker-compose.yml index cce7026..060c5f4 100644 --- a/home-server/docker-compose.yml +++ b/home-server/docker-compose.yml @@ -1,18 +1,25 @@ services: - whoami: - restart: unless-stopped - image: traefik/whoami - command: - - --port=2001 traefik: restart: unless-stopped - image: "traefik:1.7.10" + image: traefik:v3.2 + labels: + - traefik.http.routers.dashboard.rule=Host(`traefik.pladijs`) + - traefik.http.services.dashboard.loadbalancer.server.port=8080 volumes: - - ${REPO_DIR}/configurations/traefik/traefik.1.7.10.toml:/etc/traefik/traefik.toml + - ${REPO_DIR}/configurations/traefik/traefik.yml:/etc/traefik/traefik.yml - ${STORAGE_DIR}/certificates:/var/lib/certificates + - /var/run/docker.sock:/var/run/docker.sock ports: - 80:80 - 443:443 + whoami: + restart: unless-stopped + image: traefik/whoami + labels: + - traefik.http.routers.whoami.rule=Host(`whoami.pladijs`) + - traefik.http.services.whoami.loadbalancer.server.port=2001 + command: + - --port=2001 db: image: mariadb:latest restart: unless-stopped @@ -25,8 +32,13 @@ services: - ${STORAGE_DIR}/mariadb:/var/lib/mysql homeassistant: image: "ghcr.io/home-assistant/home-assistant:stable" + labels: + - traefik.http.routers.homeassistant.rule=Host(`homeassistant.pladijs`) + - traefik.http.services.homeassistant.loadbalancer.server.port=8123 volumes: - ${STORAGE_DIR}/homeassistant:/config + - ${STORAGE_DIR}/homeassistant:/config + - ${REPO_DIR}/configurations/home-assistant/configuration-production.yaml:/config/configuration.yaml restart: unless-stopped env_file: - envs/local.env @@ -34,6 +46,9 @@ services: syncthing: image: lscr.io/linuxserver/syncthing:latest container_name: syncthing + labels: + - traefik.http.routers.syncthing.rule=Host(`syncthing.pladijs`) + - traefik.http.services.syncthing.loadbalancer.server.port=8384 environment: - PUID=1000 - PGID=1000 @@ -58,12 +73,16 @@ services: - '--path.rootfs=/rootfs' - '--path.sysfs=/host/sys' - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)' - ports: - - 9100:9100 + labels: + - traefik.http.routers.node-exporter.rule=Host(`node-exporter.pladijs`) + - traefik.http.services.node-exporter.loadbalancer.server.port=9100 prometheus: image: prom/prometheus:latest container_name: prometheus restart: unless-stopped + labels: + - traefik.http.routers.prometheus.rule=Host(`prometheus.pladijs`) + - traefik.http.services.prometheus.loadbalancer.server.port=9090 volumes: - ${REPO_DIR}/configurations/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml - ${STORAGE_DIR}/prometheus:/prometheus @@ -73,8 +92,6 @@ services: - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' - '--web.enable-lifecycle' - ports: - - 9090:9090 grafana: image: grafana/grafana:latest volumes: @@ -82,8 +99,14 @@ services: env_file: - envs/local.env - envs/production.env + labels: + - traefik.http.routers.grafana.rule=Host(`grafana.pladijs`) + - traefik.http.services.grafana.loadbalancer.server.port=3000 influxdb: container_name: influxdb + labels: + - traefik.http.routers.influxdb.rule=Host(`influxdb.pladijs`) + - traefik.http.services.influxdb.loadbalancer.server.port=3000 image: influxdb restart: unless-stopped environment: diff --git a/home-server/envs/production.env b/home-server/envs/production.env index 932c21c..b8cc543 100644 --- a/home-server/envs/production.env +++ b/home-server/envs/production.env @@ -14,5 +14,3 @@ DOCKER_INFLUXDB_INIT_USERNAME=homeassistant DOCKER_INFLUXDB_INIT_PASSWORD=IEOUjgdbI3XjJnmqQOPkHw== DOCKER_INFLUXDB_INIT_ORG=homeassistant DOCKER_INFLUXDB_INIT_BUCKET=homeassistant - -REPO_DIR=/home/pi/repos/homeAutomation