version: '3' services: filebeat-elastic: image: docker.elastic.co/beats/filebeat:8.8.0 restart: on-failure volumes: - ./elk/filebeat/filebeat-elastic.yml:/usr/share/filebeat/filebeat.yml:ro depends_on: [ elastic ] filebeat-vlogs: image: docker.elastic.co/beats/filebeat:8.8.0 restart: on-failure volumes: - ./elk/filebeat/filebeat-vlogs.yml:/usr/share/filebeat/filebeat.yml:ro depends_on: [ vlogs ] generator: image: golang:1.20-alpine restart: always working_dir: /go/src/app volumes: - ./generator:/go/src/app - ./source_logs:/go/src/source_logs command: - go - run - main.go - -logsPath=/go/src/source_logs/logs - -outputRateLimitItems=10000 - -outputRateLimitPeriod=1s - -syslog.addr=filebeat-elastic:12345 - -syslog.addr2=filebeat-vlogs:12345 - -logs.randomSuffix=false depends_on: [ filebeat-vlogs, filebeat-elastic ] elastic: image: docker.elastic.co/elasticsearch/elasticsearch:8.8.0 volumes: - ./elk/elastic/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml - elastic:/usr/share/elasticsearch/data environment: ES_JAVA_OPTS: "-Xmx2048m" # Run `make package-victoria-logs` to build victoria-logs image vlogs: image: docker.io/victoriametrics/victoria-logs:heads-logs-0-gcc3fa9cd3 volumes: - vlogs:/vlogs ports: - '9428:9428' command: - -storageDataPath=/vlogs kibana: image: docker.elastic.co/kibana/kibana:8.8.0 volumes: - ./elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml ports: - '5601:5601' depends_on: [ elastic ] beat-exporter-elastic: image: trustpilot/beat-exporter:0.4.0 command: - -beat.uri=http://filebeat-elastic:5066 beat-exporter-vlogs: image: trustpilot/beat-exporter:0.4.0 command: - -beat.uri=http://filebeat-vlogs:5066 cadvisor: image: gcr.io/cadvisor/cadvisor:v0.47.0 restart: unless-stopped privileged: true volumes: - /:/rootfs:ro - /var/run:/var/run:ro - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro - /dev/disk/:/dev/disk:ro node-exporter: image: prom/node-exporter:latest restart: unless-stopped 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)($$|/)' du-exporter: image: ghcr.io/dundee/disk_usage_exporter/disk_usage_exporter-c4084307c537335c2ddb6f4b9b527422:latest restart: unless-stopped user: "root" volumes: - /var/lib/docker/volumes:/var/lib/docker/volumes:ro - ./du/config.yml:/config.yml:ro command: - '--config=/config.yml' vmsingle: image: victoriametrics/victoria-metrics:v1.91.2 ports: - '8428:8428' command: - -storageDataPath=/vmsingle - -promscrape.config=/promscrape.yml - -promscrape.maxScrapeSize=1Gb volumes: - vmsingle:/vmsingle - ./vmsingle/promscrape.yml:/promscrape.yml grafana: image: grafana/grafana:9.2.7 depends_on: [vmsingle] ports: - 3000:3000 volumes: - grafanadata:/var/lib/grafana - ./grafana/provisioning/:/etc/grafana/provisioning/ - ./grafana/dashboards:/var/lib/grafana/dashboards/ restart: always volumes: elastic: vlogs: vmsingle: grafanadata: {}