version: '3.8' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0 container_name: elasticsearch environment: - discovery.type=single-node - ELASTIC_PASSWORD=password - xpack.security.enabled=false - xpack.license.self_generated.type=basic ulimits: memlock: soft: -1 hard: -1 volumes: - elasticsearch-data:/usr/share/elasticsearch/data ports: - "9200:9200" networks: - elk-network kibana: image: docker.elastic.co/kibana/kibana:8.17.0 container_name: kibana ports: - "5601:5601" environment: - ELASTICSEARCH_HOSTS=http://elasticsearch:9200 - ELASTICSEARCH_USERNAME=kibana_system - ELASTICSEARCH_PASSWORD=password networks: - elk-network depends_on: - elasticsearch logstash: image: docker.elastic.co/logstash/logstash:8.17.0 container_name: logstash volumes: - ./logstash/pipeline:/usr/share/logstash/pipeline ports: - "5044:5044" - "5000:5000/tcp" - "5000:5000/udp" - "9600:9600" environment: - ELASTIC_HOSTS=https://elasticsearch:9200 - ELASTIC_USER=elastic - ELASTIC_PASSWORD=password networks: - elk-network depends_on: - elasticsearch networks: elk-network: driver: bridge volumes: elasticsearch-data: driver: local