Cerebro是一款專為Elasticsearch設計的開源管理工具,體積小、啟動快,能夠直觀查看叢集健康狀態、管理索引資料和執行搜尋查詢,適合開發和營運人員快速檢查與管理ES叢集。
準備工作
擷取叢集串連地址
您可以通過VPC私網或公網地址串連到ES叢集。
-
VPC私網串連地址:通過VPC私網地址訪問ES叢集,延遲低,穩定性高。該地址在叢集建立成功後預設開啟。
-
公網串連地址:通過公網訪問ES叢集,需手動開啟。
如何開啟公網訪問:
-
登入ES控制台,進入執行個體基本資料頁面。
-
單擊左側導覽列 配置與管理>安全配置,開啟公網訪問。待叢集狀態由生效中變更為生效時,表示公網訪問已成功開啟。
公網訪問開啟後,公網地址格式為
es-cn-<執行個體ID>.public.elasticsearch.aliyuncs.com,公網訪問白名單預設為空白,需手動設定。重要公網地址會降低ES叢集的安全性,如果使用公網地址,請務必配置IP白名單,並在使用完畢後及時關閉公網訪問。
設定IP白名單
為保障叢集安全,您需要將待訪問裝置的IP地址加入ES叢集的VPC私網或者公網白名單,該IP地址所屬的裝置才能訪問ES叢集。
-
擷取待訪問裝置IP。
您可以參照以下情境,擷取待訪問裝置的IP地址。
情境
需擷取的IP地址
擷取方式
在本地裝置中串連ES叢集
本地裝置公網IP。
如果本地裝置位於區域網路(如家庭或公司網路)內,需將該區域網路的公網出口IP地址添加到ES叢集的公網白名單中。
通過
curl ipinfo.io/ip查詢本地裝置公網IP。在不同VPC的ECS執行個體中串連ES叢集
ECS執行個體的公網IP
登入ECS控制台,在執行個體列表查看。
在相同VPC的ECS執行個體中串連ES叢集
ECS執行個體的私網IP
登入ECS控制台,在執行個體列表查看。
-
將擷取到的IP地址添加到白名單分組中。
-
登入ES控制台,進入執行個體基本資料,單擊左側導覽列 配置與管理>安全配置,單擊修改在彈窗中設定VPC私網或者公網訪問白名單。
-
單擊default分組右側的配置 ,在彈出的對話方塊中添加VPC私網或者公網白名單。單個叢集最多可配置300個IP或者IP網段,多個IP或者IP網段之間用英文逗號隔開,且逗號前後不能有空格。
-
也可單擊新增IP白名单分组,自訂分組名稱。
-
白名單分組僅用於IP地址管理,不影響存取權限。所有分組內的IP地址許可權相同。
配置類別
格式和樣本值
重要注意事項
IPv4地址格式
-
單個IP:
192.168.0.1 -
網段:
192.168.0.0/24
-
禁止訪問:
127.0.0.1 -
允許所有訪問:
0.0.0.0/0重要存在高危風險,強烈建議不要配置
0.0.0.0/0。部分叢集版本(如7.16/8.5)和地區不支援
0.0.0.0/0,請以控制台介面或者報錯提示為準。
IPv6地址格式
(僅v2部署架構且所屬地區為杭州的叢集支援)
-
單個IP:
2401:XXXX:1000:24::5 -
網段:
2401:XXXX:1000::/48
-
禁止所有訪問:
::1 -
允許所有訪問
::/0重要存在高危風險,強烈建議不要配置
::/0。部分叢集版本不支援
::/0,請以控制台介面或者配置提示資訊為準。
-
-
配置完成後,單擊確認。
-
串連叢集
1. 安裝並配置Cerebro
-
以Linux系統為例串連ECS執行個體。
-
Cerebro運行在Java虛擬機器上,需要在ECS執行個體中安裝JDK,版本為1.8及以上,詳細步驟請參見手動部署OpenJDK。
-
下載並解壓Cerebro安裝包。
# 下載Cerebro v0.9.0 wget https://github.com/lmenezes/cerebro/releases/download/v0.9.0/cerebro-0.9.0.tgz # 解壓 tar -zxvf cerebro-0.9.0.tgz -
修改Cerebro設定檔,關聯待訪問的ES執行個體。
-
開啟設定檔application.conf。
vim cerebro-0.9.0/conf/application.conf -
按照以下說明配置hosts並儲存檔案。
# A list of known hosts hosts = [ #{ # host = "http://localhost:9200" # name = "Localhost cluster" # headers-whitelist = [ "x-proxy-user", "x-proxy-roles", "X-Forwarded-For" ] #} # Example of host with authentication { host = "http://es-cn-xxx.elasticsearch.aliyuncs.com:9200" name = "es-cn-xxx" auth = { username = "elastic" password = "xxx" } } ]說明支援關聯多個執行個體,多個執行個體之間用英文逗號(,)分隔。
參數
說明
host
準備工作中已擷取的叢集串連地址:
-
VPC私網串連地址:格式為
http://<ES執行個體的私網地址>:9200。 -
公網串連地址:格式為
http://<ES執行個體的公網地址>:9200。
ES叢集預設開啟HTTP協議,建議您開啟並使用HTTPS協議,確保資料轉送過程中的機密性、安全性和完整性。登入ES控制台進入執行個體基本資料,單擊左側導覽列 配置與管理>安全配置,開啟HTTPS協議。
重要啟用HTTPS協議前,請務必更新應用程式代碼以支援HTTPS串連方式。否則,現有使用HTTP協議的代碼將無法建立安全連線,導致串連失敗。
name
ES叢集ID,登入ES控制台在ES執行個體列表頁面擷取ID。
username
預設訪問使用者名稱為elastic,該使用者具有叢集最高許可權(可理解為管理員賬戶)。
出於安全考慮,不建議在生產環境中直接使用此預設管理員賬戶,您可以通過Elasticsearch X-Pack的RBAC(Role-based Access Control)機制,自訂角色並分配許可權,然後將角色指派給使用者,實現許可權精細化管控,具體操作請參見通過Elasticsearch X-Pack角色管理實現使用者權限管控。
password
UserName對應的密碼。
-
-
2. 啟動Cerebro服務
您可以根據需要選擇在前台或者後台來啟動Cerebro。
-
前台啟動(用於調試)
cd cerebro-0.9.0 bin/cerebro啟動成功後,返回如下結果。
[root@VM01 cerebro-0.9.0]# bin/cerebro [info] play.api.Play - Application started (Prod) (no global state) [info] p.c.s.AkkaHttpServer - Listening for HTTP on /0.0.0.0:9000 -
後台啟動(推薦生產環境使用)
cd cerebro-0.9.0 nohup bin/cerebro > cerebro.log 2>&1 &您可以通過
tail -f cerebro.log查看日誌,通過pkill -f cerebro停止服務。
3. 訪問Cerebro並串連ES叢集
-
配置ECS執行個體的安全性群組,在入方向中,添加待訪問裝置的IP地址並開放9000連接埠,具體操作步驟請參見添加安全性群組規則。
-
在瀏覽器中輸入http://<ECS的外網IP地址>:9000。
-
在Cerebro登入頁面,您將看到設定檔中已添加的ES叢集,單擊即可串連。
-
串連成功後,您可以在Cerebro控制台查看叢集狀態、管理索引等,更多Cerebro的使用方法請參見Cerebro。
串連成功後,Cerebro 控制台顯示叢集狀態為green,叢集概覽包含節點數(2 nodes)、索引數(22 indices)、分區數(44 shards)、文檔數及儲存大小等資訊。下方可查看各索引的分區分布情況及各節點的 heap、disk、cpu、load 指標。
常見問題與故障排查
問題 1:無法啟動 Cerebro 服務
-
可能原因:JDK未安裝或版本過低、連接埠被佔用、檔案許可權不足。
-
解決方案:檢查
java -version,確保版本不低於1.8;在application.conf中修改http.port以更換連接埠;為bin/cerebro指令碼添加執行許可權chmod +x bin/cerebro。
問題 2:無法串連到 ES 叢集
-
可能原因:IP白名單未配置、ES地址或連接埠錯誤、ECS安全性群組未允許存取連接埠、使用者名稱或密碼錯誤。
-
解決方案:檢查阿里雲ES控制台的IP白名單配置;確認
application.conf中的host地址正確;檢查ECS安全性群組是否允許存取了ES連接埠(9200)和Cerebro連接埠(9000);確認使用者名稱和密碼無誤。