通過Elasticsearch的日誌功能,您可以輸入關鍵字和設定時間範圍,鎖定需要查詢的日誌內容,快速定位叢集問題,輔助叢集營運。本文為您介紹如何查詢日誌以及常見日誌的使用說明。
使用限制
ES訪問日誌:僅6.7.0及7.10版本的執行個體支援在控制台查看ES訪問日誌。
審計日誌:僅以下地區的7.x及以上版本執行個體支援在控制台查看審計日誌。
國家或大區
地區
中國
華北2(北京)、華東1(杭州)、華東2(上海)、華北3(張家口)
亞太地區
新加坡、馬來西亞(吉隆坡)、印尼(雅加達)、日本(東京)
歐美地區
美國(維吉尼亞)、美國(矽谷)、德國(法蘭克福)、英國(倫敦)
操作步驟
- 登入Elasticsearch控制台。
- 在左側導覽列,單擊Elasticsearch執行個體。
- 進入目標執行個體。
- 在頂部功能表列處,選擇資源群組和地區。
- 在Elasticsearch執行個體中單擊目標執行個體ID。
在左側導覽列,單擊日誌查詢,查看叢集的作業記錄。
Elasticsearch主要支援的日誌類型包括:主日誌、Searching慢日誌、Indexing慢日誌、GC日誌、ES訪問日誌和審計日誌,各類日誌的說明和使用情境如下,更多詳細資料請參見日誌說明。
日誌類型
說明
使用情境
主日誌
叢集的健康運行狀態及索引查詢寫入日誌。例如,寫入相關日誌包含建立索引、更新索引mapping和寫入隊列打滿等日誌;查詢相關日誌包含查詢隊列和查詢異常等日誌。
當您需要查看叢集中各節點的健全狀態及查詢寫入情況,例如節點之間的連通性、Full GC情況、建立或刪除索引情況、叢集層級的查詢報錯等資訊時,可查看主日誌進行排查。
重要如果您的業務側出現問題,建議優先查看主日誌和叢集監控,排除叢集自身的效能瓶頸或配置問題。
Searching慢日誌
慢查詢日誌。當查詢耗時超過指定閾值時,將在慢查詢日誌中列印相關資訊。慢查詢閾值已在情境化模板的索引模板中配置,預設情況下已是最優,只需一鍵應用即可,詳細資料請參見索引模板配置。
當您的業務出現查詢耗時久的情況時,可查看Searching慢日誌進行排查。
查詢耗時越久,叢集資源消耗越大。當日誌存在大量的慢日誌,請排查叢集資源及負載情況,擷取瓶頸項,根據瓶頸項及時擴充對應資源或使用叢集限流外掛程式(aliyun-qos)進行限流,以保證叢集的穩定性。
Indexing慢日誌
慢寫入日誌。當寫入耗時超過指定閾值時,將在慢寫入日誌中列印相關資訊。慢寫入閾值已在情境化模板的索引模板中配置,預設情況下已是最優,只需一鍵應用即可,詳細資料請參見索引模板配置。
當您的業務出現寫入耗時久的情況時,可查看Indexing慢日誌進行排查。
寫入耗時越久,對叢集的資源消耗越大。當日誌存在大量的慢日誌,請排查叢集資源及負載情況,擷取瓶頸項,根據瓶頸項及時擴充對應資源或使用叢集限流外掛程式(aliyun-qos)進行限流,以保證叢集的穩定性。
GC日誌
記憶體回收行程日誌。顯示所有JVM堆記憶體佔用觸發的記憶體回收情況,通過GC日誌可擷取詳細的記憶體回收資訊,包括Old GC、CMS GC、Full GC以及Minor GC等回收機制。
當叢集出現效能瓶頸時,可通過GC日誌擷取詳細的GC回收資訊,查看是否存在耗時間長度或操作頻繁的GC。如果存在,需要及時擴充叢集資源或使用叢集限流外掛程式(aliyun-qos)進行限流,以保證叢集的穩定性。
重要預設情況下,Elasticsearch叢集使用CMS回收器,而當資料節點記憶體大於等於32 GB時,建議使用G1回收器,以提高GC回收效率。詳細資料請參見配置記憶體回收行程。
ES訪問日誌
叢集的訪問日誌。顯示Elasticsearch叢集接收到restSearchAction相關請求的詳細資料,包括uri、bodySize、請求時間等。
重要僅6.7.0及7.10版本的執行個體支援在控制台查看ES訪問日誌。
ES訪問日誌不支援以下查詢情境日誌:SQL查詢、multi查詢、 scroll查詢、Kibana部分視覺化檢視觸發的查詢。
如果您想擷取更完善的查詢寫入請求資訊,建議開啟審計日誌,詳情請參見配置Auditlog(審計日誌)。
當您需要排查哪些用戶端在向Elasticsearch叢集發送查詢請求時,可通過ES訪問日誌擷取。
審計日誌
Elasticsearch執行個體對應的增、刪、改、查等操作產生的審計日誌。
重要僅使用限制中所列地區的7.x及以上版本執行個體支援在控制台查看審計日誌。其他執行個體需要在YML配置中開啟審計日誌,開啟後審計日誌會以索引形式寫入當前的Elasticsearch叢集中,您可以在Kibana控制台上查看.security_audit_log-*開頭的索引來查看審計日誌。詳細資料請參見配置YML參數。
在控制台上查看審計日誌前,需要先單擊日誌設定開啟審計日誌採集。
審計日誌預設採集的事件類型為access_denied, anonymous_access_denied, authentication_failed, connection_denied, tampered_request, run_as_denied, run_as_granted,如果您需要修改採集的審計事件類型,需要修改叢集的YML檔案中的xpack.security.audit.logfile.events.include參數,詳細資料請參見配置Auditlog(審計日誌)。
當您出現身分識別驗證失敗、拒絕串連、需要查看資料訪問事件以及發現叢集存在可疑活動(例如資料訪問授權和使用者安全配置更改)的情況時,可通過查看審計日誌進行排查分析。
在日誌頁面的搜尋方塊中,輸入查詢條件,選擇開始時間和結束時間,單擊搜尋。
搜尋成功後,Elasticsearch會根據您的查詢條件返回日誌查詢結果,並展示在日誌查詢頁面。
Elasticsearch最多支援查詢連續7天內的日誌,日誌預設按時間倒序展示。
支援基於Lucene的日誌查詢文法,詳情請參見Query string syntax。
查詢條件中的
AND
必須為大寫。如果結束時間為空白,那麼結束時間預設為目前時間。如果開始時間為空白,那麼開始時間預設為結束時間減去1小時。
以查詢content包含關鍵字health,level為info,host為172.16.xx.xx的主日誌為例,樣本查詢條件為:
host:172.16.xx.xx AND content:health AND level:info
。重要Elasticsearch最多支援返回10000條日誌。
如果在返回的10000條日誌中,未覆蓋到您所需要的日誌內容,可以通過縮短查詢時間範圍來擷取需要的日誌。
Elasticsearch單條日誌最多展示10000個字元。
日誌說明
主日誌
主日誌主要展示叢集的作業記錄,包括日誌產生的時間、日誌所在的節點IP和日誌內容。
參數 | 說明 |
時間 | 日誌產生時間。 |
節點IP | 組建記錄檔的節點的IP地址。 |
內容 | 日誌的詳細資料,主要由level、host、time和content組成:
|
慢日誌
慢日誌預設開啟,主要展示超過指定時間閾值的索引(Indexing慢日誌)和查詢(Searching慢日誌)日誌。在叢集負載不均、讀寫異常、處理資料很慢等情況下,您可以通過查詢慢日誌來分析具體原因。
預設情況下,Elasticsearch的慢日誌會記錄5~10秒的讀寫操作,這樣不利於排查問題。因此在執行個體建立完成後,您可以選擇以下任意一種方式,降低日誌記錄的時間間隔,以抓取更多的日誌:
叢集建立成功後,情境化配置模板預設已開啟,且會自動應用到叢集中。其中索引模板配置中定義了慢日誌配置,您無需修改保持預設即可。其中通用情境預設的慢日誌配置如下:
"settings": { "index": { "search": { "slowlog": { "level": "info", "threshold": { "fetch": { "warn": "200ms", "trace": "50ms", "debug": "80ms", "info": "100ms" }, "query": { "warn": "500ms", "trace": "50ms", "debug": "100ms", "info": "200ms" } } } }, "refresh_interval": "10s", "unassigned": { "node_left": { "delayed_timeout": "5m" } }, "indexing": { "slowlog": { "level": "info", "threshold": { "index": { "warn": "200ms", "trace": "20ms", "debug": "50ms", "info": "100ms" } }, "source": "1000" } } } }
說明如果情境化配置模板為不啟用狀態,您需要參見修改情境化配置模板,啟用並提交模板配置,才可以將預設的慢日誌配置應用到叢集。
參見登入Kibana控制台,登入該執行個體的Kibana控制台,執行以下命令,修改慢日誌配置。
PUT _settings{ "index.indexing.slowlog.threshold.index.warn" : "200ms", "index.indexing.slowlog.threshold.index.trace" : "20ms", "index.indexing.slowlog.threshold.index.debug" : "50ms", "index.indexing.slowlog.threshold.index.info" : "100ms", "index.search.slowlog.threshold.fetch.warn" : "200ms", "index.search.slowlog.threshold.fetch.trace" : "50ms", "index.search.slowlog.threshold.fetch.debug" : "80ms", "index.search.slowlog.threshold.fetch.info" : "100ms", "index.search.slowlog.threshold.query.warn" : "500ms", "index.search.slowlog.threshold.query.trace" : "50ms", "index.search.slowlog.threshold.query.debug" : "100ms", "index.search.slowlog.threshold.query.info" : "200ms"}
修改完成後,在執行讀寫任務時,如果執行時間超過了以上配置的時間,您就可以在慢日誌頁簽中查詢到對應的日誌。
GC日誌
GC日誌預設開啟,包含日誌產生的時間、所在節點的IP地址和日誌內容。詳細資料,請參見主日誌。
ES訪問日誌
訪問日誌展示了Elasticsearch叢集接收到restSearchAction相關請求的詳細資料,包括叢集node和IP地址、bodySize、請求內容、請求時間、發起請求的用戶端IP地址、uri等資訊。
僅6.7.0和7.10版本的執行個體支援在控制台查看ES訪問日誌。
如果您想擷取更完善的查詢寫入請求資訊,建議開啟審計日誌,詳情請參見配置Auditlog(審計日誌)。
審計日誌
僅使用限制中所列地區的7.x及以上版本執行個體支援在控制台查看審計日誌。
審計日誌主要展示Elasticsearch執行個體對應的增、刪、改、查等操作產生的日誌。預設關閉,您可以通過以下步驟開啟並查看審計日誌:
在日誌查詢頁面,單擊右側的日誌設定。
在日誌設定對話方塊中,開啟審計日誌採集開關。
重要開啟審計日誌採集後,您可以在當前頁面查詢到該叢集的審計日誌。如果您需要修改採集的審計事件類型,請前往叢集配置修改xpack.security.audit.logfile.events.include參數配置,詳細資料請參見配置Auditlog(審計日誌)。
開啟或關閉審計日誌採集會觸發叢集重啟。目前Elasticsearch叢集重啟是採用滾動重啟的方式。在叢集狀態正常(綠色)、索引至少包含1個副本的情況下,如果資源使用率也不是特別高,那麼叢集在重啟期間能夠持續提供服務。但建議在業務低峰期操作。
選中操作提示,單擊確認。
確認後,叢集會進行重啟。重啟過程中,可在工作清單查看進度。重啟成功後,即可開啟審計日誌採集。
重要審計日誌資訊會佔用您的磁碟空間,同時也會影響效能。如果您不需要查看審計日誌,可使用同樣的方式關閉審計日誌採集功能。
在日誌查詢頁面,單擊審計日誌頁簽,查看審計日誌。