整合 Azure 自動化狀態設定與 Azure 監視器記錄
注意
Azure 自動化 狀態設定 將於 2027 年 9 月 30 日淘汰,請依該日期轉換至 Azure 機器組態。 如需詳細資訊,請參閱 部落格文章 公告。 Azure Machine Configuration 服務結合 DSC 延伸模組、Azure 自動化狀態設定,以及客戶意見反應最常要求的功能。 Azure Machine Configuration 也包含混合機器支援 (透過已啟用 Arc 的伺服器提供)。
「Azure 自動化狀態設定」會將節點狀態資料保留 30 天。 如果想要讓節點狀態資料保留更長的時間,您可以將此資料傳送至 Azure 監視器記錄。 節點以及節點組態中個別 DSC 資源的合規性狀態會顯示在 Azure 入口網站中或使用 PowerShell 顯示。
Azure 監視器記錄讓您在「自動化狀態設定」資料上有更高的操作可見性,有利於更快處理事件。 Azure 監視器記錄可讓您:
- 取得受控節點與個別資源的合規性資訊。
- 根據合規性狀態觸發電子郵件或警示。
- 撰寫受控節點之間的進階查詢。
- 使自動化帳戶之間的合規性狀態相互關聯。
- 使用自訂檢視和搜尋查詢,以視覺化方式呈現 Runbook 結果、Runbook 作業狀態,以及其他相關的關鍵指標或計量。
注意
本文最近有所更新,改為使用「Azure 監視器記錄」一詞,而非 Log Analytics。 記錄資料仍儲存在 Log Analytics 工作區中,並仍由相同的 Log Analytics 服務收集和分析。 我們會持續更新術語,以更精確地反映 Azure 監視器記錄的角色。 如需詳細資料,請參閱 Azure 監視器遙測變更。
必要條件
若要開始將「自動化狀態設定」報告傳送至 Azure 監視器記錄,您需要:
- Az PowerShell 模組模組。 確認您擁有最新版本。 如有必要,請執行
Update-Module -Name Az
。 - Azure 自動化帳戶。 如需詳細資訊,請參閱 Azure 自動化簡介。
- Log Analytics 工作區。 如需詳細資訊,請參閱 Azure 監視器記錄概觀。
- 至少一個 Azure Automation State Configuration 節點。 如需詳細資訊,請參閱讓機器上線交由「Azure 自動化狀態設定」來管理。
- xDscDiagnostics 模組,2.7.0.0 版或更新版本。 關於安裝步驟,請參閱對 Azure 自動化 Desired State Configuration 進行疑難排解。
設定與 Azure 監視器記錄的整合
若要開始將資料從「Azure 自動化狀態設定」匯入 Azure 監視器記錄中,請完成下列步驟。 如需了解使用入口網站的步驟,請參閱將 Azure 自動化作業資料轉送至 Azure 監視器記錄。
從您的機器使用 PowerShell Connect-AzAccount Cmdlet 登入 Azure 訂用帳戶,並遵循畫面上的指示操作。
# Sign in to your Azure subscription $sub = Get-AzSubscription -ErrorAction SilentlyContinue if (-not($sub)) { Connect-AzAccount } # If you have multiple subscriptions, set the one to use # Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>"
為變數
automationAccount
提供適當的值,其中包含自動化帳戶的實際名稱,以及變數workspaceName
,其中包含 Log Analytics 工作區的實際名稱。 然後,執行指令碼。$automationAccount = "automationAccount" $law = "workspaceName"
執行下列 PowerShell 命令,以取得自動化帳戶的資源識別碼。
# Find the ResourceId for the Automation account $AutomationResourceId = (Get-AzResource -ResourceType 'Microsoft.Automation/automationAccounts' | Where-Object {$_.Name -eq $automationAccount}).ResourceId
執行下列 PowerShell 命令,以取得 Log Analytics 工作區的資源識別碼。
# Find the ResourceId for the Log Analytics workspace $WorkspaceResourceId = (Get-AzResource ` -ResourceType 'Microsoft.OperationalInsights/workspaces' | WHERE {$_.Name -eq $law}).ResourceId
為在自動化帳戶上進行診斷設定,以將 DSC 節點狀態記錄資料轉送至 Azure 監視器記錄,下列 PowerShell Cmdlet 會使用該目的地來建立診斷設定。
$setAzDiagnosticSettingSplat = @{ ResourceId = $AutomationResourceId WorkspaceId = $WorkspaceResourceId Enabled = $true Category = 'DscNodeStatus' } Set-AzDiagnosticSetting @setAzDiagnosticSettingSplat
當您想要停止將記錄資料從「自動化狀態設定」轉送至 Azure 監視器記錄時,請執行下列 PowerShell Cmdlet。
$setAzDiagnosticSettingSplat = @{ ResourceId = $AutomationResourceId WorkspaceId = $WorkspaceResourceId Enabled = $false Category = 'DscNodeStatus' } Set-AzDiagnosticSetting @setAzDiagnosticSettingSplat
檢視 State Configuration 記錄
您可以在 Azure 監視器記錄中搜尋,從「狀態設定」記錄中尋找 DSC 作業。 針對自動化狀態設定資料設定與 Azure 監視器記錄整合之後,請瀏覽至 Azure 入口網站中的自動化帳戶。 然後在 [監視] 底下,選取 [記錄]。
關閉 [查詢] 對話方塊。 [記錄搜尋] 窗格隨即開啟,其中有一個查詢區域以您的自動化帳戶資源為範圍。 DSC 作業的記錄儲存在 AzureDiagnostics
資料表中。 若要尋找不符合規範的節點,請輸入下列查詢。
AzureDiagnostics
| where Category == "DscNodeStatus"
| where OperationName contains "DSCNodeStatusData"
| where ResultType != "Compliant"
篩選詳細資料:
- 依
DscNodeStatusData
篩選,以傳回每個狀態設定節點的作業。 - 依
DscResourceStatusData
篩選,針對套用至該資源的節點設定中呼叫的每個 DSC 資源,傳回其作業。 - 依
DscResourceStatusData
篩選,針對任何失敗的 DSC 資源,傳回錯誤資訊。
若要深入了解如何建構記錄查詢來尋找資料,請參閱 Azure 監視器中的記錄查詢概觀。
State Configuration 合規性檢查失敗時傳送電子郵件
返回稍早建立的查詢。
按兩下 [ + 新增警示規則 ] 按鈕,以啟動警示建立流程。
在下列查詢中,將 取代
NODENAME
為受控節點的實際名稱,然後將修訂后的查詢貼到 [搜尋查詢 ] 文本框中:AzureDiagnostics | where Category == "DscNodeStatus" | where NodeName_s == "NODENAME" | where OperationName == "DscNodeStatusData" | where ResultType == "Failed"
如果您設定多個自動化帳戶或訂用帳戶的記錄,您可以依訂用帳戶和自動化帳戶來分組警示。 在
DscNodeStatusData
的記錄搜尋結果中,請從Resource
屬性衍生出自動化帳戶名稱。檢閱使用 Azure 監視器建立、檢視及管理計量警示,以完成其餘步驟。
在所有節點間尋找失敗的 DSC 資源
使用 Log Analytics 的優點之一,是您可以在節點之間搜尋失敗檢查。 若要尋找所有失敗實例,請使用下列查詢:
AzureDiagnostics
| where Category == "DscNodeStatus"
| where OperationName == "DscResourceStatusData"
| where ResultType == "Failed"
檢視歷程記錄 DSC 節點狀態
若要以視覺化方式呈現一段時間的 DSC 節點狀態歷程記錄,您可以使用此查詢:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION"
| where Category == "DscNodeStatus"
| where ResultType != "started"
| summarize count() by ResultType
此查詢會顯示一段時間內的節點狀態圖表。
Azure 監視器記錄中的記錄
Azure 自動化診斷會在 Azure 監視器記錄中建立兩種類別的記錄:
- 節點狀態資料 (
DscNodeStatusData
) - 資源狀態名稱 (
DscResourceStatusData
)
DscNodeStatusData
屬性 | 說明 |
---|---|
TimeGenerated | 執行合規性檢查的日期和時間。 |
OperationName | DscNodeStatusData . |
ResultType | 此值指出節點是否符合規範。 |
NodeName_s | 受控節點名稱。 |
NodeComplianceStatus_s | 狀態值,指出節點是否符合規範。 |
DscReportStatus | 狀態值,指出是否已成功執行合規性檢查。 |
ConfigurationMode | 將設定套用至節點時採用的模式。 可能的值包括:
|
HostName_s | 受控節點名稱。 |
IPAddress | 受控節點的 IPv4 位址。 |
類別 | DscNodeStatus . |
資源 | Azure 自動化帳戶的名稱。 |
Tenant_g | GUID,用於識別呼叫者的租用戶。 |
NodeId_g | 識別受控節點的 GUID。 |
DscReportId_g | 識別報表的 GUID。 |
LastSeenTime_t | 上一次檢視報表的日期和時間。 |
ReportStartTime_t | 報表開始的日期和時間。 |
ReportEndTime_t | 報表完成的日期和時間。 |
NumberOfResources_d | 在節點套用的設定中呼叫的 DSC 資源數目。 |
SourceSystem | 識別 Azure 監視器記錄如何收集數據的來源系統。 一律為 Azure ,代表 Azure 診斷。 |
ResourceId | Azure 自動化帳戶的資源識別碼。 |
ResultDescription | 此作業的資源描述。 |
SubscriptionId | 自動化帳戶的 Azure 訂用帳戶識別碼 (GUID)。 |
ResourceGroup | 自動化帳戶的資源群組名稱。 |
ResourceProvider | MICROSOFT.AUTOMATION。 |
ResourceType | AUTOMATIONACCOUNTS。 |
CorrelationId | 合規性報告的相互關聯標識碼。 |
DscResourceStatusData
屬性 | 說明 |
---|---|
TimeGenerated | 執行合規性檢查的日期和時間。 |
OperationName | DscResourceStatusData . |
ResultType | 資源是否符合規範。 |
NodeName_s | 受控節點名稱。 |
類別 | DscNodeStatus。 |
資源 | Azure 自動化帳戶的名稱。 |
Tenant_g | GUID,用於識別呼叫者的租用戶。 |
NodeId_g | 識別受控節點的 GUID。 |
DscReportId_g | 識別報表的 GUID。 |
DscResourceId_s | DSC 資源執行個體的名稱。 |
DscResourceName_s | DSC 資源的名稱。 |
DscResourceStatus_s | DSC 資源是否符合規範。 |
DscModuleName_s | 包含 DSC 資源的 PowerShell 模組名稱。 |
DscModuleVersion_s | 包含 DSC 資源的 PowerShell 模組版本。 |
DscConfigurationName_s | 節點套用的設定名稱。 |
ErrorCode_s | 資源失敗時的錯誤代碼。 |
ErrorMessage_s | 資源失敗時的錯誤訊息。 |
DscResourceDuration_d | DSC 資源執行的時間,以秒為單位。 |
SourceSystem | Azure 監視器記錄如何收集資料。 一律為 Azure ,代表 Azure 診斷。 |
ResourceId | Azure 自動化帳戶的識別碼。 |
ResultDescription | 此作業的描述。 |
SubscriptionId | 自動化帳戶的 Azure 訂用帳戶識別碼 (GUID)。 |
ResourceGroup | 自動化帳戶的資源群組名稱。 |
ResourceProvider | MICROSOFT.AUTOMATION。 |
ResourceType | AUTOMATIONACCOUNTS。 |
CorrelationId | 合規性報告的相互關聯標識碼。 |
下一步
- 如需概觀,請參閱 Azure 自動化狀態設定概觀。
- 若要開始使用,請參閱開始使用 Azure 自動化狀態設定。
- 若要了解如何編譯 DSC 設定以指派給目標節點,請參閱在 Azure 自動化狀態設定中編譯 DSC 設定。
- 如需 PowerShell Cmdlet 參考,請參閱 Az.Automation。
- 如需價格資訊,請參閱 Azure 自動化狀態設定的價格。
- 若要查看在連續部署管線中使用 Azure 自動化 狀態設定 的範例,請參閱使用 Chocolatey 設定持續部署。
- 若要深入了解如何建構不同的搜尋查詢,以及如何使用 Azure 監視器記錄來檢閱「自動化狀態設定」記錄,請參閱 Azure 監視器記錄中的記錄搜尋。
- 若要深入了解 Azure 監視器記錄和資料收集來源,請參閱在 Azure 監視器記錄中收集 Azure 儲存體資料概觀。