一、Docker部署ElasticSearch7.8.1并掛載+配置X-Pack設置帳號密碼+Kibana7.8.1

docker搜索下載ElasticSearch鏡像

  • 1.執行docker命令

    輸入:docker search elasticSearch,結果如下


    在這里插入圖片描述
  • 2.docker官方倉庫 搜索elasticsearch如下

    在這里插入圖片描述

    點擊ElasticSearch進入
    在這里插入圖片描述

    學習使用直接用最新的,邊學習邊探索,挑戰自我,正式環境不建議直接使用最新的版本

  • 拉取鏡像 docker pull elasticsearch:7.8.1 查看本地鏡像 docker images


    在這里插入圖片描述

docker安裝es

  • 安裝命令

    docker run -d --name elasticSearch -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" a529963ec236
    -p 設置端口
    -e ES_JAVA_OPTS配置JVM參數 Xmx 最大堆大小和 -Xms 最小堆大小,防止啟動占用內存過大默認2g,我分配的虛擬機最大內存才2g
    -e "discovery.type=single-node"使用單個節點,避開引導檢查
    5601端口不用開放的圖中操作錯誤,后續檢查文檔發現的。。。。

    在這里插入圖片描述

  • 設置防火墻

    防火墻開放端口 5601后續配置kibana使用
    firewall-cmd --zone=public --add-port=5601/tcp --permanent
    firewall-cmd --zone=public --add-port=9200/tcp --permanent
    firewall-cmd --zone=public --add-port=9300/tcp --permanent
    firewall-cmd --reload 重啟防護墻
    我是虛擬機所以直接關閉防護墻了
    關閉防火墻命令:systemctl stop firewalld.service
    關閉開機自啟動:systemctl disable firewalld.service

  • 創建簡單索引測試一下


    在這里插入圖片描述
  • 查詢索引


    在這里插入圖片描述

    ok沒毛病,可以使用了

  • 但是,但是,但是如果不小心把docker es容器刪除掉會導致數據丟失,嘗試下
    重啟操作如下沒毛病,索引還在


    在這里插入圖片描述

    容器刪除,再次啟動


    在這里插入圖片描述

    在這里插入圖片描述

    酸爽。解決方案 需要將數據文件和配置文件掛在到宿主機上,保證數據安全

docker掛載方式啟動部署es

準備工作

  • 進入home目錄 cd /home
  • 創建多個文件夾 mkdir -p es/config
  • 進入es目錄 cd es
  • 創建數據目錄 mkdir data
  • 創建插件目錄 mkdir plugins
  • 在config下創建es.yml配置文件 cd es
    vi config/es.yml 將下面內容粘貼修改ip地址
  • 受權 設置任何人都有讀、寫、運行三項權限,也可以單獨給100用戶設置,100是docker啟動es的帳號
    chmod 777 /home/es/data
    chmod 777 /home/es/plugins
    chmod 777 /home/es/config/es.yml


    在這里插入圖片描述

    在這里插入圖片描述

es.yml

# 集群名稱
cluster.name: elasticsearch-cluster
# 節點名稱
node.name: es-node1
# 綁定host,0.0.0.0代表當前節點的ip
network.host: 0.0.0.0
# 設置其它節點和該節點交互的ip地址,如果不設置它會自動判斷,值必須是個真實的ip地址(本機ip)
network.publish_host: 192.168.22.130
# 設置對外服務的http端口,默認為9200
http.port: 9200
# 設置節點間交互的tcp端口,默認是9300
transport.tcp.port: 9300
# 是否支持跨域,默認為false
http.cors.enabled: true
# 當設置允許跨域,默認為*,表示支持所有域名,如果我們只是允許某些網站能訪問,那么可以使用正則表達式。比如只允許本地地址。 /https?:\/\/localhost(:[0-9]+)?/
http.cors.allow-origin: "*"
# 表示這個節點是否可以充當主節點
node.master: true
# 是否充當數據節點
node.data: true
# 所有主從節點ip:port
discovery.seed_hosts: ["192.168.22.130:9300"]
# 這個參數決定了在選主過程中需要 有多少個節點通信  預防腦裂
discovery.zen.minimum_master_nodes: 1

docker 命令啟動走你

