version: '3' services: grafana: #image: grafana/grafana:master build: context: grafana/. container_name: grafana expose: - 3000 volumes: - ./volumes/grafana:/srv/grafana environment: - TZ=Europe/Berlin env_file: - grafana.env labels: org.label-schema.group: "monitoring" networks: - default - monitor-net prometheus: image: prom/prometheus:latest container_name: prometheus expose: - 9090 volumes: - ./volumes/prometheus:/srv/prometheus env_file: - prometheus.env command: [ "--config.file=/srv/prometheus/config/prometheus.yml", "--log.level=debug", #"--storage.tsdb.path=/srv/prometheus/data", "--storage.tsdb.retention=1h", "--web.console.libraries=/srv/prometheus/console_libraries", "--web.console.templates=/srv/prometheus/consoles", "--web.enable-admin-api", "--web.enable-lifecycle" ] labels: org.label-schema.group: "monitoring" networks: - default - monitor-net cadvisor: image: gcr.io/cadvisor/cadvisor:latest container_name: cadvisor volumes: - /:/rootfs:ro - /var/run:/var/run:ro - /sys:/sys:ro - /var/lib/docker:/var/lib/docker:ro - /dev/disk/:/dev/disk:ro - /cgroup:/cgroup:ro #doesn't work on MacOS only for Linux restart: unless-stopped command: ["-logtostderr", "-docker_only", "-v=4"] networks: - monitor-net expose: - 8080 labels: org.label-schema.group: "monitoring" nodeexporter: image: prom/node-exporter:latest container_name: nodeexporter volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - '--path.procfs=/host/proc' - '--path.rootfs=/rootfs' - '--path.sysfs=/host/sys' - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)' restart: unless-stopped expose: - 9100 networks: - monitor-net labels: org.label-schema.group: "monitoring" pushgateway: image: prom/pushgateway:v1.4.1 container_name: pushgateway restart: unless-stopped expose: - 9091 networks: - default - monitor-net labels: org.label-schema.group: "monitoring" influxdb: image: influxdb:1.8 #build: # context: influxdb/. container_name: influxdb restart: unless-stopped volumes: - ./volumes/influxdb/data:/var/lib/influxdb2 - ./volumes/influxdb/config:/etc/influxdb2 - ./influxdb/types.2.db:/usr/share/collectd/types.db # - ./volumes/influxdb:/srv/influxdb2 # - ./influxdb/root/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d # - ./volumes/influxdb/scripts:/docker-entrypoint-initdb.d expose: - 8086 ports: - 25826:25826/udp networks: - default - monitor-net labels: org.label-schema.group: "monitoring" env_file: - influxdb.env collectd-fritzbox: build: context: collectd/. container_name: collectd-fritzbox env_file: - collectd.env labels: org.label-schema.group: "monitoring" graphite: image: graphiteapp/graphite-statsd:latest container_name: graphite expose: - 80 - 2003 - 8125 volumes: - ./volumes/graphite/storage:/opt/graphite/storage environment: - COLLECTD=0 - GRAPHITE_DEBUG=1 - REDIS_TAGDB=1 - BRUBECK=1 - VIRTUAL_HOST=graphite.server.lan - VIRTUAL_PORT=80 networks: default: external: name: ${NETWORK:-webservices} monitor-net: internal: true