本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
日誌
OpenSearch Ingestion 可以在擷取期間將非結構化日誌資料轉換為結構化格式。OpenSearch Ingestion 提供處理器,在編製索引之前標準化和豐富您的資料。實用處理器的範例如下:
-
grok– 將 Web 伺服器存取日誌等非結構化文字資料剖析並建構成不同的欄位。 -
date– 從日誌欄位剖析日期,並將其設定為事件的時間戳記。 -
parse_json– 剖析包含 JSON 物件的字串欄位。
注意:為了方便開始使用,我們已在 Amazon OpenSearch Service 主控台中為日誌建立新的入門
OpenSearch UI 和可觀測性工作區
將日誌資料擷取到 Amazon OpenSearch Service 後,您可以使用 OpenSearch UI 中 Amazon OpenSearch Service 可觀測性工作區提供的工具來分析它。 OpenSearch 可觀測性工作區提供專門的工具,旨在擷取 Discover 和 Dashboards 中有意義的洞見。
可觀測性工作區隨附新的探索體驗,使用管道處理語言
使用 PPL 查詢日誌
您有多種選項可查詢日誌,以收集對應用程式或服務操作的洞見。
管道處理語言 (PPL) 是一種查詢語言,具有用於鏈結命令的管道型 (|) 語法。您可以使用它來建置強大的表達式來分析您的日誌。
注意:若要在 OpenSearch 2.19 中解鎖較新的 PPL 命令/函數,您需要使用下列查詢變更 OpenSearch 開發人員工具中的功能旗標 (OpenSearch 3.3 不需要):
PUT /_plugins/_query/settings { "transient" : { "plugins.calcite.enabled" : true } }
尋找錯誤最多的主機
此範例會分析您的日誌,以判斷錯誤總數最多的服務主機。
source = my-index |
where level = "ERROR" |
stats count() as error_count by host |
sort -error_count |
head 5
計算平均請求時間
此範例會分析您的日誌,以計算日誌中每個狀態碼的平均請求時間。
source = my-index |
stats avg(request_time) by status_code
如需 PPL 的詳細資訊,請參閱 https://opensearch.org 上的 PPL 參考手冊
使用 AI 查詢您的日誌
此範例會分析您的日誌,以顯示過去 5 分鐘內記錄的錯誤。
Show me all of the error logs from the last 5 minutes
使用 SQL 查詢您的日誌
SQL 提供熟悉的查詢日誌資料的方式。
此範例會分析您的日誌,以依時間戳記顯示錯誤。
SELECT timestamp, severity_text, body, service_name
FROM opentelemetry_logs
WHERE severity_text = 'ERROR' AND service_name = 'my-service'
ORDER BY timestamp DESC;
如需 SQL 的詳細資訊,請參閱 GitHub 上的 SQL 參考手冊
使用 DQL 查詢您的日誌
DQL 適用於快速搜尋和篩選。
此範例會分析您的日誌,並傳回錯誤和例外狀況。
error OR exception
如需 DQL 的詳細資訊,請參閱 https://opensearch.org 上的 DQL 參考手冊
日誌的儀表板和提醒
在 PPL 的新探索體驗中,您可以從探索中的視覺化索引標籤建立視覺化。從 12 種視覺化類型中選擇並即時編輯,然後再將其新增至儀表板。在舊的探索體驗中,您將瀏覽至左側導覽中的視覺化以建立新的視覺效果,並瀏覽至儀表板以將視覺效果新增至儀表板。
您可以使用 PPL 或 OpenSearch Service 查詢 DSL 定義警示監控,以執行排定的查詢。觸發條件,例如特定數量的錯誤日誌,會觸發提醒。您可以透過 Amazon Simple Notification Service 或 Webhook 等管道傳送通知。
如需提醒的詳細資訊,請參閱 https://opensearch.org 上的提醒文件