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

已完成

作業小組目前沒有足夠的系統行為相關資訊可有效診斷並解決問題。 為了解決此問題,該小組已使用公司的 Azure 服務來設定 Azure 監視器工作區。 他們會執行 Kusto 查詢來取得系統的狀態,並嘗試識別任何可能發生的問題原因。

特別是,該小組對於監視安全性事件以檢查可能中斷系統的嘗試很感興趣。 攻擊者可能嘗試操控系統上執行的應用程式,因此,該小組也想要收集應用程式資料以便進一步分析。 攻擊者可也嘗試要終止組成系統的電腦,因此,該小組想要檢查機器停止和重新開機的方式與時間。

在此練習中,對於在資料表、記錄和查詢中包含了範例資料的示範專案,您將練習執行 Azure 記錄查詢。

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

讓我們使用 [Azure 示範記錄] 窗格來練習撰寫查詢。 示範專案工作區中會預先填入範例資料。 Azure 會以稱為 KQL (Kusto 查詢語言) 的語言,提供最佳化且類似 SQL 的查詢,以及其資料的視覺效果選項。

  1. 開啟記錄示範環境。 在左上角的 [新增查詢 1] 底下,您會看到 [示範],其可識別查詢的工作區 (或範圍)。 此窗格的左側包含數個索引標籤:[資料表]、[查詢] 和 [函式]。 在右側有個用於建立或編輯查詢的臨時板。

  2. 在 [新增查詢 1] 索引標籤上,於臨時板的第一行輸入基本查詢。 此查詢會擷取 10 個最新安全性事件的詳細資料。

    SecurityEvent
        | take 10
    
  3. 在命令列中選取 [執行] 以執行查詢,並檢視結果。 您可以展開結果窗格中的每個資料列,以便取得更多資訊。

  4. 藉由將篩選條件新增至查詢,依照時間來排序資料:

    SecurityEvent
        | top 10 by TimeGenerated
    
  5. 新增篩選子句和時間範圍。 執行此查詢會擷取超過 30 分鐘且層級 10 或以上的記錄:

    SecurityEvent
        | where TimeGenerated < ago(30m)
        | where toint(Level) >= 10
    
  6. 執行下列查詢,在 AppEvents 資料表中搜尋過去 24 小時內叫用的 Clicked Schedule Button 事件記錄:

    AppEvents 
        | where TimeGenerated > ago(24h)
        | where Name == "Clicked Schedule Button"
    
  7. 執行下列的查詢以顯示過去三周內,每週產生活動訊號事件的不同電腦數目。 結果以橫條圖顯示:

    Heartbeat
        | where TimeGenerated >= startofweek(ago(21d))
        | summarize dcount(Computer) by endofweek(TimeGenerated) | render barchart kind=default
    

使用預先定義的 Azure 記錄查詢,從記錄資料中擷取資訊

除了從頭開始撰寫查詢以外,作業小組也可以利用 Azure 記錄中的預先定義查詢來回答與其資源健康狀態、可用性、使用量和效能相關的常見問題。

  1. 使用命令列中的 [時間範圍] 參數來設定自訂範圍。 從 1 月到今天之間,選取月份、年份和日期。 您可以設定自訂時間並將其套用至任何查詢。

  2. 在左側工具列上,選取 [查詢]。 您可在左側功能表的下拉式清單中,檢視依 [類別]、[查詢類型]、[資源類型]、[解決方案] 或 [主題] 分組的範例查詢清單。

    側邊窗格中 [查詢] 索引標籤下 [群組依據] 下拉式選項的螢幕擷取畫面。

  3. 在下拉式清單中,選取 [類別],然後選取 [IT 與管理工具]

  4. 在搜尋方塊中,輸入「跨電腦不同遺漏更新」。 按兩下左窗格中的查詢,然後選取 [執行]。 [記錄] 窗格會隨即再次出現並顯示查詢,針對將記錄傳送至工作區的虛擬機器,傳回該虛擬機器中所遺失的 Windows 更新清單。

    注意

    您也可以從 [記錄] 窗格中執行相同的查詢。 在左窗格中,選取 [查詢] 索引標籤,然後在 [分組依據] 下拉式清單中,選取 [類別]。 現在向下捲動清單,展開 [IT & 管理工具],然後按兩下 [跨電腦不同遺漏更新]。 選取 [執行] 執行查詢。 當您在左側窗格中選取預先定義的查詢時,查詢程式碼會附加至臨時板上存在的任何查詢。 請記得在開啟或新增要執行的新查詢之前清除臨時板。

  5. 在左窗格中,清除搜尋方塊。 選取 [查詢],然後在 [分組依據] 下拉式清單中選取 [類別]。 展開 [Azure 監視器],然後按兩下 [今日電腦可用性]。 選取執行。 此查詢會建立一個時間序列圖表,其中包含過去一天每小時將記錄傳送到工作區的唯一 IP 位址數目。

  6. 在 [分組依據] 下拉式清單中,選取 [主題],向下捲動以展開 [函數應用程式],然後按兩下 [從函數應用程式顯示應用程式記錄]。 選取執行。 此查詢會傳回應用程式記錄的清單,依時間排序,並優先顯示最新的記錄。

您從此處使用的 Kusto 查詢中您會發現,將查詢目標設為特定時間範圍、事件層級或事件記錄檔類型,是很容易的。 安全性小組可以輕鬆地檢查活動訊號來識別伺服器何時無法使用,這可能代表一次拒絕服務的攻擊。 如果小組發現伺服器無法使用的時間,則可在安全性記錄中查詢該時間前後的事件,以診斷中斷是否因攻擊所引起。 此外,預先定義的查詢也評估 VM 可用性、識別遺漏的 Windows 更新,以及檢閱防火牆記錄來檢視所需 VM 的拒絕網路流量。