Files
beepi/playbooks/monitoring/docker-compose.yml.j2
T
2026-08-16 14:48:04 +02:00

143 lines
3.9 KiB
Django/Jinja

networks:
monitoring:
external: false
services:
prometheus:
image: docker.io/prom/prometheus
container_name: prometheus
restart: always
ports:
- '127.0.0.1:9090:9090'
volumes:
- prometheus-data:/prometheus
- /opt/beeserver/monitoring/prometheus.yml:/etc/prometheus/prometheus.yml
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.path=/prometheus
- --storage.tsdb.retention.time=90d
- --web.enable-lifecycle
{% if prometheus_admin_api | default(false) %}
- --web.enable-admin-api
{% endif %}
networks:
- monitoring
grafana:
image: docker.io/grafana/grafana
container_name: grafana
restart: always
ports:
- '127.0.0.1:4000:4000'
volumes:
- grafana-storage:/var/lib/grafana
- /opt/beeserver/monitoring/grafana/provisioning:/etc/grafana/provisioning:ro
- /opt/beeserver/monitoring/grafana/dashboards:/var/lib/grafana/dashboards:ro
- /opt/beeserver/monitoring/grafana/dashboards-general:/var/lib/grafana/dashboards-general:ro
environment:
- GF_SECURITY_SECRET_KEY={{ grafana_secret }}
- GF_SERVER_DOMAIN=grafana.secretbee.buzz
- GF_SERVER_ROOT_URL=https://grafana.secretbee.buzz/
- GF_SERVER_HTTP_PORT=4000
- GF_SERVER_PROTOCOL=HTTP
- GF_INSTALL_PLUGINS=yesoreyeram-infinity-datasource
- GF_UNIFIED_ALERTING_ENABLED=true
networks:
- monitoring
loki:
image: docker.io/grafana/loki
container_name: loki
ports:
- '127.0.0.1:3100:3100'
- '{{ wireguard_beepi_ip }}:3100:3100'
- '127.0.0.1:9096:9096'
volumes:
- loki-data:/loki
- /opt/beeserver/monitoring/local-config.yml:/etc/loki/local-config.yaml
command: -config.file=/etc/loki/local-config.yaml
restart: always
networks:
- monitoring
alloy:
image: docker.io/grafana/alloy:v1.17.1
pull_policy: always
container_name: alloy
ports:
- '127.0.0.1:12345:12345'
volumes:
- /opt/beeserver/monitoring/config.alloy:/etc/alloy/config.alloy
- /opt/beeserver/monitoring/database:/opt/database
- /var/log:/var/log:ro
- /run/log/journal:/run/log/journal:ro
- /var/log/journal:/var/log/journal:ro
- /etc/machine-id:/etc/machine-id:ro
- alloy-data:/var/lib/alloy/data
command:
- run
- /etc/alloy/config.alloy
- --storage.path=/var/lib/alloy/data
- --server.http.listen-addr=0.0.0.0:12345
- --stability.level=experimental
networks:
- monitoring
restart: always
podman-exporter:
image: quay.io/navidys/prometheus-podman-exporter:v1.21.2
container_name: podman-exporter
pull_policy: always
restart: always
user: root
ports:
- '127.0.0.1:9882:9882'
volumes:
- /run/podman/podman.sock:/run/podman/podman.sock
environment:
- CONTAINER_HOST=unix:///run/podman/podman.sock
security_opt:
- label=disable
networks:
- monitoring
blackbox:
image: docker.io/prom/blackbox-exporter
container_name: blackbox
restart: always
network_mode: host
volumes:
- /opt/beeserver/monitoring/blackbox.yml:/etc/blackbox_exporter/config.yml
command:
- --config.file=/etc/blackbox_exporter/config.yml
- --web.listen-address=0.0.0.0:9115
extra_hosts:
{% for service in monitored_services %}
{% if service.vhost is defined %}
- '{{ service.vhost }}:127.0.0.1'
{% endif %}
{% endfor %}
topology:
image: docker.io/library/python:3-alpine
container_name: topology
restart: always
ports:
- '127.0.0.1:8088:8088'
volumes:
- /opt/beeserver/monitoring/topology:/app:ro
command:
- python
- /app/topology.py
environment:
- PROMETHEUS_URL=http://prometheus:9090
- LISTEN_PORT=8088
networks:
- monitoring
volumes:
prometheus-data:
grafana-storage:
loki-data:
alloy-data: