version: '3' volumes: prometheus-config: external: name: prometheus-config prometheus-data: grafana-data: alertmanager-config: external: name: alertmanager-config networks: front-tier: back-tier: services: prometheus: image: prom/prometheus container_name: prometheus volumes: - prometheus-config:/etc/prometheus/ - prometheus-data:/prometheus command: - '-config.file=/etc/prometheus/prometheus.yml' - '-storage.local.path=/prometheus' - '-alertmanager.url=http://alertmanager:9093' ports: - 9090:9090 depends_on: - cadvisor networks: - back-tier deploy: placement: constraints: - node.role == manager - node.hostname == node1 node-exporter: container_name: node-exporter image: prom/node-exporter volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: '-collector.procfs=/host/proc -collector.sysfs=/host/sys -collector.filesystem.ignored-mount-points="^(/rootfs|/host|)/(sys|proc|dev|host|etc)($$|/)" collector.filesystem.ignored-fs-types="^(sys|proc|auto|cgroup|devpts|ns|au|fuse\.lxc|mqueue)(fs|)$$"' expose: - 9100 networks: - back-tier deploy: # alertmanager: # image: prom/alertmanager # ports: # - 9093:9093 # volumes: # - alertmanager-config:/etc/alertmanager/ # networks: # - back-tier # command: # - '-config.file=/etc/alertmanager/config.yml' # - '-storage.path=/alertmanager' cadvisor: image: google/cadvisor volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro networks: - back-tier deploy: mode: global grafana: image: grafana/grafana depends_on: - prometheus ports: - 3000:3000 volumes: - grafana-data:/var/lib/grafana env_file: - config.monitoring networks: - back-tier - front-tier