Elasticsearch為運行中的叢集提供了多項基礎監控指標(例如叢集狀態、叢集查詢QPS、節點CPU使用率、節點磁碟使用率等),用來監測叢集的健全狀態。您可以根據這些指標,即時瞭解叢集的健全狀態,及時處理潛在風險,保障叢集穩定運行。本文介紹如何查看叢集監控詳情,以及各監控指標含義、異常原因和異常處理建議。
監控差異說明
Elasticsearch叢集監控可能與Kibana或第三方監控存在如下差異:
採樣周期差異性:採集周期和Kibana或第三方監控存在差異,採集到的資料不同,因此會存在差異。
查詢演算法差異性:例如,Elasticsearch叢集監控和Kibana監控採集資料時都會受叢集穩定性的影響,叢集監控QPS指標會因叢集的抖動會出現監控突增、負值或無監控等狀況,而Kibana監控可能顯示為空白。
說明如果叢集監控提供的指標比Kibana監控多,在實際使用時,建議將叢集監控和Kibana監控結合起來分析叢集監控詳情。
採集介面差異性:Kibana監控指標依賴於Elasticsearch API,而叢集監控部分節點層級的指標(例如CPU使用率、load_1m、磁碟使用率等),調用的是Elasticsearch底層系統介面,因此監控中除了Elasticsearch進程外還包含了系統層級資源的佔用情況。
查看叢集監控詳情
- 登入Elasticsearch控制台。
- 在左側導覽列,單擊Elasticsearch執行個體。
- 進入目標執行個體。
- 在頂部功能表列處,選擇資源群組和地區。
- 在Elasticsearch執行個體中單擊目標執行個體ID。
在左側導覽列,選擇 。
單擊基礎監控頁簽,選擇資源類型和監控時段,查看該類別的資源在對應時段內的監控詳情。
您也可以自訂監控時段:單擊自訂,選擇開始時間和結束時間,查看自訂時間段內的監控詳情。
說明Elasticsearch執行個體的監控警示預設為開啟狀態,您可以在叢集監控頁面查看歷史監控資料。目前只保留30天內的監控資訊,並且提供分鐘粒度的資料。
叢集的主要監控指標包含(實際以控制台為準):
叢集狀態(value)
指標含義
叢集狀態指標展示了叢集的健康度,數值為0.00時表示正常。此監控指標必須配置,配置方法請參見配置叢集警示。指標各數值的含義如下。
數值 | 顏色 | 狀態 | 說明 |
2.00 | 紅色 | 不是所有的主分區都可用。 | 表示該叢集中某個或某幾個索引的主分區丟失(unassigned)。 |
1.00 | 黃色 | 所有主分區可用,但不是所有副本分區都可用。 | 表示該叢集中某個或某幾個索引的副本分區丟失(unassigned)。 |
0.00 | 綠色 | 所有主分區和副本分區都可用。 | 表示該叢集中的所有索引都很健康,不存在丟失(unassigned)的分區。 |
表中的顏色是指在執行個體的基本資料頁面所看到的叢集狀態的顏色。
指標異常原因
監控期間,當指標數值不為0.00時,表示叢集狀態異常,常見原因如下:
節點的CPU或HeapMemory使用率過高,甚至達到100%。
節點的磁碟使用率過高,例如超過85%,甚至達到100%。
節點的load_1m負載過高。
叢集中索引的健康度出現過非健康(非綠色)狀態。
異常處理建議
在Kibana控制台的Monitoring頁面查看監控資訊,或者查看執行個體的日誌,擷取問題的具體資訊,並排查解決(例如索引佔用記憶體太大,可刪除一些索引)。
對於磁碟使用率過高導致叢集異常的情況,建議參見叢集磁碟使用率過高和read_only問題的排查與處理方法排查解決。
對於1核2 GB規格的執行個體,遇到執行個體狀態不正常的問題時,建議先按照1:4(CPU:Mem)的規格升配叢集,增大執行個體規格。升配後,如果狀態依然異常,建議參見以上兩種方案排查解決。
叢集寫入QPS(Count/Second)
如果寫入QPS流量突增,可能引起CPU使用率、HeapMemory使用率或load_1m負載過高,影響叢集服務,請盡量避免這種情況。
指標含義
叢集寫入QPS指標展示了叢集每秒寫入文檔的數量。具體說明如下:
如果1秒內,用戶端向叢集發送了1個只包含單個文檔的寫入請求,則對應1個寫入QPS。如果1秒內發送了多個寫入請求,則累加統計。
如果1秒內,通過_bulk API在一個寫入請求中批量寫入了多個文檔,則寫入QPS參考該請求中批量推送的總文檔個數。如果1秒內發送了多個_bulk API批量寫入請求,則累加統計。
叢集查詢QPS(Count/Second)
如果查詢QPS流量突增,可能引起CPU使用率、HeapMemory使用率或load_1m負載過高,影響叢集服務,請盡量避免這種情況。
指標含義
叢集查詢QPS指標展示了叢集每秒執行的查詢QPS數量,查詢QPS數量與待查詢索引的主分區個數有關。
例如:待查詢索引有5個主分區,則一次查詢請求對應5個QPS。
節點CPU使用率(%)
指標含義
節點CPU使用率指標展示了叢集中各節點的CPU使用率百分比。當CPU使用率較高或接近100%時,會影響叢集服務。
指標異常原因
監控期間,當指標數值突增或波動較大時,服務異常,常見原因如下:
指標異常原因 | 說明 |
QPS | 查詢QPS或寫入QPS流量突增或波動較大。 |
存在個別慢查詢或慢寫入請求 | 此情況下,查詢和寫入QPS流量波動較小或不明顯,可在Elasticsearch控制台中的日誌查詢頁面,單擊searching慢日誌查看分析。 |
叢集中存在大量索引或總分區數量非常多 | 由於Elasticsearch會監控叢集中的索引並寫入日誌,因此當總索引或總分區數量過多時,容易引起CPU或HeapMemory使用率過高,或load_1m負載過高。 |
在叢集上執行過Merge操作 | Merge操作會消耗CPU資源,對應節點的Segment Count會突降,可在Kibana控制台中節點的Overview頁面查看。 |
執行過gc操作 | gc操作會嘗試釋放記憶體(例如full gc),消耗CPU資源。可能會導致CPU使用率突增。 |
執行過定時任務 | 資料備份或其他自訂任務。 |
節點CPU使用率不僅包含了Elasticsearch系統層級的資源的佔用情況,也包含了Elasticsearch任務的資源佔用情況。
節點HeapMemory使用率(%)
指標含義
節點HeapMemory使用率指標展示了叢集中各節點的HeapMemory使用率百分比。當HeapMemory使用率較高或存在較大的記憶體對象時,會影響叢集服務,也會自動觸發gc操作。
指標異常原因
監控期間,當指標數值突增或波動較大時,服務異常,常見原因如下:
指標異常原因 | 說明 |
QPS | 查詢QPS或寫入QPS流量突增或波動較大。 |
存在個別慢查詢或慢寫入請求 | 此情況下,查詢和寫入QPS流量波動較小或不明顯,可在Elasticsearch控制台中的日誌查詢頁面,單擊searching慢日誌查看分析。 |
存在大量慢查詢或慢寫入請求 | 此情況下,查詢和寫入QPS流量波動較大或很明顯,可在Elasticsearch控制台中的日誌查詢頁面,單擊indexing慢日誌查看分析。 |
叢集中存在大量索引或總分區數量非常多 | 由於Elasticsearch會監控叢集中的索引並寫入日誌,因此當總索引或總分區數量過多時,容易引起CPU或HeapMemory使用率過高,或load_1m負載過高。 |
在叢集上執行過Merge操作 | Merge操作會消耗CPU資源,對應節點的Segment Count會突降,可在Kibana控制台中節點的Overview頁面查看。 |
執行過gc操作 | gc操作會嘗試釋放記憶體(例如full gc),消耗CPU資源。可能會導致HeapMemory使用率突降。 |
執行過定時任務 | 資料備份或其他自訂任務。 |
節點load_1m(value)
指標含義
節點load_1m指標展示了叢集中各節點在1分鐘內的負載情況,表示各節點的系統繁忙程度。該指標的正常數值,應該低於對應節點規格的CPU核心數。以單核的Elasticsearch節點為例,指標各數值的含義如下。
節點load_1m | 說明 |
<1 | 沒有等待的進程。 |
=1 | 系統無額外的資源運行更多的進程。 |
>1 | 進程擁堵,等待資源。 |
節點load_1m指標不僅包含了Elasticsearch系統層級的資源的佔用情況,也包含了Elasticsearch任務的資源佔用情況。
節點load_1m指標出現波動可能是正常情況,建議您重點關注節點CPU使用率指標進行分析。
指標異常原因
監控期間,當指標數值超過節點規格的CPU核心數時,服務異常,常見原因如下:
節點的CPU或HeapMemory使用率過高,甚至達到100%。
查詢QPS或寫入QPS流量突增或上漲較大。
存在耗時較大的慢查詢。
可在Elasticsearch控制台中的日誌查詢頁面,開啟對應日誌查看分析。
節點load_1m不僅包含了Elasticsearch系統層級的資源的佔用情況,也包含了Elasticsearch任務的資源佔用情況。
節點磁碟使用率(%)
指標含義
節點磁碟使用率指標展示了叢集中各節點的磁碟使用率百分比。建議將磁碟使用率警示閾值控制在75%以下,不要超過85%。否則預設資料節點的磁碟使用率可能會出現以下情況,影響叢集服務。
節點磁碟使用率 | 說明 |
>85% | 新的shard無法分配。 |
>90% | 叢集會嘗試將節點中的shard,遷移到其他磁碟使用率較低的資料節點中。 |
>95% | Elasticsearch會為叢集中的每個索引強制設定 |
強烈建議您配置該監控指標,以便在發生警示時,及時擴容磁碟和節點或清理索引資料等,避免影響叢集服務。
節點磁碟使用率不僅包含了Elasticsearch系統層級的資源的佔用情況,也包含了Elasticsearch任務的資源佔用情況。
FullGc次數(count)
當系統出現頻繁full gc時,會影響叢集服務。
指標含義
FullGc次數指標展示了叢集中1分鐘內的gc總次數。
指標異常原因
監控期間,當指標數值不為0時,服務異常,常見原因如下:
HeapMemory使用率較高。
存在較大的記憶體對象。
Exception次數(count)
指標含義
Exception次數指標展示了叢集的主日誌中,一分鐘內出現的警告層級日誌的總個數。
指標異常原因
監控期間,當指標數值不為0時,服務異常,常見原因如下:
查詢請求可能存在異常。
寫入請求可能存在異常。
Elasticsearch執行任務時,遇到異常。
執行過gc操作。
異常處理建議
可在Elasticsearch控制台中的日誌查詢頁面,單擊主日誌。在主日誌頁面,根據時間點查看詳細異常資訊,並分析異常原因。
如果主日誌中有gc記錄,也會在Exception次數監控指標中統計展示。
快照狀態(value)
指標含義
快照狀態指標展示了Elasticsearch控制台中,自動備份功能的快照狀態。當指標數值為-1或0時,表示服務正常。指標各數值的含義如下。
快照狀態 | 說明 |
0 | 有快照。 |
-1 | 沒有快照。 |
1 | 進行中快照。 |
2 | 快照任務失敗。 |
指標異常原因
指標數值為2時,服務異常,常見原因如下:
節點磁碟使用率很高或接近100%。
叢集不健康。
節點網路流入包(count)
節點網路流入包指標展示了叢集中各節點網路流入流量包的數量。監控周期:1分鐘。
節點網路流出包(count)
節點網路流出包指標展示了叢集中各節點網路從流量包流出的數量。監控周期:1分鐘。
資料流入率(KB/s)
資料流入率指標展示了叢集中各節點每秒資料包的流入速率。監控周期:1分鐘,單位:KB/s。
資料流出率(KB/s)
資料流出率指標展示了叢集中各節點每秒資料包的流出速率。監控周期:1分鐘,單位:KB/s。
節點TCP連結數(count)
指標含義
節點TCP連結數指標展示了叢集中各節點收到的用戶端每次發起TCP串連請求的數量。
指標異常原因
監控期間,當指標數值突增或波動較大時,服務異常,常見原因為:用戶端發起TCP串連長時間未釋放,導致節點TCP串連數量突增。建議用戶端設定相關策略進行釋放。
IOUtil(%)
指標含義
IOUtil指標展示了叢集中各節點的IO使用率達到多少百分比。
指標異常原因
監控期間,當指標數值突增或波動較大時,服務異常,常見原因為:磁碟使用率過高,讀取和寫入資料的平均等待時間過長,導致IO使用率突增,甚至達到100%。建議您根據叢集具體情況,並結合其他指標資料進行處理,例如進行叢集升配等。
每秒完成的讀請求數量(count)
每秒完成的讀請求數量指標展示了叢集中各節點每秒完成的讀請求數量。
每秒鐘讀取的大小(MB/s)
每秒鐘讀取的大小指標展示了每秒從叢集中各節點讀取的資料量。
每秒完成的寫請求數量(count)
每秒完成的寫請求數量指標展示了叢集中各節點每秒完成的寫請求數量。
每秒鐘寫入的大小(MB/s)
每秒鐘寫入的大小指標展示了每秒向叢集中各節點寫入的資料量。