整合 Azure 自動化狀態設定與 Azure 監視器記錄
注意
Azure 自動化 狀態設定 將於 2027 年 9 月 30 日淘汰,請依該日期轉換至 Azure 機器組態。 如需詳細資訊,請參閱 部落格文章 公告。 Azure Machine Configuration 服務結合 DSC 延伸模組、Azure 自動化狀態設定,以及客戶意見反應最常要求的功能。 Azure Machine Configuration 也包含混合機器支援 (透過已啟用 Arc 的伺服器提供)。
警告
Azure 自動化 DSC for Linux 已於 2023 年 9 月 30 日淘汰。 如需詳細資訊,請參閱公告。
「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 儲存體資料概觀。