阿里云Elasticsearch為運行中的集群提供了多項基礎監控指標(例如集群狀態、集群查詢QPS、節點CPU使用率、節點磁盤使用率等)和高級監控報警指標(例如Cluster、Index、Note Resource等),用來監測集群的運行狀況。您可以根據這些指標,實時了解集群的運行狀況,及時處理潛在風險,保障集群穩定運行。本文介紹如何查看集群監控詳情,以及各監控指標含義、異常原因和異常處理建議。
監控差異說明
阿里云Elasticsearch集群監控可能與Kibana或第三方監控存在如下差異:
采樣周期差異性:采集周期和Kibana或第三方監控存在差異,采集到的數據不同,因此會存在差異。
查詢算法差異性:例如,阿里云Elasticsearch集群監控和Kibana監控采集數據時都會受集群穩定性的影響,集群監控QPS指標會因集群的抖動會出現監控突增、負值或無監控等狀況,而Kibana監控可能顯示為空。
說明如果集群監控提供的指標比Kibana監控多,在實際使用時,建議將集群監控和Kibana監控結合起來分析集群監控詳情。
采集接口差異性:Kibana監控指標依賴于Elasticsearch API,而集群監控部分節點級別的指標(例如CPU使用率、load_1m、磁盤使用率等),調用的是阿里云Elasticsearch底層系統接口,因此監控中除了Elasticsearch進程外還包含了系統級別資源的占用情況。
查看集群監控詳情
- 登錄阿里云Elasticsearch控制臺。
- 在左側導航欄,單擊Elasticsearch實例。
- 進入目標實例。
- 在頂部菜單欄處,選擇資源組和地域。
- 在Elasticsearch實例中單擊目標實例ID。
在左側導航欄,選擇 。
查看監控詳情。
查看高級監控報警詳情
單擊高級監控報警頁簽,選擇監控時段,查看該時段內的監控詳情。
說明高級監控報警功能目前僅支持杭州、北京、上海、深圳、青島、張家口、美國東部、美國西部、日本、印度、印度尼西亞、中國香港等地域,具體以控制臺為準。詳細信息請參見高級監控報警概述。
阿里云Elasticsearch實例的版本不同,支持的高級監控指標也不同,具體以控制臺為準。
ES實例的高級監控報警頁面默認僅展示該實例指標數據在Top 20內的節點監控,不建議您在該頁面過濾或切換大盤,請單擊頁面右上角更多監控,跳轉至高級監控控制臺獲取更多監控指標及相關信息。
查看基礎監控詳情
查看基礎監控頁簽,選擇資源類型和監控時段,查看該類別的資源在對應時段內的監控詳情。
您也可以單擊自定義,選擇開始時間和結束時間,單擊確定,查看自定義時間段內的監控詳情。
說明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)的規格升配集群,增大實例規格。升配后,如果狀態依然異常,建議參見以上兩種方案排查解決。
慢查詢耗時分布
指標含義
慢查詢耗時分布指標展示了集群在每500ms內,慢查詢的數量分布。
例如:獲取2021.10.15~2021.10.16區間內慢查詢分布,0ms≤search_time_ms(慢查詢耗時)<500ms,此區間分布了10000條慢查詢日志;500ms≤search_time_ms(慢查詢耗時)<1000ms,此區間分布了20000條慢查詢日志。耗時分布時間按照500ms間隔進行累加。
指標異常原因
監控期間,當區間慢查詢耗時,查詢數量增大時,服務異常,常見原因如下:
指標異常原因 | 說明 |
QPS | 查詢QPS或寫入QPS流量突增或波動較大,集群壓力大,相對單條查詢耗時久。 |
有agg查詢或者有腳本查詢 | 聚合查詢場景,需要耗用大量的計算資源做數據聚合,尤其是內存,在使用時請注意。 |
term查詢數值字段 | 大批量的數值型byte、short、integer、long字段做term查詢時,在構造docid集合的bitset很耗時,會影響查詢速度。如果該數值字段沒有range和agg聚合需求,建議改為keyword類型字段。 |
模糊匹配 | 通配符和正則表達式、模糊查詢,需要遍歷倒排索引中的詞條列表來找到所有的匹配詞條,進而逐個詞條地收集對應的文檔ID。尤其在未壓測的前提下,大批量的查詢,會耗用大量的計算資源,建議使用前結合場景壓測,選擇合適的量級。 |
存在個別慢查詢或慢寫入請求 | 此情況下,查詢和寫入QPS流量波動較小或不明顯,可在阿里云Elasticsearch控制臺中的查詢日志頁面,單擊searching慢日志查看分析。 |
集群中存在大量索引或總分片數量非常多 | 由于Elasticsearch會監控集群中的索引并寫入日志,因此當總索引或總分片數量過多時,容易引起CPU或HeapMemory使用率過高,或load_1m負載過高,影響整個集群查詢速度。 |
在集群上執行過Merge操作 | Merge操作會消耗CPU資源,對應節點的Segment Count會突降,可在Kibana控制臺中節點的Overview頁面查看。 |
執行過gc操作 | gc操作會嘗試釋放內存(例如full gc),消耗CPU資源,可能會導致CPU使用率突增,影響查詢速度。 |
執行過定時任務 | 數據備份或其他自定義任務,需要占用大量的IO資源,影響查詢速度。 |
集群寫入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。
index bulk寫入tps
指標含義
index bulk寫入tps指標展示了索引每秒bulk的請求量。
指標異常原因
監控期間,該指標可能存在沒數據,常見原因如下:
集群壓力大,影響集群監控數據的正常采集。
監控數據未成功推送。
index查詢QPS
指標含義
index查詢QPS指標展示了索引每秒執行的查詢QPS數量,查詢QPS數量與待查詢索引的主分片個數有關。
例如:待查詢索引有5個主分片,則一次查詢請求對應5個QPS。
指標異常原因
監控期間,該指標可能存在沒數據,常見原因如下:
集群壓力大,影響集群監控數據的正常采集。
監控數據未成功推送。
索引查詢QPS流量突增,可能就是該索引引起了集群CPU使用率、HeapMemory使用率或load_1m負載過高,影響整個集群服務,可以針對該索引進行優化。
節點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資源??赡軙е翪PU使用率突增。 |
執行過定時任務 | 數據備份或其他自定義任務。 |
節點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任務的資源占用情況。
old區使用
指標含義
old區使用指標展示了集群中各節點堆內存old區的使用大小。當old區占用較高或存在較大的內存對象,會影響集群服務,會自動觸發gc操作,大對象回收可能會出現gc耗時較長或full gc。
指標異常原因
監控期間,當指標數值突增或波動較大時,服務異常,常見原因如下:
指標異常原因 | 說明 |
QPS | 查詢QPS或寫入QPS流量突增或波動較大。 |
有agg查詢或者有腳本查詢 | 聚合查詢場景,需要耗用大量的計算資源做數據聚合,尤其是內存,在使用時請注意。 |
term查詢數值字段 | 大批量的數值型byte、short、integer、long字段做term查詢時,在構造docid集合的bitset很費時,會影響查詢速度。如果該數值字段沒有range和agg聚合需求,建議改為keyword類型字段。 |
模糊匹配 | 通配符和正則表達式、模糊查詢,需要遍歷倒排索引中的詞條列表來找到所有的匹配詞條,進而逐個詞條地收集對應的文檔ID。尤其在未壓測的前提下,大批量的查詢,會耗用大量的計算資源,建議使用前結合場景壓測,選擇合適的量級。 |
存在個別慢查詢或慢寫入請求 | 此情況下,查詢和寫入QPS流量波動較小或不明顯,可在阿里云Elasticsearch控制臺中的查詢日志頁面,單擊searching慢日志查看分析。 |
存在大量慢查詢或慢寫入請求 | 此情況下,查詢和寫入QPS流量波動較小或不明顯,可在阿里云Elasticsearch控制臺中的查詢日志頁面,單擊indexing慢日志查看分析。 |
集群中存在大量索引或總分片數量非常多 | 由于Elasticsearch會監控集群中的索引并寫入日志,因此當總索引或總分片數量過多時,容易引起CPU或HeapMemory使用率過高,或load_1m負載過高。 |
在集群上執行過Merge操作 | Merge操作會消耗CPU資源,對應節點的Segment Count會突降,可在Kibana控制臺中節點的Overview頁面查看。 |
執行過gc操作 | gc操作會嘗試釋放內存(例如full gc),消耗CPU資源,可能會導致HeapMemory使用率突降。 |
執行過定時任務 | 數據備份或其他自定義任務。 |
old gc頻次
指標含義
old gc頻次指標表示集群中各個節點old區gc回收數量,當old區占用較高或存在較大的內存對象,會影響集群服務,會自動觸發gc操作,大對象回收可能會出現gc耗時較長或full gc。
基礎監控指標full gc通過日志獲取,高級監控中內存指標依賴ES引擎采集,兩者獲取方式及應用存在差異,建議結合所有指標綜合判斷集群性能。
指標異常原因
請參見old區使用的指標異常原因。
old gc耗時
指標含義
old gc耗時指標表示集群中各個節點old區gc回收平均耗時,當old區占用較高或存在較大的內存對象,會自動觸發gc操作,大對象回收可能會出現gc耗時較長或full gc。
指標異常原因
請參見old區使用的指標異常原因。
fielddata內存使用
指標含義
fielddata內存使用指標表示集群中fielddata內存占用情況,監控曲線越高,說明堆內存存在大量的fielddata數據緩存,過大的fielddata內存占用會觸發fielddata內存熔斷,影響集群穩定性。
指標異常原因
監控期間,當指標占用大量的堆內存時,可能會出現服務異常,常見原因如下:
查詢中存在大量對字符串(text)字段做排序或者聚合的操作,該類查詢fielddata默認不會被回收,建議使用數值型字段類型。
查詢QPS或寫入QPS流量突增或波動較大,fielddata數據頻繁地進行緩存。
集群中存在大量索引或總分片數量非常多。由于Elasticsearch會監控集群中的索引并寫入日志,因此當總索引或總分片個數過多時,容易引起CPU或HeapMemory使用率過高,或load_1m負載過高。
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)
每秒完成的寫請求數量指標展示了集群中各節點每秒完成的寫請求數量。
每秒鐘寫入的大?。∕B/s)
每秒鐘寫入的大小指標展示了每秒向集群中各節點寫入的數據量。
常見問題
Q:高級監控報警中的慢查詢條數指標的含義是什么?
A:以下圖為例,12表示當前過濾的時間段內,最后一個時刻的慢日志的條數;254表示當前過濾的時間段內慢日志的條數總和。