建立基本的 Azure 監視器記錄查詢以從記錄資料中擷取資訊

已完成

您可以使用 Azure 監視器記錄查詢,從記錄資料中擷取資訊。 在檢查 Azure 監視器所擷取的記錄資料時,查詢是很重要的部分。

在範例案例中,作業小組將使用 Azure 監視器記錄查詢來檢查其系統的健康情況。

使用 Log Analytics 來撰寫 Azure 監視器記錄查詢

您可以在 Azure 入口網站中找到 Log Analytics 工具,並使用它來執行範例查詢或建立自己的查詢:

  1. 在 Azure 入口網站中,選取左功能表窗格中的 [監視]

    Azure 監視器頁面隨即出現,並有更多選項,包括 [活動記錄]、[警示]、[計量] 與 [記錄]

  2. 選取 [記錄] 。

    您可以在這裡輸入查詢,並查看輸出。

    Screenshot of Azure Monitor with a new query tab opened.

使用 Kusto 語言撰寫查詢

您可以使用 Kusto 查詢語言,針對 Azure 中執行的服務查詢記錄資訊。 Kusto 查詢是處理資料和傳回結果的唯讀要求。 您會使用針對讓語法易於理解、撰寫及自動執行所設計的資料流程模型來以純文字形式陳述查詢。 此查詢所使用的結構描述實體其組織層級類似於 Azure SQL Database 的階層:資料庫、資料表與資料行。

Kusto 查詢會由一連串以分號 (;) 分隔的查詢陳述式所組成。 其中至少有一個陳述式是表格式運算式陳述式。 表格式運算式陳述式會將排列為表格之欄列的資料格式化。

表格式運算式陳述式的語法具有從一個表格式查詢運算子到另一個的表格式資料流程 (從資料來源開始)。 資料來源可以是資料庫中的資料表,或是產生資料的運算子。 然後,資料會流經一組以直立線 (|) 分隔符號繫結在一起的資料轉換運算子。

例如,下列 Kusto 查詢具備單一表格式運算式陳述式。 此陳述式會以名為 Events 之資料表的參考開始。 裝載此資料表的資料庫在這裡是隱含的,而且是連線資訊的一部分。 該資料表的資料 (儲存在資料列中) 會依 StartTime 資料行的值篩選。 該資料會依 State 資料行的值進一步篩選。 然後,查詢會傳回結果資料列的計數。

Events
| where StartTime >= datetime(2018-11-01) and StartTime < datetime(2018-12-01)
| where State == "FLORIDA"  
| count

注意

Azure 監視器所使用的 Kusto 查詢語言會區分大小寫。 語言關鍵字通常會以小寫來撰寫。 在查詢中使用資料表或資料行的名稱時,請務必使用正確的大小寫。

從受監視電腦的事件記錄中擷取的事件只是一種資料來源類型。 Azure 監視器提供許多其他類型的資料來源。 例如,Heartbeat 資料來源會報告向您 Log Analytics 工作區回報之所有電腦的健康情況。 您也可以從效能計數器擷取資料,並更新管理記錄。

下列範例會針對每部電腦擷取最新的活動訊號記錄。 電腦會透過其 IP 位址來識別。 在此範例中,使用 arg_max 函式的 summarize 彙總,會針對每個 IP 位址傳回具有最新值的記錄。

Heartbeat
| summarize arg_max(TimeGenerated, *) by ComputerIP