services: updater: image: alpine/git command: - sh -c "cd /update && git clone http://gite.maison/stephane.david/elk-lab" volumes: - /var/lib/docker/volumes/elk-lab/update:/update elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:9.0.2 container_name: elasticsearch environment: - node.name=elasticsearch - discovery.type=single-node - xpack.security.enabled=true - ELASTIC_PASSWORD=${ELASTIC_PASSWORD} ports: - "9200:9200" volumes: - /var/lib/docker/volumes/elk-lab/esdata:/usr/share/elasticsearch/data networks: - elk kibana: image: docker.elastic.co/kibana/kibana:9.0.2 container_name: kibana environment: - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 - ELASTICSEARCH_USERNAME=${ELASTIC_USER} - ELASTICSEARCH_PASSWORD=${ELASTIC_PASSWORD} ports: - "5601:5601" depends_on: - elasticsearch networks: - elk logstash: image: docker.elastic.co/logstash/logstash:9.0.2 container_name: logstash environment: - xpack.monitoring.enabled=true - ELASTIC_USERNAME=${ELASTIC_USER} - ELASTIC_PASSWORD=${ELASTIC_PASSWORD} ports: - "5044:5044" volumes: - /var/lib/docker/volumes/elk-lab/update/elk-lab/logstash/pipeline:/usr/share/logstash/pipeline depends_on: - elasticsearch networks: - elk filebeat: image: docker.elastic.co/beats/filebeat:9.0.2 container_name: filebeat user: root environment: - ELASTICSEARCH_USERNAME=${ELASTIC_USER} - ELASTICSEARCH_PASSWORD=${ELASTIC_PASSWORD} volumes: - /var/lib/docker/containers:/var/lib/docker/containers:ro - /var/run/docker.sock:/var/run/docker.sock:ro - /var/lib/docker/volumes/elk-lab/update/elk-lab/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro depends_on: - logstash networks: - elk command: ["--strict.perms=false"] networks: elk: