version: "3.9" networks: monitoring_net: external: true volumes: grafana-data: loki-data: services: cadvisor: image: gcr.io/cadvisor/cadvisor:latest ports: - "8080:8080" volumes: - /:/rootfs:ro - /var/run:/var/run:ro - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro networks: - monitoring_net deploy: mode: global privileged: true # biar cadvisor bisa akses semua metric container prometheus: image: prom/prometheus:latest ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro networks: - monitoring_net deploy: replicas: 1 grafana: image: grafana/grafana:latest ports: - "3000:3000" volumes: - grafana-data:/var/lib/grafana - ./grafana/provisioning:/etc/grafana/provisioning environment: - GF_SECURITY_ADMIN_USER=syifa - GF_SECURITY_ADMIN_PASSWORD=secret123 depends_on: - prometheus - loki networks: - monitoring_net deploy: replicas: 1 loki: image: grafana/loki:2.8.2 ports: - "3100:3100" volumes: - ./loki-config.yml:/etc/loki/local-config.yml:ro - loki-data:/loki command: -config.file=/etc/loki/local-config.yml networks: - monitoring_net deploy: replicas: 1 promtail: image: grafana/promtail:2.8.2 volumes: - /var/log:/var/log - /var/lib/docker/containers:/var/lib/docker/containers:ro - ./promtail-config.yml:/etc/promtail/config.yml:ro command: -config.file=/etc/promtail/config.yml depends_on: - loki networks: - monitoring_net deploy: replicas: 1