02 docker-compose 搭建 Elasticsearch集群+Kibana

一 搭建ElasticSearch集群+kibana

1.1 创建集群目录

mkdir -p /home/chenershuai/es/master/config && 
mkdir -p /home/chenershuai/es/master/data && 
mkdir -p /home/chenershuai/es/master/log && 
mkdir -p /home/chenershuai/es/node1/config && 
mkdir -p /home/chenershuai/es/node1/data && 
mkdir -p /home/chenershuai/es/node1/log && 
mkdir -p /home/chenershuai/es/node2/config && 
mkdir -p /home/chenershuai/es/node2/data && 
mkdir -p /home/chenershuai/es/node2/log

1.2 修改文件权限

chmod 777 -R /home/chenershuai/es/master/ && 
chmod 777 -R /home/chenershuai/es/node1 && 
chmod 777 -R /home/chenershuai/es/node2

1.3 分别在master,node1,node2的 config 目录下创建es.yml文件

master目录的 es.yml

cluster.name: es-cluster
node.name: es-master
node.master: true
node.data: true
 
network.host: es-master
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
 
discovery.zen.ping.unicast.hosts: ["es-master:9300", "es-node1:9300", "es-node2:9300"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 5s
 
bootstrap.memory_lock: true
action.destructive_requires_name: true
cluster.initial_master_nodes: ["es-master"]

node1 目录的 es.yml

cluster.name: es-cluster
node.name: es-node1
node.master: false
node.data: true
 
network.host: es-node1
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
 
discovery.zen.ping.unicast.hosts: ["es-master:9300", "es-node1:9300", "es-node2:9300"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 5s
 
bootstrap.memory_lock: true
action.destructive_requires_name: true
cluster.initial_master_nodes: ["es-master"]

node2 目录的 es.yml

cluster.name: es-cluster
node.name: es-node2
node.master: false
node.data: true
 
network.host: es-node2
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
 
discovery.zen.ping.unicast.hosts: ["es-master:9300", "es-node1:9300", "es-node2:9300"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 5s
 
bootstrap.memory_lock: true
action.destructive_requires_name: true
cluster.initial_master_nodes: ["es-master"]

1.4 创建 kibana.yml

server.name: kibana
server.host: "0.0.0.0"
#此处为es的master地址
elasticsearch.hosts: "http://es-master:9200"
xpack.monitoring.ui.container.elasticsearch.enabled: true

1.5 创建 docker-compose.yml文件

version: '3'
networks:
  net-es:
    driver: bridge
services:
  es-master:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
    container_name: es-master
    environment:
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
            - /home/chenershuai/es/master/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
            - /home/chenershuai/es/master/data:/usr/share/elasticsearch/data:rw
            - /home/chenershuai/es/master/log:/usr/share/elasticsearch/log:rw
    ports:
      - 9200:9200
      - 9300:9300
    networks:
      - net-es
  es-node1:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
    container_name: es-node1
    environment:
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
            - /home/chenershuai/es/node1/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
            - /home/chenershuai/es/node1/data:/usr/share/elasticsearch/data:rw
            - /home/chenershuai/es/node1/log:/usr/share/elasticsearch/log:rw
    ports:
      - 9201:9200
      - 9301:9300
    networks:
      - net-es
  es-node2:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
    container_name: es-node2
    environment:
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    volumes:
            - /home/chenershuai/es/node2/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
            - /home/chenershuai/es/node2/data:/usr/share/elasticsearch/data:rw
            - /home/chenershuai/es/node2/log:/usr/share/elasticsearch/log:rw
    ports:
      - 9202:9200
      - 9302:9300
    networks:
      - net-es
  kibana:
    image: docker.elastic.co/kibana/kibana:7.10.0
    container_name: kibana
    restart: always
    environment:
      - TZ="Asia/Shanghai"
    ports:
      - 5601:5601
    volumes:
      - /home/chenershuai/es/kibana.yml:/usr/share/kibana/config/kibana.yml:ro
    depends_on:
      - es-master
    networks:
      - net-es

二 启动集群

2.1 启动 docker-compose

docker-compose -f /home/chenershuai/es/docker-compose.yml

2.2 验证 elasticsearch 集群

curl -X GET “localhost:9200/_cat/nodes?v&pretty”

三 安装中的问题

3.1 ERROR: Elasticsearch did not exit normally

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

ERROR: [1] bootstrap checks failed

[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

ERROR: Elasticsearch did not exit normally - check the logs at /chenxi/software/elasticsearch/logs/elasticsearch.log

解决:

sudo vim /etc/sysctl.conf
在文件末尾追加:vm.max_map_count=655360,保存后执行
sudo sysctl -p

[摘自: Elasticsearch启动常见问题 ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值