docker run -d --name es7.8.1 -p 9200:9200 -p 9300:9300 -v /home/es/data:/usr/share/elasticsearch/data -v /home/es/plugins:/usr/share/elasticsearch/plugins -v /home/es/config/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" a529963ec236


在這里插入圖片描述

設置es容器docker啟動時自動啟動
docker container update --restart=always es7.8.1


在這里插入圖片描述

查看docker日志 ,啟動成功了


在這里插入圖片描述

在這里插入圖片描述

配置X-Pack設置es用戶密碼

  • 為什么要配置X-Pack,外網裸奔這么刺激容易被攻擊,親身經歷過測試環境百G數據被攻擊的痛感,索引全部變為空白索引,希望大家以此為戒~嗯,真香!
  • 正式環境建議內網訪問、內網訪問、內網訪問
  • 打開 es.yml文件
    docker exec -it es7.8.1 /bin/bash
    vi config/elasticsearch.yml


    在這里插入圖片描述

    在最后增加如下參數

        # 跨域允許設置的頭信息,默認為X-Requested-With,Content-Type,Content-Lengt
        http.cors.allow-headers: Authorization
        # 這條配置表示開啟xpack認證機制 
        xpack.security.enabled: true
        xpack.security.transport.ssl.enabled: true
    
  • 退出容器,重啟es
    exit
    docker restart es7.8.1
    docker logs es7.8.1 查看日志啟動成功后進入容器中
    在這里插入圖片描述

    docker exec -it es7.8.1 /bin/bash
    cd bin/
    ./elasticsearch-setup-passwords interactive
    在這里插入圖片描述

    設置elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user等密碼,密碼需要記住要不然還得找回
    我虛擬機直接123456,正式環境不要這么簡單,否則那滋味值得你回味~嗯,真香!
    possman與瀏覽器測試完美
    在這里插入圖片描述

    在這里插入圖片描述
  • 不要刪除此類索引.security-7 eq-8u82gQr-osTg1kRkr5g這是存儲密碼的
    當然你也可以嘗試下,經歷過的才值得回味~嗯,真香!
    在這里插入圖片描述

docker安裝kibana

  • docker官方倉庫 搜索kibana選擇與es對應的版本,執行docker命令

    在這里插入圖片描述

    下載好慢~難受
    在這里插入圖片描述

    創建kibana目錄
    mkdir -p /home/kibana/config
    受權
    chmod 777 /home/kibana/config
    創建配置文件
    vi /home/kibana/config/kibana.yml


    在這里插入圖片描述

    kibana.yml

    server.name: kibana
    # kibana的主機地址 0.0.0.0可表示監聽所有IP
    server.host: "0.0.0.0"
    # kibana訪問es的URL
    elasticsearch.hosts: [ "http://192.168.22.130:9200" ]
    elasticsearch.username: 'kibana'
    elasticsearch.password: '123456'
    # 顯示登陸頁面
    xpack.monitoring.ui.container.elasticsearch.enabled: true
    # 語言
    i18n.locale: "zh-CN"
    
    
  • 執行docker命令部署kibana

    docker run -d -it --restart=always --privileged=true --name=kibana -p 5601:5601 -v/home/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml 22bc1dd9a48a


    在這里插入圖片描述

    設置es容器docker啟動時自動啟動
    --restart=always
    設置特權
    --privileged=true

    測試 http://192.168.22.130:5601

    在這里插入圖片描述

    輸入es帳號密碼 登陸 開始你的表演~得勁
    在這里插入圖片描述

    在這里插入圖片描述

    進入控制臺查看下索引,這些是初始索引,密碼等信息,不要刪除,當然也可以刪除尋找刺激~嗯,真香
    在這里插入圖片描述

    創建一個索引

    PUT search_demo_v1
    {
      "aliases": {
          "search_test": {}
      },
      "mappings": {
              "properties": {
                  "content": {
                      "type": "text"
                  },
                  "createTime": {
                      "type": "date"
                  },
                  "id": {
                      "type": "integer"
                  }
          }
      },
      "settings": {
          "index": {
              "number_of_shards": "1",
              "number_of_replicas": "1"
          }
      }
    }
    
    在這里插入圖片描述

如有錯誤的操作或者期待的內容,歡迎提出寶貴意見,一定吸取建議,感謝您查看
下一篇課程《二、ElasticSearch+Kibana配置文件詳解》敬請期待

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。