Files
production-infra/monitoring/docker-compose.yaml
2024-05-19 09:46:05 +00:00

112 lines
3.4 KiB
YAML

version: "3.9"
networks:
proxy:
external: true
monitoring:
name: monitoring
external: false
volumes:
prometheus:
name: prometheus
grafana:
name: grafana
services:
prometheus:
image: cs-registry.ddnss.de/strato/prometheus
container_name: prometheus
hostname: prometheus
restart: unless-stopped
networks:
- proxy
volumes:
- prometheus:/prometheus
labels:
- "traefik.enable=true"
- "traefik.http.routers.prometheus.rule=Host(`prometheus.steinle-computer.de`)"
- "traefik.http.routers.prometheus.entrypoints=web"
- "traefik.http.routers.prometheus.service=prometheus"
- "traefik.http.routers.prometheus.middlewares=auth"
- "traefik.http.services.prometheus.loadbalancer.server.port=9090"
cadvisor:
image: gcr.io/cadvisor/cadvisor:v0.49.1
container_name: cadvisor
hostname: cadvisor
restart: unless-stopped
networks:
- proxy
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
command:
- "-docker_only=true"
- "-housekeeping_interval=10s"
labels:
- "traefik.enable=true"
- "traefik.http.routers.cadvisor.rule=Host(`cadvisor.steinle-computer.de`)"
- "traefik.http.routers.cadvisor.entrypoints=web"
- "traefik.http.routers.cadvisor.service=cadvisor"
- "traefik.http.routers.cadvisor.middlewares=auth"
- "traefik.http.services.cadvisor.loadbalancer.server.port=8080"
node_exporter:
image: prom/node-exporter
container_name: node_exporter
hostname: node_exporter
command:
- '--path.rootfs=/host'
networks:
- proxy
pid: host
restart: unless-stopped
volumes:
- '/:/host:ro,rslave'
labels:
- "traefik.enable=true"
- "traefik.http.routers.node-exporter.rule=Host(`node-exporter.steinle-computer.de`)"
- "traefik.http.routers.node-exporter.entrypoints=web"
- "traefik.http.routers.node-exporter.service=node-exporter"
- "traefik.http.routers.node-exporter.middlewares=auth"
- "traefik.http.services.node-exporter.loadbalancer.server.port=9100"
grafana:
image: grafana/grafana-oss
container_name: grafana
hostname: grafana
networks:
- proxy
restart: unless-stopped
volumes:
- grafana:/var/lib/grafana
labels:
- "traefik.enable=true"
- "traefik.http.routers.grafana.rule=Host(`grafana.steinle-computer.de`)"
- "traefik.http.routers.grafana.entrypoints=web"
- "traefik.http.routers.grafana.middlewares=grafana"
- "traefik.http.middlewares.grafana.redirectscheme.scheme=https"
- "traefik.http.routers.grafana-secure.rule=Host(`grafana.steinle-computer.de`)"
- "traefik.http.routers.grafana-secure.entrypoints=websecure"
- "traefik.http.routers.grafana-secure.service=grafana-secure"
- "traefik.http.routers.grafana-secure.tls=true"
- "traefik.http.routers.grafana-secure.tls.certresolver=cs"
- "traefik.http.services.grafana-secure.loadbalancer.server.port=3000"
watchtower:
image: containrrr/watchtower
restart: always
networks:
- monitoring
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./watchtower-config.json:/config.json
environment:
TZ: Europe/Berlin
WATCHTOWER_INCLUDE_STOPPED: true
WATCHTOWER_MONITOR_ONLY: true
WATCHTOWER_SCHEDULE: "0 0 2 * * *"