#### NETWORKS networks: traefik_front_network: external: true back_network_pg: driver: bridge attachable: true #### SERVICES services: ### prometheus prometheus: container_name: prometheus-app hostname: prometheus-app image: prom/prometheus:latest restart: always volumes: - ./prometheus:/etc/prometheus/ - ./prometheus_data:/prometheus - /var/run/docker.sock:/var/run/docker.sock:ro command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/usr/share/prometheus/console_libraries' - '--web.console.templates=/usr/share/prometheus/consoles' # ports: # - 9090:9090 networks: - traefik_front_network - back_network_pg links: - cadvisor:cadvisor - alertmanager:alertmanager depends_on: - cadvisor labels: - "com.centurylinklabs.watchtower.enable=true" - "traefik.enable=true" - "traefik.docker.network=traefik_front_network" # HTTP - "traefik.http.routers.prometheus-http.rule=Host(`prometheus.tips-of-mine.com`)" - "traefik.http.routers.prometheus-http.entrypoints=http" - "traefik.http.routers.prometheus-http.priority=39" # HTTPS - "traefik.http.routers.prometheus-https.rule=Host(`prometheus.tips-of-mine.com`)" - "traefik.http.routers.prometheus-https.entrypoints=https" - "traefik.http.routers.prometheus-https.tls=true" - "traefik.http.routers.prometheus-https.priority=40" - "traefik.http.routers.prometheus.service=prometheus-https-service" # Middleware # Service - "traefik.http.services.prometheus-https-service.loadbalancer.server.port=9090" # - "traefik.http.services.prometheus-https-service.loadbalancer.server.scheme=https" - "traefik.http.services.prometheus-https-service.loadbalancer.healthcheck.hostname=prometheus.tips-of-mine.com" - "traefik.http.services.prometheus-https-service.loadbalancer.healthcheck.method=foobar" - "traefik.http.services.prometheus-https-service.loadbalancer.healthcheck.timeout=10" - "traefik.http.services.prometheus-https-service.loadbalancer.healthcheck.interval=30" ### node-exporter node-exporter: container_name: prometheus-node-exporter hostname: prometheus-node-exporter image: prom/node-exporter:latest volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys' - --collector.filesystem.ignored-mount-points - '^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)' ports: - 9100:9100 networks: - back_network_pg restart: always deploy: mode: global labels: - "com.centurylinklabs.watchtower.enable=true" ### alertmanager alertmanager: container_name: prometheus-alertmanager hostname: prometheus-alertmanager image: prom/alertmanager:latest restart: always ports: - 9093:9093 networks: - back_network_pg volumes: - ./alertmanager/:/etc/alertmanager/ command: - '--config.file=/etc/alertmanager/config.yml' - '--storage.path=/alertmanager' labels: - "com.centurylinklabs.watchtower.enable=true" ### cadvisor cadvisor: container_name: prometheus-cadvisor hostname: prometheus-cadvisor image: gcr.io/cadvisor/cadvisor:latest command: -logtostderr -docker_only volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro ports: - 8080:8080 networks: - back_network_pg restart: always deploy: mode: global labels: - "com.centurylinklabs.watchtower.enable=true" ### grafana grafana: container_name: grafana-app hostname: grafana-app image: grafana/grafana:latest user: '472' restart: always environment: GF_INSTALL_PLUGINS: 'grafana-clock-panel,grafana-simple-json-datasource' volumes: - ./grafana_data:/var/lib/grafana - ./grafana/provisioning/:/etc/grafana/provisioning/ env_file: - ./grafana/config.monitoring # ports: # - 3000:3000 networks: - traefik_front_network - back_network_pg depends_on: - prometheus labels: - "com.centurylinklabs.watchtower.enable=true" - "traefik.enable=true" - "traefik.docker.network=traefik_front_network" # HTTP - "traefik.http.routers.grafana-http.rule=Host(`grafana.tips-of-mine.com`)" - "traefik.http.routers.grafana-http.entrypoints=http" - "traefik.http.routers.grafana-http.priority=41" # HTTPS - "traefik.http.routers.grafana-https.rule=Host(`grafana.tips-of-mine.com`)" - "traefik.http.routers.grafana-https.entrypoints=https" - "traefik.http.routers.grafana-https.tls=true" - "traefik.http.routers.grafana-https.priority=42" - "traefik.http.routers.grafana.service=grafana-https-service" # Middleware # Service - "traefik.http.services.grafana-https-service.loadbalancer.server.port=3000" # - "traefik.http.services.grafana-https-service.loadbalancer.server.scheme=https" - "traefik.http.services.grafana-https-service.loadbalancer.healthcheck.hostname=grafana.tips-of-mine.com" - "traefik.http.services.grafana-https-service.loadbalancer.healthcheck.method=foobar" - "traefik.http.services.grafana-https-service.loadbalancer.healthcheck.timeout=10" - "traefik.http.services.grafana-https-service.loadbalancer.healthcheck.interval=30" #### VOLUMES #volumes: # prometheus_data: {} # grafana_data: {}