Share via


監視數據連接器的健康情況

為了確保 Microsoft Sentinel 服務中完整且不間斷的數據擷取,請追蹤數據連接器的健康情況、連線能力和效能。

下列功能可讓您從 Microsoft Sentinel 內執行這項監視:

使用健康情況監視活頁簿

  1. 從 Microsoft Sentinel 入口網站中,從導覽功能表的 [內容管理] 區段選取 [內容中樞]。

  2. 在內容中 的搜尋列中輸入 健康 情況,然後從結果中選取 [數據收集健康情況監視 ]。

  3. 從詳細數據窗格中選取 [ 安裝 ]。 當您看到活頁簿已安裝的通知訊息,或如果 不是安裝,您會看到 [設定],請繼續進行下一個步驟。

  4. 從導覽功能表的 [威脅管理] 區段選取 [活頁簿]。

  5. 在 [ 活頁簿] 頁面中,選取 [範本 ] 索引標籤,在搜尋列中輸入 健全 狀況,然後從結果中選取 [數據收集健康情況監視 ]。

  6. 選取 [檢視範本] 直接使用活頁簿,或選取 [儲存] 以建立活頁簿的可編輯複本。 建立複本時,選取 [檢視已儲存的活頁簿]。

  7. 在活頁簿中,先選取您想要檢視的 用帳戶和 工作區 ,然後定義 TimeRange 以根據您的需求篩選數據。 使用 [ 顯示說明 ] 切換來顯示活頁簿的就地說明。

    data connector health monitoring workbook landing page

