2023-01-30
ELK
0

目录

<center>docker部署elasticsearch</center>
创建文件夹

docker部署elasticsearch

前置操作 开放端口,例如:29200

创建文件夹

  • 创建es相关文件夹,例如:/data/elasticsearch

    shell
    mkdir -p /data/elasticsearch

创建docker容器运行脚本

  1. 创建文件、添加脚本并授权可执行权限

    • 创建elasticsearch.sh文件
      shell
      vim /data/elasticsearch/elasticsearch.sh # 切换到英文输入法,按i键或insert键进入编辑模式
    • 添加脚本,内容如下
      shell
      #!/bin/bash # 停止旧容器运行 docker stop elasticsearch # 删除旧容器 docker rm elasticsearch docker run -itd \ --privileged=true \ -p 29200:9200 \ -e ES_JAVA_OPTS="-Xms256m -Xmx256m" \ -e "TAKE_FILE_OWNERSHIP=true" \ -e "discovery.type=single-node" \ -v /data/elasticsearch/data:/usr/share/elasticsearch/data \ -v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \ -v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ --name elasticsearch \ --restart=always \ elasticsearch:7.17.5 # 将容器配置文件拷贝到宿主机 docker cp elasticsearch:/usr/share/elasticsearch/config /data/elasticsearch exit 0
    • 保存文件内容,并退出编辑模式:切换到英文输入法,按ESC键退出编辑模式,在非编辑模式打出:wq,最后按Enter键退出
    • 对文件进行可执行权限授权
      shell
      chmod -R 770 /data/elasticsearch/elasticsearch.sh
  2. 执行脚本

    shell
    /data/elasticsearch/elasticsearch.sh

    • -e ES_JAVA_OPTS="-Xms256m -Xmx256m"表示设置运行es的jvm初始内存大小为256M,最大运行内存为512M
    • -e "TAKE_FILE_OWNERSHIP=true"表示访问组1000和访问用户1000,相当于:chown -R 1000:1000 文件夹或文件
    • -e "discovery.type=single-node"表示单节点部署
    • 此时没有配置文件相关映射
  3. 进入文件夹/data/elasticsearch/config修改文件elasticsearch.yml,并添加以下内容

    yaml
    # 新增配置 http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization xpack.security.enabled: true xpack.security.transport.ssl.enabled: true
  4. 再次修改elasticsearch.sh文件,内容如下,并执行文件

    shell
    #!/bin/bash # 停止旧容器运行 docker stop elasticsearch # 删除旧容器 docker rm elasticsearch docker run -itd \ --privileged=true \ -p 29200:9200 \ -e ES_JAVA_OPTS="-Xms256m -Xmx256m" \ -e "TAKE_FILE_OWNERSHIP=true" \ -e "discovery.type=single-node" \ -v /data/elasticsearch/config:/usr/share/elasticsearch/config \ -v /data/elasticsearch/data:/usr/share/elasticsearch/data \ -v /data/elasticsearch/logs:/usr/share/elasticsearch/logs \ -v /data/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ --name elasticsearch \ --restart=always \ elasticsearch:7.17.5 exit 0
  5. 进入容器

    shell
    docker exec -it elasticsearch bash
  6. 在容器内部执行以下命令,为elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user六个账号设置密码

    shell
    ./bin/elasticsearch-setup-passwords interactive

    :执行完命令根据提示为每个账号输入并再次确认密码

  7. 在容器内部执行下面命令退出容器

    shell
    exit