version: "3" services: es-master: container_name: es-master hostname: es-master image: elasticsearch:7.1.1 restart: always ports: - 9200:9200 - 9300:9300 volumes: - ./elasticsearch/master/conf/es-master.yml:/usr/share/elasticsearch/config/elasticsearch.yml - ./elasticsearch/master/data:/usr/share/elasticsearch/data - ./elasticsearch/master/logs:/usr/share/elasticsearch/logs environment: - "ES_JAVA_OPTS=-Xms512m -Xmx512m" es-slave1: container_name: es-slave1 image: elasticsearch:7.1.1 restart: always ports: - 9201:9200 - 9301:9300 volumes: - ./elasticsearch/slave1/conf/es-slave1.yml:/usr/share/elasticsearch/config/elasticsearch.yml - ./elasticsearch/slave1/data:/usr/share/elasticsearch/data - ./elasticsearch/slave1/logs:/usr/share/elasticsearch/logs environment: - "ES_JAVA_OPTS=-Xms512m -Xmx512m" es-slave2: container_name: es-slave2 image: elasticsearch:7.1.1 restart: always ports: - 9202:9200 - 9302:9300 volumes: - ./elasticsearch/slave2/conf/es-slave2.yml:/usr/share/elasticsearch/config/elasticsearch.yml - ./elasticsearch/slave2/data:/usr/share/elasticsearch/data - ./elasticsearch/slave2/logs:/usr/share/elasticsearch/logs environment: - "ES_JAVA_OPTS=-Xms512m -Xmx512m" es-head: container_name: es-head image: mobz/elasticsearch-head:5 restart: always ports: - 9100:9100 depends_on: - es-master - es-slave1 - es-slave2 kibana: container_name: kibana hostname: kibana image: kibana:7.1.1 restart: always ports: - 5601:5601 volumes: - ./kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml environment: - elasticsearch.hosts=http://es-master:9200 depends_on: - es-master - es-slave1 - es-slave2 filebeat: # 容器名称 container_name: filebeat # 主机名称 hostname: filebeat # 镜像 image: docker.elastic.co/beats/filebeat:7.1.1 # 重启机制 restart: always # 持久化挂载 volumes: - ./filebeat/conf/filebeat.yml:/usr/share/filebeat/filebeat.yml # 映射到容器中[作为数据源] - ./logs:/home/project/elk/logs - ./filebeat/logs:/usr/share/filebeat/logs - ./filebeat/data:/usr/share/filebeat/data # 将指定容器连接到当前连接,可以设置别名,避免ip方式导致的容器重启动态改变的无法连接情况 links: - logstash ports: - 9000:9000 # 依赖服务[可无] depends_on: - es-master - es-slave1 - es-slave2 logstash: container_name: logstash hostname: logstash image: logstash:7.1.1 command: logstash -f ./conf/logstash-filebeat.conf restart: always volumes: # 映射到容器中 - ./logstash/conf/logstash-filebeat.conf:/usr/share/logstash/conf/logstash-filebeat.conf - ./logstash/conf/logstash.yml:/usr/share/logstash/config/logstash.yml ports: - 5044:5044 depends_on: - es-master - es-slave1 - es-slave2