上次在《INFINI Easysearch 嚐鮮 Hands on》中,我們部署了兩個節點的 Easysearch,並設定了 Console 進行叢集監控。今天,我們將介紹 INFINI Console 的使用。
Dashboard
INFINI Console 是一個功能強大的資料管理和分析平臺,其儀表盤頁面提供了直觀簡潔的介面,使使用者能夠快速瞭解系統狀態並進行管理操作。本文將詳細介紹儀表盤頁面的各項功能。
儀表盤頂部顯示系統的實時告警、通知和待辦事項的數量,當前資料顯示:
- 告警:0 條
- 通知:0 條
- 待辦:0 條
在儀表盤的中心區域,使用者可以看到幾項關鍵的系統概覽資訊:
- 叢集數量:當前有 3 個叢集正在執行。
- 節點數量:系統中有 16 個節點。
- 主機數量:共有 3 臺主機。
- 已用儲存:系統已使用儲存空間為 2.0GB。
儀表盤頁面還提供了幾個常用操作的快速入口,方便使用者迅速訪問常用功能:
- 叢集註冊:使用者可以透過此入口快速註冊新的叢集。
- 資料探索:使用者可以訪問資料探索工具,對系統中的資料進行分析和查詢。
- 告警管理:提供對告警資訊的管理功能,使用者可以檢視和處理告警。
- 安全管理:安全管理入口幫助使用者維護系統的安全設定和策略。
儀表盤右側顯示了叢集的動態資訊,包括最近的操作日誌。例如:
- 2024-07-03 22:43:43,index medcl 在 cluster infiniLabs 中的狀態更新。
- 2024-07-03 22:06:43,index medcl 在 cluster infiniLabs 中被建立。
叢集管理頁面
叢集管理頁面主要分為幾個部分:頂部的功能選項卡、中部的叢集列表、以及右側的篩選和排序選項。
頁面頂部的功能選項卡包括以下幾項:
- Clusters (叢集):顯示當前系統中的所有叢集。
- Nodes (節點):顯示叢集中的節點詳細資訊。
- Indices (索引):顯示叢集中的索引資訊。
- Hosts (主機):顯示系統中的主機資訊。
叢集列表展示了每個叢集的詳細資訊,包括:
- 叢集名稱:每個叢集的名稱,如 “infinilabs”、“mycluster”、“INFINI_SYSTEM (JeanGrey)”。
- 叢集健康狀態:以顏色條的形式顯示最近 14 天的叢集健康狀態(綠色表示健康,黃色表示有警告)。
- 節點數量:叢集中包含的節點數量。
- 索引數量:叢集中的索引數量。
- 分片數量:叢集中的分片數量。
- 文件數量:叢集中儲存的文件數量。
- 磁碟使用率:叢集的磁碟使用情況。
- JVM 堆記憶體使用率:叢集的 JVM 堆記憶體使用情況。
- 索引速率:當前叢集的索引速率(每秒索引數)。
- 搜尋速率:當前叢集的搜尋速率(每秒搜尋數)。
頁面右側提供了豐富的篩選和排序選項,可以根據以下條件篩選和排序叢集:
- 健康狀態 (Health Status):根據叢集的健康狀態篩選,如綠色(健康)和黃色(警告)。
- 分佈 (Distribution):根據叢集的分佈型別篩選,如 “easysearch” 和 “elasticsearch”。
- 版本 (Version):根據叢集使用的軟體版本篩選,如 Easysearch 1.8.2 和 Elasticsearch 7.10.2。
- 區域 (Region):根據叢集所在的區域篩選,如 “china” 和 “default”。
- 標籤 (Tags):根據自定義標籤進行篩選。
接下來分別介紹節點、索引和主機層面的資訊,這些監控指標與叢集層面大同小異。
節點監控
索引監控
主機監控
包括了常規的 CPU、記憶體、磁碟、網路的監控。
監控指標頁面
監控報表頁面提供了對叢集執行狀況的詳細監控和分析功能。使用者可以選擇最近 15 分鐘、1 小時、24 小時等不同時間範圍檢視資料,並手動點選重新整理按鈕更新資料,以獲取最新的監控資訊。
概覽資訊
顯示當前叢集的基本狀態,包括:
- 叢集名稱:如 “infinilabs”。
- 線上時長:如 “3 天”。
- 叢集版本:如 “1.8.2”。
- 健康狀態:如 “green”。
- 節點數:如 “2”。
- 索引數:如 “38”。
- 主/總分片:如 “38/76”。
- 未分配分片:如 “0”。
- 文件數:如 “656,803”。
- 儲存空間:如 “1007.2MB/385.4GB”。
- JVM 記憶體:如 “1023.0MB/2.0GB”。
監控報表頁面還提供了多個效能指標的圖表,包括:
索引吞吐 (doc/s)
- Total Indexing:總索引吞吐量。
- Primary Indexing:主分片的索引吞吐量。
查詢吞吐 (query/s)
- Total Query:總查詢吞吐量。
索引延遲 (ms)
- Indexing Latency:索引延遲時間。
- Delete Latency:刪除操作的延遲時間。
查詢延遲 (ms)
- Query Latency:查詢延遲時間。
- Fetch Latency:獲取操作的延遲時間。
- Scroll Latency:滾動操作的延遲時間。
點選“Advance”可以檢視更多監控指標:
節點級別效能監控
包括 CPU、負載、JVM 記憶體、剩餘使用空間及磁碟空間、叢集啟動時間和索引讀寫情況。
索引級別監控
包括叢集內索引的數量、狀態、主分片和副本分片數量、文件條數和佔用空間。
叢集動態頁面
提供叢集中各類事件和活動的詳細記錄和監控功能。
別名管理
別名管理頁面提供了對索引別名的管理功能,使使用者可以方便地管理和配置 Elasticsearch/EasySearch 的索引別名。
建立別名
可以透過 DSL 建立別名。例如,建立一個名為 my_index_alias 的別名指向 my_index
:
POST /_aliases
{
"actions": [
{
"add": {
"index": "my_index",
"alias": "my_index_alias"
}
}
]
}
刪除別名
刪除一個別名同樣可以透過 REST API 實現:
POST /_aliases
{
"actions": [
{
"remove": {
"index": "my_index",
"alias": "my_index_alias"
}
}
]
}
索引輪換
索引輪換是一種常用的索引管理策略,特別適用於日誌和時間序列資料的場景。透過索引輪換,使用者可以在索引達到一定條件(如大小或文件數量)時,建立一個新的索引來繼續儲存資料,而舊的索引可以繼續用於查詢。
- 設定寫別名:建立一個指向當前寫入索引的別名,例如 current_write_index。
- 定義索引輪換條件:可以基於索引的大小、文件數量或時間來定義輪換條件。
- 索引並更新寫別名指向這個新索引。
建立初始索引並設定寫別名:
PUT /my_index-000001
{
"aliases": {
"current_write_index": {}
}
}
使用 /_rollover API 定義輪換條件並執行輪換:
POST /current_write_index/_rollover
{
"conditions": {
"max_age": "7d",
"max_docs": 1000000
},
"settings": {
"number_of_shards": 1
},
"aliases": {
"current_write_index": {}
}
}
透過這種方式,查詢操作可以透明地訪問所有歷史資料,而寫操作總是指向最新的索引。
在 INFINI Console 中提供了視覺化建立索引及別名的方式。頁面右上角提供了新建按鈕,使用者可以透過點選該按鈕建立新的索引別名,填寫別名名稱、關聯索引、索引路由、搜尋路由和過濾查詢等配置。
平臺監控
展示了多個關鍵指標的監控圖表,包括:
- 健康狀態 (Health):顯示系統當前的健康狀態。如果沒有資料,則顯示“暫無資料”。
- 引擎分佈 (Engines):展示系統中不同搜尋引擎的分佈情況,例如 EasySearch 和 Elasticsearch 的比例。圖表顯示當前 EasySearch 佔 67%,Elasticsearch 佔 33%。
- 提供商 (Providers):顯示系統中使用的雲服務提供商資訊。在示例中,所有資源都託管在 AWS 上。
- JDK 版本 (JDK):顯示系統中使用的 JDK 版本資訊。在示例中,所有節點都使用 JDK 版本 11.0.20。
- 磁碟使用情況 (Disk Utilization) - Top 10:顯示磁碟使用率最高的前 10 個節點。在示例中,easysearch-node1 和 easysearch-node2 的磁碟使用率均為 4%。
- JVM 使用情況 (JVM Utilization) - Top 10:展示 JVM 使用率最高的前 10 個節點。在示例中,infinilabs 叢集的 easysearch-node1 和 easysearch-node2 節點的 JVM 使用情況有詳細的時間序列資料,顯示了不同時間點的使用率變化。
我們還能夠看到更多指標:
資料探索
在資料探索裡,可以根據時間、欄位等條件對索引或者檢視下的資料進行搜尋查詢和分析,類似 Kibana 的 Discover。
這裡可以看到叢集的警報,目前叢集執行良好,沒有任何警報。
內部會預設一些警報規則,如下:
點進去一個請求,比如磁碟的警告,可以針對不同的使用量設定不同的警告級別和通知。
這裡針對警報設定警報,可以看到現在支援很多平臺,Discord、飛書、郵件、微信、Slack 以及釘釘。
點選進去可以檢視,對於社交軟體而言,其實是使用 Webhook 進行通知,除此之外也支援配置郵件伺服器和自定義的 Webhook 進行通知。
開發工具
Console 的開發工具相當於 Kibana DevTool 的升級版,使用上基本沒有大的區別,除了支援 DSL 之外,還支援多叢集 Tab 切換、常用命令快速 Load、SQL 查詢等。
叢集連線憑證管理
可以看到連線這三個叢集的憑證管理,目前都是有效的。
後臺使用者授權
可以新增使用者以及修改 Console 管理介面的密碼。目前設定了 admin 賬號。
審計日誌
追蹤對叢集的操作,捕獲檢視叢集監控資訊以及叢集索引的操作。
結論
INFINI Console 的儀表盤頁面整合了系統的關鍵資訊和快捷操作入口,使使用者可以高效地管理和監控系統。透過詳細的概覽資訊、實時的告警通知、快速的功能入口和動態日誌,使用者能夠對系統的執行狀態一目瞭然,並快速響應各種管理需求。這個設計不僅提升了使用者的工作效率,還確保了系統的安全和穩定執行。
INFINI Console 的叢集管理頁面提供了對系統叢集的全面監控和管理功能。透過詳細的叢集資訊展示、便捷的功能選項卡切換以及豐富的篩選和排序功能,使用者可以高效地管理和監控系統中的叢集狀態。這不僅提升了運維效率,還確保了系統的穩定執行和高效管理。
INFINI Console 的節點管理頁面提供了對叢集節點的全面監控和管理功能。透過詳細的節點資訊展示、便捷的功能選項卡切換以及豐富的篩選和搜尋功能,使用者可以高效地管理和監控系統中的節點狀態,從而提升運維效率,確保系統的穩定執行和高效管理。
INFINI Console 的監控報表頁面提供了對叢集執行狀況的全面監控和分析功能。透過詳細的概覽資訊和多個效能指標圖表,使用者可以高效地監控和管理叢集的執行狀態。這不僅提升了系統運維效率,還確保了叢集的穩定執行和高效管理。
透過這些功能,INFINI Console 為使用者提供了全面的系統管理工具,幫助他們高效地應對各種運維挑戰,確保系統的高效、安全、穩定執行。
作者:韓旭,亞馬遜雲技術支援,亞馬遜雲科技技領雲博主,目前專注於雲端計算開發和大資料領域。
關於 Easysearch 有獎徵文活動
無論你是 Easysearch 的老使用者,還是第一次聽說這個名字,只要你對 INFINI Labs 旗下的 Easysearch 產品感興趣,或者是希望瞭解 Easysearch,都可以參加這次活動。
詳情檢視:Easysearch 徵文活動