version: '3.8' services: # Telegraf Service telegraf: image: telegraf:latest container_name: telegraf environment: - HOST_PROC=/rootfs/proc - HOST_SYS=/rootfs/sys - HOST_ETC=/rootfs/etc - HOST_MOUNT_PREFIX=/hostfs volumes: - /:/rootfs:ro - /var/run/docker.sock:/var/run/docker.sock - ./telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro - ./mibs:/usr/share/snmp/mibs ports: - "9126:9126" # Port for Prometheus to scrape networks: - monitoring # Prometheus Service prometheus: image: prom/prometheus:latest container_name: prometheus volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' ports: - "9090:9090" networks: - monitoring # Grafana Service grafana: image: grafana/grafana:latest container_name: grafana depends_on: - prometheus ports: - "32110:3000" environment: - GF_SECURITY_ADMIN_PASSWORD=admin - GF_SECURITY_ADMIN_USER=admin - GF_INSTALL_PLUGINS=knightss27-weathermap-panel volumes: - grafana-data:/var/lib/grafana networks: - monitoring networks: monitoring: driver: bridge volumes: grafana-data: