栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 数据挖掘与分析

docker安装elasticsearch集群、kibana、设置密码【笔记】

docker安装elasticsearch集群、kibana、设置密码【笔记】

安装elasticsearch
  1. 基于docker-compose.yml安装ElasticSearch集群(单机两个节点)

ElasticSearch是基于java的,而新版本需要支持LTS,所以需要安装jdk9以上版本,这里选择11

docker pull openjdk:11
  1. vm.max_map_count内核设置,需要至少为262144用于生产
sysctl -w vm.max_map_count=262144
  1. 新建目录创建docker-compose.yml文件
    注意,docker-compose.yml中network1是提前创建好的网络名称,具体操作指令如下
docker network create -d bridge --subnet 100.0.0.0/16 --gateway 10.0.0.1 network1

docker-compose.yml文件内容如下

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.14.1@sha256:2dcd2f31e246a8b13995ba24922da2edc3d88e65532ff301d0b92cb1be358af5
    container_name: es01
    environment:
      - node.name=es01
      - discovery.seed_hosts=es02
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
#    volumes:
#      - $HOME/data/docker/es1/data:/usr/share/elasticsearch/data
#      - $HOME/data/docker/es1/config:/usr/share/elasticsearch/config
#      - $HOME/data/docker/es1/logs:/usr/share/elasticsearch/logs
#      - $HOME/data/docker/es1/plugins:/usr/share/elasticsearch/plugins
    ports:
      - 9200:9200
    networks:
      default:
        ipv4_address: 100.0.0.109
  es02:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.14.1@sha256:2dcd2f31e246a8b13995ba24922da2edc3d88e65532ff301d0b92cb1be358af5
    container_name: es02
    environment:
      - node.name=es02
      - discovery.seed_hosts=es01
      - cluster.initial_master_nodes=es01,es02
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
#    volumes:
#      - $HOME/data/docker/es2/data:/usr/share/elasticsearch/data
#      - $HOME/data/docker/es2/config:/usr/share/elasticsearch/config
#      - $HOME/data/docker/es2/logs:/usr/share/elasticsearch/logs
#      - $HOME/data/docker/es2/plugins:/usr/share/elasticsearch/plugins
    networks:
      default:
        ipv4_address: 100.0.0.110

networks:
  default:
    external:
      name: network1
  1. 执行指令docker-compose up -d

  2. 复制配置文件到挂载目录
    docker cp es01:/usr/share/elasticsearch/ $HOME/data/docker/es1/
    docker cp es02:/usr/share/elasticsearch/ $HOME/data/docker/es2/
    如果复制完多了一层elasticsearch路径,将elasticsearch下所有文件移动到同级目录,示例mv elasticsearch/* .

  3. 停止并删除启动的容器
    docker stop es01 es02 && docker rm es01 es02

  4. 修改docker-compose.yml文件(打开注释,也就是挂在目录部分)

  5. 重新执行docker-compose up -d

如果不需要安装x-pach,则忽略后续步骤,此时elasticsearch已经可以正常使用了

  1. 进入容器内部生成证书
docker exec -it es01 bash
/usr/share/elasticsearch/bin/elasticsearch-certutil ca

一路按回车,不建议输入密码,防止出错

执行完成后会生成elastic-stack-ca.p12文件

/usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca /usr/share/elasticsearch/elastic-stack-ca.p12

一路按回车,不建议输入密码,防止出错
会生成新的文件elastic-certificates.p12

退出容器exit
10. 复制生成的证书文件到挂载目录

docker cp es01:/usr/share/elasticsearch/elastic-stack-ca.p12 $HOME/data/docker/es1/config/
docker cp es01:/usr/share/elasticsearch/elastic-certificates.p12 $HOME/data/docker/es1/config/
  1. 拷贝证书到各个节点配置文件目录下
cp $HOME/data/docker/es1/config/*.p12 $HOME/data/docker/es2/config/
  1. 分别给证书文件授权
    chmod 777 elastic-*.p12
  2. 进入到各个节点挂载目录,
cd $HOME/data/docker/es1/config
  1. 修改es1下的elasticsearch.yml文件,主要是为安装x-pach做准备
    添加内容:
# 是否支持跨域,默认为false
http.cors.enabled: true
# 表示这个节点是否可以充当主节点
node.master: true
# 是否充当数据节点
node.data: true
# 这条配置表示开启xpack认证机制,使用密码登录                
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
  1. 分别重启服务
docker restart es01 es02
  1. 分别进入容器中设置密码
docker exec -it es01 bash
cd /usr/share/elasticsearch/bin
  1. 执行
./elasticsearch-setup-passwords interactive

根据提示设置密码
默认账号elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
密码为上述步骤设置的

  1. 重启服务
docker restart es01 es02
安装kibana(和es保持一致)
  • 拉取同版本镜像
docker pull kibana:7.14.1
  • 新建目录/root/data/docker/kibana/config用来保存kibana配置文件
mkdir -p /root/data/docker/kibana/config
  • 新建kibana.yml配置文件,输入内容如下
#Kibana的映射端口
server.port: 5601
#网关地址
server.host: "0.0.0.0"
#Kibana实例对外展示的名称
server.name: "kibana-100.0.0.101"
#Elasticsearch的集群地址,也就是说所有的集群IP
elasticsearch.hosts: ["http://100.0.0.109:9200","http://100.0.0.110:9200"]
#设置页面语言,中文使用zh-CN,英文使用en
i18n.locale: "zh-CN"
xpack.monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.username: "kibana_system"
elasticsearch.password: "上面设置时输入的密码"
  • 启动kibana
docker run -d -p 5601:5601 --network network1 --ip 100.0.0.111 -v $HOME/data/docker/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml  --name kibana kibana:7.14.1
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/278924.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号