• elasticsearch配置密码、docker数据迁移、IP白名单


    ES配置密码、版本升级、数据迁移



    前言

    1. es配置密码
    2. es的版本切换和数据迁移
    3. 本文环境说明:基于 docker

    在6.8之前免费版本并不包含安全认证功能,6.8及以后免费开放


    一、docker ES 数据迁移

    1.1、将docker的es容器数据拷贝出来

    如图

    #准备工作 先看硬盘空间
    df -h
    
    #1、查看运行的容器
    docker ps
    
    #2、 进入容器。 elasticsearch6.8容器名称
    docker exec -it elasticsearch6.8 /bin/bash
    
    #3、切换到data目录
    cd data
    
    #4、查看data的路径
    pwd
    
    #5、看文件夹大小。  du -sh 文件夹
    du -sh data
    
    #6、退出容器
    exit
    
    #7、从docker 拷贝到外面。 说明: docker cp -a 容器名称:要拷贝的文件夹  目标文件夹 
    docker cp -a elasticsearch6.8:/usr/share/elasticsearch/data/nodes /home/mytemp/data
    
    #8、外面的文件拷贝进docker 说明:docker cp -a 要拷贝的文件夹  容器名称:要拷贝的位置
    docker cp -a /home/mytemp/data/nodes elasticsearch6.8:/usr/share/elasticsearch/data
    
    

    二、配置密码

    版本需要在6.8 以后才能免费使用

    1.1、ES 6.8.8版本配置密码

    #准备工作 先看内存
    free -h
    
    
    # 1、拉取镜像
    sudo docker pull elasticsearch:6.8.8
    
    #2、创建文件夹,用于数据挂载
    sudo mkdir -p /data/mydata/elasticsearch6/config
    sudo mkdir -p /data/mydata/elasticsearch6/data
    #权限
    chmod -R 777 /data/mydata/elasticsearch6
    
    # 3、创建运行容器。 -e指定额外参数 -v 指定数据挂载 -d 指定镜像和版本
    docker run --name elasticsearch6.8 -p 9200:9200 -p 9300:9300 \
    -e "discovery.type=single-node" \-e ES_JAVA_OPTS="-Xms128m -Xmx2048m" \
    -v /data/mydata/elasticsearch6/config/elasticsearch.yml:/usr/share/elasticsearch6/config/elasticsearch.yml \
    -v /data/mydata/elasticsearch6/data:/usr/share/elasticsearch6/data \
    -v /data/mydata/elasticsearch6/plugins:/usr/share/elasticsearch6/plugins \
    -d elasticsearch:6.8.8
    
    
    # 4、查看运行的容器
    docker ps
    
    # 5、进入容器
    docker exec -it elasticsearch6.8 /bin/bash
    
    #6、开启密码模式 编码配置文件
    vi /config/elasticsearch.yml
    #加入如下内容
    xpack.security.enabled: true
    
    #7、退出容器
    exit
    
    #8、重启
    docker restart elasticsearch6.8
    
    #9、查看是否运行
    docker ps
    
    #10、进入容器
    docker exec -it elasticsearch6.8 /bin/bash
    
    #11、进入bin目录
    cd /bin
    
    #12、生成密码 运行如下命令。推荐手动模式
    01、自动生成密码 elasticsearch-setup-passwords auto
    02、手动设置密码 elasticsearch-setup-passwords interactive    
    
    #13、退出容器
    exit
    
    #14、重启
    docker restart elasticsearch6.8
    
    #15、浏览器访问。 http://用户:密码@域名:端口
    http://elastic:123456@127.0.0.1:9200
    

    三、ES 配置ip白名单

    es自带的需要收费,不推荐使用

    方案:
    使用nignx 转发到 es服务

    1.1、使用xpack提供的HTTP Filter功能实现IP白名单

    elasticsearch.yml配置。不推荐-原因收费

    xpack.security.http.filter.enabled: true
    xpack.security.http.filter.allow: "172.31.6.21"
    xpack.security.http.filter.deny: "172.31.6.0/24"
    xpack.security.http.filter.allow: [ "172.31.6.20", "172.31.6.21", "172.31.6.22"]
    xpack.security.http.filter.deny: _all
    xpack.security.transport.filter.enabled: true
    xpack.security.transport.filter.allow: [ "172.31.6.20", "172.31.6.21", "172.31.6.22"]
    xpack.security.transport.filter.deny: _all
    

    1.2、nignx 实现(推荐)

    示例代码:

    worker_processes  1;
     
    events {
        worker_connections  1024;
    }
     
    http {
        include       mime.types;
        default_type  application/octet-stream;
     
        sendfile        on;
     
        keepalive_timeout  65;
     
        server {
            listen       19200;
            server_name  localhost;
            # 白名单及代理转发
            allow 172.31.6.22;      #白名单
            allow 192.168.0.0/24;   #白名单
            allow 127.0.0.1;        #白名单
            deny all;               #拒绝其他访问
     
            location / {
                # Elasticsearch服务代理
                # 这边有密码的话需要带上
                proxy_pass http://172.31.6.21:9200;
            }
     
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
        server {
            listen       15601;
            server_name  localhost;
            # 白名单及代理转发
            allow 172.31.6.22;      #白名单
            allow 192.168.0.0/24;   #白名单
            allow 127.0.0.1;        #白名单
            deny all;               #拒绝其他访问
     
            location / {
                # Kibana服务代理
                proxy_pass http://172.31.6.21:5601;
            }
     
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
     
    }
    

    注明:docker镜像迁移另外写。看系类文章

  • 相关阅读:
    【改进哈里鹰算法(NCHHO)】使用混沌和非线性控制参数来提高哈里鹰算法的优化性能,解决车联网相关的路由问题(Matlab代码实现)
    力扣 -- 376. 摆动序列
    docker安装open web ui
    PyTorch - Diffusion Model 公式推导 (1)
    LeetCode-37-解数独
    猿创征文 |【游戏开发实战——2D项目1 - Ruby‘s Adventure】控制游戏角色移动(1-2)
    LLMs 蒸馏, 量化精度, 剪枝 模型优化以用于部署 Model optimizations for deployment
    Python布尔值属于数字类型吗?
    【Leetcode合集】2342. 数位和相等数对的最大和
    Git | github工作流维护代码项目
  • 原文地址:https://blog.csdn.net/qq_44413835/article/details/127093849