此活頁簿中有三個索引標籤區段:

  • [概觀] 索引卷標會顯示所選工作區中數據擷取的一般狀態:磁碟區量值、EPS 速率,以及上次收到記錄的時間。

  • [ 資料收集異常] 索引 標籤可協助您依數據表和數據源偵測數據收集程式中的異常狀況。 每個索引標籤都會顯示特定資料表的異常狀況([ 一般 ] 索引標籤包含數據表的集合。 異常是使用傳回異常分數的 series_decompose_anomalies() 函式來計算。 深入瞭解此函式。 為函式設定要評估的下列參數:

    • AnomaliesTimeRange:這次選擇器僅適用於數據收集異常檢視。

    • SampleInterval:數據在指定時間範圍內取樣的時間間隔。 異常分數只會計算在最後一個間隔的數據上。

    • PositiveAlertThreshold:此值會定義正異常分數閾值。 它接受十進位值。

    • NegativeAlertThreshold:此值會定義負異常分數閾值。 它接受十進位值。

      data connector health monitoring workbook anomalies page

  • [代理程序資訊] 索引標籤會顯示安裝在各種機器上之 Log Analytics 代理程式健康情況的相關信息,無論是 Azure VM、其他雲端 VM、內部部署 VM 或實體。 您可以監視下列專案:

    • 系統位置

    • 活動訊號狀態和延遲

    • 可用的記憶體和磁碟空間

    • 代理程序作業

      在本節中,您必須選取描述您機器環境的索引標籤:如果您想要只檢視 Azure Arc 管理的機器,請選擇 [所有機器] 索引標籤,以檢視已安裝 Log Analytics 代理程式的受控和非 Azure 機器

      data connector health monitoring workbook agent info page

使用 SentinelHealth 資料表 (公開預覽)

若要從 SentinelHealth 數據表取得數據連接器健康情況數據,您必須先開啟工作區的 Microsoft Sentinel 健康情況功能。 如需詳細資訊,請參閱 開啟 Microsoft Sentinel 的健康情況監視。

開啟健康情況功能之後, SentinelHealth 數據表會在您數據連接器產生的第一次成功或失敗事件時建立。

支援的數據連接器

SentinelHealth 資料表目前僅支援下列資料連接器:

瞭解 SentinelHealth 數據表事件

在 SentinelHealth 資料表中會記錄下列類型的健康情況事件:

  • 數據擷取狀態變更。 只要數據連接器狀態保持穩定,持續成功或失敗事件,就會每小時記錄一次。 只要數據連接器的狀態沒有變更,監視只會每小時運作,以防止備援稽核並減少數據表大小。 如果數據連接器的狀態發生連續失敗,則 ExtendedProperties 數據行中會包含有關失敗的其他詳細數據。

    如果數據連接器的狀態變更,無論是從成功到失敗、從失敗到成功,或有失敗原因的變更,就會立即記錄事件,讓您的小組採取主動且立即的動作。

    可能暫時性錯誤,例如來源服務節流,只有在持續超過 60 分鐘之後才會記錄。 這 60 分鐘可讓 Microsoft Sentinel 克服後端的暫時性問題並趕上數據,而不需要任何用戶動作。 絕對不是暫時性的錯誤會立即記錄。

  • 失敗摘要。 每個連接器、每個工作區每小時記錄一次,並匯總失敗摘要。 只有在連接器在指定時間內發生輪詢錯誤時,才會建立失敗摘要事件。 它們包含 ExtendedProperties 數據行中提供的任何額外詳細數據,例如查詢連接器來源平台的時間週期,以及期間期間所遇到的不同失敗清單。

如需詳細資訊,請參閱 SentinelHealth 數據表數據行架構

執行查詢來偵測健康情況漂移

SentinelHealth 數據表上建立查詢,以協助您偵測數據連接器中的健康情況漂移。 例如:

偵測每個連接器的最新失敗事件:

SentinelHealth
| where TimeGenerated > ago(3d)
| where OperationName == 'Data fetch status change'
| where Status in ('Success', 'Failure')
| summarize TimeGenerated = arg_max(TimeGenerated,*) by SentinelResourceName, SentinelResourceId
| where Status == 'Failure'

偵測從變更為失敗至成功狀態的連接器:

let lastestStatus = SentinelHealth
| where TimeGenerated > ago(12h)
| where OperationName == 'Data fetch status change'
| where Status in ('Success', 'Failure')
| project TimeGenerated, SentinelResourceName, SentinelResourceId, LastStatus = Status
| summarize TimeGenerated = arg_max(TimeGenerated,*) by SentinelResourceName, SentinelResourceId;
let nextToLastestStatus = SentinelHealth
| where TimeGenerated > ago(12h)
| where OperationName == 'Data fetch status change'
| where Status in ('Success', 'Failure')
| join kind = leftanti (lastestStatus) on SentinelResourceName, SentinelResourceId, TimeGenerated
| project TimeGenerated, SentinelResourceName, SentinelResourceId, NextToLastStatus = Status
| summarize TimeGenerated = arg_max(TimeGenerated,*) by SentinelResourceName, SentinelResourceId;
lastestStatus
| join kind=inner (nextToLastestStatus) on SentinelResourceName, SentinelResourceId
| where NextToLastStatus == 'Failure' and LastStatus == 'Success'

偵測從成功變更為失敗狀態的連接器:

let lastestStatus = SentinelHealth
| where TimeGenerated > ago(12h)
| where OperationName == 'Data fetch status change'
| where Status in ('Success', 'Failure')
| project TimeGenerated, SentinelResourceName, SentinelResourceId, LastStatus = Status
| summarize TimeGenerated = arg_max(TimeGenerated,*) by SentinelResourceName, SentinelResourceId;
let nextToLastestStatus = SentinelHealth
| where TimeGenerated > ago(12h)
| where OperationName == 'Data fetch status change'
| where Status in ('Success', 'Failure')
| join kind = leftanti (lastestStatus) on SentinelResourceName, SentinelResourceId, TimeGenerated
| project TimeGenerated, SentinelResourceName, SentinelResourceId, NextToLastStatus = Status
| summarize TimeGenerated = arg_max(TimeGenerated,*) by SentinelResourceName, SentinelResourceId;
lastestStatus
| join kind=inner (nextToLastestStatus) on SentinelResourceName, SentinelResourceId
| where NextToLastStatus == 'Success' and LastStatus == 'Failure'

設定健康情況問題的警示和自動化動作

雖然您可以使用 Microsoft Sentinel 分析規則在 Microsoft Sentinel 記錄中設定自動化,但如果您想要收到通知並立即採取數據連接器中健康情況漂移的動作,建議您使用 Azure 監視器警示規則

例如:

  1. 在 Azure 監視器警示規則中,選取您的 Microsoft Sentinel 工作區作為規則範圍,然後 選取 [自定義記錄搜尋 ] 作為第一個條件。

  2. 視需要自定義警示邏輯,例如頻率或回溯持續時間,然後使用 查詢 來搜尋健康情況漂移。

  3. 針對規則動作,請選取現有的動作群組,或視需要建立新的動作,以設定推播通知或其他自動化動作,例如在您的系統中觸發邏輯應用程式、Webhook 或 Azure 函式。

如需詳細資訊,請參閱 Azure 監視器警示概觀Azure 監視器警示記錄

下一步