version: '3.6' services: # store datas in DB influxdb: image: influxdb:1.8-alpine container_name: influxdb restart: unless-stopped env_file: .env # environment: # - INFLUXDB_DB= # - INFLUXDB_USER= # - INFLUXDB_ADMIN_ENABLED= # - INFLUXDB_ADMIN_USER= # - INFLUXDB_ADMIN_PASSWORD= ports: - '8086:8086' volumes: - influxdb_data:/var/lib/influxdb - ./influxdb/imports:/imports - ./influxdb/config:/etc/influxdb/ # Dashboard grafana: image: grafana/grafana:8.0.2 container_name: grafana restart: unless-stopped depends_on: - influxdb env_file: .env links: - influxdb ports: - '3000:3000' volumes: - grafana_data:/var/lib/grafana - ./grafana/provisioning/:/etc/grafana/provisioning/ - ./grafana/dashboards/:/var/lib/grafana/dashboards/ # host metrics telegraf: image: telegraf:1.18-alpine # image: telegraf:latest #(for amd64) container_name: telegraf restart: unless-stopped env_file: .env # for docker hostname: ${HOSTNAME} user: "telegraf:${DOCKER_GID}" volumes: - ./telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro - /var/run/docker.sock:/var/run/docker.sock depends_on: - influxdb links: - influxdb ports: - '8125:8125/udp' # # containers metrics # cadvisor: # image: gcr.io/cadvisor/cadvisor # # + image arm64 # container_name: cadvisor # restart: unless-stopped # volumes: # - /:/rootfs:ro # - /var/run:/var/run:rw # - /sys:/sys:ro # - /var/lib/docker:/var/lib/docker:ro # - /cgroup:/cgroup:ro # ports: # - '8080:8080' # gather metrics and launch alerts prometheus: image: prom/prometheus:v2.17.1 container_name: prometheus restart: unless-stopped volumes: - ./prometheus:/etc/prometheus - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.console.libraries=/etc/prometheus/console_libraries' - '--web.console.templates=/etc/prometheus/consoles' - '--storage.tsdb.retention.time=200h' - '--web.enable-lifecycle' ports: - '9090:9090' # alert manager! alertmanager: image: prom/alertmanager:v0.20.0 container_name: alertmanager restart: unless-stopped volumes: - ./alertmanager:/etc/alertmanager command: - '--config.file=/etc/alertmanager/alertmanager.yml' - '--storage.path=/alertmanager' ports: - '9093:9093' pushgateway: image: prom/pushgateway:v1.2.0 container_name: pushgateway restart: unless-stopped ports: - "9091:9091" volumes: grafana_data: {} influxdb_data: {} prometheus_data: {}