services: prometheus: image: prom/prometheus:latest container_name: prometheus ports: - 9090:9090 command: - --config.file=/etc/prometheus/prometheus.yml - --web.external-url=https://monitor.potato.com volumes: - ./config/:/etc/prometheus/ depends_on: - cadvisor restart: unless-stopped networks: - network - internal labels: - "traefik.enable=true" - "traefik.docker.network=prometheus_network" - "traefik.http.routers.prometheus.entrypoints=web_secure" - "traefik.http.routers.prometheus.rule=Host(`monitor.potato.com`)" - "traefik.http.routers.prometheus.tls.certresolver=certresolver" - "traefik.http.routers.prometheus.middlewares=authelia@docker" node-exporter: image: prom/node-exporter container_name: node-exporter restart: unless-stopped volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro - ./data/:/etc/node-exporter/textfile_collector/ command: - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys' - '--path.rootfs=/rootfs' - '--collector.textfile.directory=/etc/node-exporter/textfile_collector' networks: - internal alertmanager: container_name: alertmanager privileged: true image: prom/alertmanager:latest command: - --cluster.advertise-address={{ ansible_default_ipv4.address }}:9093 - --config.file=/etc/prometheus/alertmanager.yml - --web.external-url=https://monitor.potato.com volumes: - ./config/alertmanager.yml:/etc/prometheus/alertmanager.yml restart: unless-stopped networks: - internal cadvisor: image: gcr.io/cadvisor/cadvisor container_name: cadvisor volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro - /sys/fs/cgroup:/sys/fs/cgroup:ro command: ["--port=8080"] restart: unless-stopped networks: - internal redis: image: redis:alpine container_name: redis restart: unless-stopped networks: - internal grafana: container_name: grafana image: grafana/grafana depends_on: - prometheus volumes: - './grafana/data:/var/lib/grafana' - './grafana/provisioning/:/etc/grafana/provisioning/' - './grafana/config/:/etc/grafana/' restart: unless-stopped user: '1000' networks: - traefik_network - network - internal labels: - "traefik.enable=true" - "traefik.docker.network=prometheus_network" - "traefik.http.routers.grafana.entrypoints=web_secure" - "traefik.http.services.grafana.loadbalancer.server.port=3000" - "traefik.http.routers.grafana.rule=Host(`flight.potato.com`)" - "traefik.http.routers.grafana.tls.certresolver=certresolver" - "traefik.http.routers.grafana.middlewares=authelia@docker" networks: network: driver: bridge internal: driver: bridge traefik_network: external: true