上一篇文章 中有簡單提到透過 Docker 來安裝 Elasticsearch 的方式,但沒有特別的深入。
當然,官方也有提供詳細的文件關於如何利用 Docker 安裝 Elasticsearch。
官方 Docker 安裝連結看完之後覺得寫得真的非常的詳細,但因為是把目標讀者當作要安裝在 Production 環境,所以比較囉唆一點,今天我們就以一個要在本地練習的角度出發,把 Elasticsearch 以及 Kibana 安裝起來!
啟動 Elasticsearch
上一篇文章 中有提到的兩個指令:
$ docker pull docker.elastic.co/elasticsearch/elasticsearch:8.9.1
$ docker run --name robert-es -p 9200:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:8.9.1
但執行後會發現儘管我們輸入 http://localhost:9200 也沒辦法連接上,這是因為 Elasticsearch 本身預設會啟動 Security Feature,所以一定要走 HTTPS 的協議才可以。
好的,接著我們嘗試連接 https://localhost:9200 ,會看到下面的畫面,需要進行最基本的 HTTP Basic Authentication。
帳號密碼從哪裡來呢?我們回到終端機看一下 Elasticsearch 的 Log,會看到如下圖的畫面:
圖片中的 CA 就是讓你驗證 HTTPS 用的
在 ℹ️ 的指示中有提到:
Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
J6Hi+xVjFs2ocZLbBs_m
所以回到網頁中,User 就是輸入 elastic,而密碼則是 Elasticsearch 在啟動時給予你的,以我的例子就是:J6Hi+xVjFs2ocZLbBs_m,輸入後就可以看到成功的畫面:
但我們就是來教學不要走正規方式的,畢竟我們的主要目的是練習,而不是學習怎麼部署 Elasticsearch;但要記得在 Production 環境,HTTPS 以及身份驗證是最基本的安全防護。
如果要走正規的 HTTPS 以及如何部署,請參考官方文件,寫得非常詳細。
這邊先建立一個練習用的 Docker Network,方便等等和 Kibana 連線:
$ docker network create elastic
繞過 HTTPS 的啟動方式,記得加上 —net 的參數:
$ docker run --name robert-es --net elastic -p 9200:9200 -it -m 1GB -e "xpack.security.enabled=false" -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:8.9.1
其實就是透過環境變數的方式來設定 Elasticsearch,不要啟動 security feature 以及只啟動單個節點。
接著打開 http://localhost:9200 就能夠輕鬆地訪問 Elasticsearch 啦!
啟動 Kibana
到 Kibana 的 DockerHub 就能夠看到基本的指示,記得加上 —net 的參數:
$ docker run -d --name robert-kibana --net elastic -p 5601:5601 kibana:8.9.1
接著打開 http://localhost:5601 會看到下方的畫面:
這時候如果是走 HTTPS 的話,就可以輸入啟動 Elasticsearch 給予的 Enrollment token 來進行驗證,但我們關閉了 security feature,要點擊下方的 Configure manually 來手動設定。
接著輸入:
至於為什麼是 robert-es 呢?這和 Docker 虛擬網路的 DNS 有關係,但這邊不重要,只要照著輸入就可以了。
接著會看到下面的畫面:
如何取得驗證碼呢?我們需要進入 Kibana 的容器內,並執行 kibana-verification-code 這個程式就能得到:
$ docker container exec -it robert-kibana bash
kibana@a0f7e06d86ac:~$ bin/kibana-verification-code
Your verification code is: 158 576
接著等待 Kibana 的驗證過程…
通過之後就會看到 Kibana 的介面,這就代表我們成功地在本地利用 Docker 建立 Elasticsearch 以及 Kibana 的服務了。
結語
恭喜你成功地安裝了 Elasticsearch,下一篇文章將會介紹 Elasticsearch 在啟動時做了些什麼呢?