通过docker-compose部署es集群。es最新版本:7.5.1
mkdir -p /home/elfk/elasticsearch/configmkdir /home/elfk/elasticsearch/{data1,data2,data3}cd /home/elfkecho 'ELK_VERSION=7.5.1' > .env
tree ..├── docker-compose.yml └── elasticsearch ├── config │ └── elasticsearch.yml ├── data1 ├── data2 ├── data3 └── Dockerfile 5 directories, 3 files
elasticsearch
Dockerfile
vim /home/elfk/elasticsearch/Dockerfile
ARG ELK_VERSION=7.5.1 # https://github.com/elastic/elasticsearch-docker # FROM docker.elastic.co/elasticsearch/elasticsearch:${ELK_VERSION} FROM elasticsearch:${ELK_VERSION} # Add your elasticsearch plugins setup here # Example: RUN elasticsearch-plugin install analysis-icu
elasticsearch.yml
vim /home/elfk/elasticsearch/config/elasticsearch.yml
---## Default Elasticsearch configuration from Elasticsearch base image.## https://github.com/elastic/elasticsearch/blob/master/distribution/docker/src/docker/config/elasticsearch.yml#cluster.name: "es-docker-cluster"network.host: 0.0.0.0## X-Pack settings## see https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-xpack.html#xpack.license.self_generated.type: trial #trial为试用版,一个月期限,可更改为basic版本xpack.security.enabled: truexpack.monitoring.collection.enabled: truehttp.cors.enabled: truehttp.cors.allow-origin: "*"http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
docker-compose.yml
vim /home/elfk/docker-compose.yml
version: '3.7'services: es01: build: context: elasticsearch/ args: ELK_VERSION: $ELK_VERSION container_name: es01 volumes: - type: bind source: ./elasticsearch/config/elasticsearch.yml target: /usr/share/elasticsearch/config/elasticsearch.yml read_only: true - type: volume source: data01 target: /usr/share/elasticsearch/data ports: - 9200:9200 environment: - node.name=es01 - cluster.name=es-docker-cluster - discovery.seed_hosts=es02,es03 - cluster.initial_master_nodes=es01,es02,es03 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 networks: - elastic es02: build: context: elasticsearch/ args: ELK_VERSION: $ELK_VERSION container_name: es02 volumes: - type: bind source: ./elasticsearch/config/elasticsearch.yml target: /usr/share/elasticsearch/config/elasticsearch.yml read_only: true - type: volume source: data02 target: /usr/share/elasticsearch/data environment: - node.name=es02 - cluster.name=es-docker-cluster - discovery.seed_hosts=es01,es03 - cluster.initial_master_nodes=es01,es02,es03 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 networks: - elastic es03: build: context: elasticsearch/ args: ELK_VERSION: $ELK_VERSION container_name: es03 volumes: - type: bind source: ./elasticsearch/config/elasticsearch.yml target: /usr/share/elasticsearch/config/elasticsearch.yml read_only: true - type: volume source: data03 target: /usr/share/elasticsearch/data environment: - node.name=es03 - cluster.name=es-docker-cluster - discovery.seed_hosts=es01,es02 - cluster.initial_master_nodes=es01,es02,es03 - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 networks: - elasticvolumes: data01: driver: local driver_opts: type: none o: bind device: /home/elfk/elasticsearch/data1 data02: driver: local driver_opts: type: none o: bind device: /home/elfk/elasticsearch/data2 data03: driver: local driver_opts: type: none o: bind device: /home/elfk/elasticsearch/data3networks: elastic: driver: bridge
if [ $(grep 'vm.max_map_count' /etc/sysctl.conf |wc -l) -eq 0 ] ; \then echo 'vm.max_map_count=655360' >> /etc/sysctl.conf; \fisysctl -p docker-compose up --build -d
docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5af70e32dbb8 elfk_es01 "/usr/local/bin/dock…" 14 seconds ago Up 6 seconds 0.0.0.0:9200->9200/tcp, 9300/tcp es01 793bab4160b7 elfk_es03 "/usr/local/bin/dock…" 14 seconds ago Up 6 seconds 9200/tcp, 9300/tcp es03 93ffa61c639f elfk_es02 "/usr/local/bin/dock…" 14 seconds ago Up 6 seconds 9200/tcp, 9300/tcp es02netstat -lntp Active Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1303/master tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 936/sshd tcp6 0 0 ::1:25 :::* LISTEN 1303/master tcp6 0 0 :::9200 :::* LISTEN 8724/docker-proxy tcp6 0 0 :::22 :::* LISTEN 936/sshd