使用 Kusto 查詢語言查詢資料

已完成

您可在 Microsoft Sentinel 中使用 Kusto 查詢語言 (KQL) 來搜尋和篩選收集的資料。

Kusto 查詢語言

KQL 可讓您對收集的資料建立、儲存及執行互動式分析。 Microsoft Sentinel 使用 KQL 來將重要的資料視覺化並加以分析。 您可使用 KQL 建立包含下列某些運算子的複雜分析查詢:

  • 計算結果欄
  • Join 函式
  • 依彙總分組

撰寫和執行基本查詢

查詢是唯讀要求,可處理資料並傳回此處理的結果,而無需修改資料或中繼資料。 類似 SQL 查詢,KQL 查詢使用的結構描述實體是按資料庫、資料表與資料欄等階層組織而成。 結構描述是依邏輯類別分組的資料表集合。 查詢包含以分號 (;) 分隔的查詢陳述式序列。

當建構查詢時,您會從資料表名稱或搜尋命令開始。 例如,下列查詢會從 Event 資料表中擷取所有記錄:

Event

您可使用直立線符號 (|) 字元來分隔命令。 第一個命令其輸出會成為下一個命令的輸入。 您可以在單一查詢中新增任意數目的命令。 下列查詢會從 Event 資料表中擷取記錄,然後搜尋任何屬性中具有 error 一詞的記錄:

Event

| search error

您可使用 KQL 結合成多個表格式運算式陳述式的表格式和純量運算子來建構查詢,以產生查詢的結果。

source1 | operator1 | operator2

在下面的範例中,來源為 AzureActivity。 第一個運算子是 where,它會根據邏輯運算式篩選掉記錄。 第二個運算子再次為 where

AzureActivity

| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'

根據預設,Log Analytics 會將查詢限制為過去 24 小時的時間範圍。 若要設定不同的時間範圍,您可將明確的 TimeGenerated 篩選條件新增至查詢,或使用 Time range 控制項。 例如,下列查詢會傳回前一小時的資料:


AzureActivity

| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'
| where TimeGenerated > ago (1h)

您可將查詢和一些最常使用的運算子結合在一起:

  • count. 傳回資料表中的資料列計數。
  • take. 最多傳回所指定資料列數目的資料。
  • project. 選取資料行的子集。
  • sort. 依照一或多個資料行的順序來排序輸入資料表其資料列。
  • top. 傳回依指定資料行排序的前 N 筆記錄。
  • extend. 計算衍生的資料行。
  • summarize. 彙總資料列群組。
  • render. 以圖形化輸出呈現結果。

若要結合兩個來源 (資料表) 的記錄,您可使用 join 運算子。 union 運算子會將兩份或多份資料表結合成一份資料表。

如需詳細資訊,請參閱 Microsoft 記錄分析教學課程,其會使用 Log Analytics 功能建置及執行查詢,而不是使用查詢本身。

您也可以使用 Azure 資料總管教學課程了解 KQL。

注意

Microsoft Sentinel Log Analytics 未支援 Azure 資料總管中使用的所有 KQL 語法。

GitHub 上的 Microsoft Sentinel 存放庫

您也可以使用 GitHub 上的 Microsoft Sentinel 存放庫來搜尋特定的查詢和活頁簿,以協助保護環境及搜捕威脅。 例如,下列來自 Microsoft Sentinel GitHub 存放庫的查詢會顯示對使用者帳戶的可疑權限委派。

let timeframe = 7d;
AzureActivity
| where TimeGenerated >= ago(timeframe)
| where OperationName == "Create role assignment"
| where ActivityStatus == "Succeeded"
| project Caller, CallerIpAddress
| evaluate basket()
| extend AccountCustomEntity = Caller, IPCustomEntity = CallerIpAddress

此查詢會分析系統管理員將 Azure 資源存取權授與其他使用者時所用的 IP 位址。 如果某項作業不是來自有效的 IP 位址,則查詢會以訊號通知有可疑的活動,您可加以進一步調查。

如果想要嘗試一些範例,請使用 Azure 入口網站的示範環境

檢定您的知識

1.

系統管理員可使用下列哪種工具,在 Microsoft Sentinel 中查詢資料?

2.

系統管理員可利用下列哪個字元來分隔查詢中的命令。