version: "3" services: prometheus: image: prom/prometheus:v2.1.0 ports: - "9090:9090" networks: - monitoring volumes: - /var/dockerdata/prometheus/data:/prometheus - /var/dockerdata/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml - /var/dockerdata/prometheus/rules:/etc/prometheus-rules command: "--config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus --web.console.libraries=/etc/prometheus/console_libraries --web.console.templates=/etc/prometheus/consoles" labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "prometheus" deploy: mode: replicated replicas: 1 update_config: parallelism: 1 delay: 60s restart_policy: condition: on-failure max_attempts: 5 labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "prometheus" cadvisor: image: google/cadvisor:latest ports: - "8081:8080" networks: - monitoring volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "cadvisor" deploy: mode: global update_config: parallelism: 1 delay: 60s restart_policy: condition: on-failure max_attempts: 5 labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "cadvisor" node-exporter: image: basi/node-exporter:v1.15.0 ports: - "9100:9100" networks: - monitoring environment: - HOST_HOSTNAME=/etc/hostname volumes: - /proc:/host/proc - /sys:/host/sys - /:/rootfs - /etc/hostname:/etc/hostname command: [--path.procfs=/host/proc,--path.sysfs=/host/sys,--collector.filesystem.ignored-mount-points="^/(sys|proc|dev|host|etc)($$|/)",--collector.textfile.directory=/etc/node-exporter/] labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "node-exporter" deploy: mode: global resources: limits: cpus: '0.10' memory: 32M update_config: parallelism: 1 delay: 60s restart_policy: condition: on-failure max_attempts: 5 labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "node-exporter" alertmanager: image: prom/alertmanager ports: - "9093:9093" networks: - monitoring volumes: - /var/dockerdata/alertmanager/alertmanagerconfig.yml:/etc/alertmanager/alertmanagerconfig.yml - /var/dockerdata/alertmanager/data:/etc/alertmanager/data command: [--config.file=/etc/alertmanager/alertmanagerconfig.yml,--storage.path=/etc/alertmanager/data] labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "alertmanager" deploy: mode: replicated replicas: 1 update_config: parallelism: 1 delay: 60s restart_policy: condition: on-failure max_attempts: 5 labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "alertmanager" elastalert: image: ivankrizsan/elastalert:0.1.8 ports: - "3030:3030" networks: - logging environment: - ELASTALERT_CONFIG=elastalertconfig.yaml - CONFIG_DIR=/opt/config - LOG_DIR=/opt/logs - ELASTALERT_CONFIG=/opt/config/elastalertconfig.yaml - ELASTICSEARCH_PORT=9200 - ELASTICSEARCH_HOST=elasticsearch - ELASTALERT_SUPERVISOR_CONF=/opt/config/elastalert_supervisord.conf volumes: - /var/dockerdata/elastalert/config:/opt/config - /var/dockerdata/elastalert/rules:/opt/rules - /var/dockerdata/elastalert/logs:/opt/logs labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "elastalert" deploy: mode: replicated replicas: 1 update_config: parallelism: 1 delay: 60s restart_policy: condition: on-failure max_attempts: 5 labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "elastalert" grafana: image: grafana/grafana ports: - "3000:3000" networks: - monitoring - logging volumes: - /var/dockerdata/grafana:/var/lib/grafana command: -e "GF_SERVER_ROOT_URL=http://grafana.local.com GF_SECURITY_ADMIN_PASSWORD=admin PROMETHEUS_ENDPOINT=http://prometheus:9090 ELASTICSEARCH_ENDPOINT=http://elasticsearch:9200" labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "grafana" deploy: mode: replicated replicas: 1 update_config: parallelism: 1 delay: 60s restart_policy: condition: on-failure max_attempts: 5 labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "grafana" prom2teams: image: robinong79/prom2teams:dev ports: - "8089:8089" ports: - "8089:8089" networks: - monitoring environment: - PROM2TEAMS_HOST=0.0.0.0 - PROM2TEAMS_PORT=8089 - PROM2TEAMS_LOGLEVEL=INFO - PROM2TEAMS_CONNECTOR= labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "prom2teams" deploy: mode: replicated replicas: 1 placement: constraints: [node.platform.OS == linux] update_config: parallelism: 1 delay: 60s restart_policy: condition: on-failure max_attempts: 5 labels: com.docker.stack.namespace: "monitoring" com.docker.service.name: "prom2teams" networks: logging: external: true monitoring: external: true