Azure Automation State Configuration と Azure Monitor ログを統合する
Note
Azure Automation State Configuration は 2027 年 9 月 30 日に廃止されます。その日までに Azure Machine Configuration に切り替えてください。 詳細については、ブログ記事のお知らせを参照してください。 Azure マシンの構成サービスでは、DSC 拡張機能と Azure Automation State Configuration の機能のほか、顧客のフィードバックで最も一般的に要求されている機能が組み合わされています。 Azure マシンの構成には、Arc 対応サーバーによるハイブリッド マシンのサポートも含まれています。
注意事項
Azure Automation DSC for Linux は、2023 年 9 月 30 日に廃止されました。 詳しくは、お知らせをご覧ください。
Azure Automation State Configuration は、ノード状態のデータを 30 日間保持します。 このデータを長期間保持したい場合は、ノード状態のデータを Azure Monitor ログに送信することができます。 Azure Portal または PowerShell を使用して、ノード構成内のノードや個々の DSC リソースのコンプライアンス ステータスを確認できます。
Azure Monitor ログによって、Automation State Configuration のデータの状態をさらに詳しく把握でき、インシデントにより迅速に対処できるようになります。 Azure Monitor ログを使用すると、次のことを行うことができます。
- マネージド ノードや個々のリソースのコンプライアンスに関する情報を取得します。
- コンプライアンス ステータスに基づいてメールまたは警告をトリガーします。
- 複数のマネージド ノードを対象とする高度なクエリを記述します。
- Automation アカウント間でコンプライアンス ステータスを関連付けます。
- カスタム ビューと検索クエリを使用して、Runbook の結果、Runbook ジョブの状態、その他の関連する主要な指標やメトリックを視覚化します。
Note
この記事は最近、Log Analytics ではなく Azure Monitor ログという用語を使うように更新されました。 ログ データは引き続き Log Analytics ワークスペースに格納され、同じ Log Analytics サービスによって収集されて分析されます。 Azure Monitor のログの役割をより適切に反映させるために、用語を更新しています。 詳しくは、Azure Monitor の用語の変更に関するページをご覧ください。
前提条件
Azure Monitor ログへの Automation State Configuration レポートの送信を開始するには、次のものが必要です。
- Az PowerShell モジュール。 最新バージョンを使用していることを確認します。 必要であれば、
Update-Module -Name Az
を実行します。 - Azure Automation アカウント。 詳細については、「Azure Automation の概要」を参照してください。
- Log Analytics ワークスペース。 詳細については、「Azure Monitor ログの概要」を参照してください。
- 1 つ以上の Azure Automation State Configuration ノード。 詳細については、「Azure Automation State Configuration による管理のためのマシンのオンボード」をご覧ください。
- xDscDiagnostics モジュール、バージョン 2.7.0.0 以上。 インストール手順については、「Azure Automation Desired State Configuration (DSC) の問題をトラブルシューティングする」を参照してください。
Azure Monitor ログとの統合の設定
Azure Automation State Configuration から Azure Monitor ログへのデータのインポートを始めるには、次の手順のようにします。 ポータルを使用する手順については、「Azure Monitor ログに Azure Automation のジョブ データを転送する」を参照してください。
マシンから、PowerShell Connect-AzAccount コマンドレットを使用して 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
には Automation アカウントの実際の名前を、workspaceName
には Log Analytics ワークスペースの実際の名前を使用して、適切な値を指定します。 次に、スクリプトを実行します。$automationAccount = "automationAccount" $law = "workspaceName"
次の PowerShell コマンドを実行して、Automation アカウントのリソース ID を取得します。
# Find the ResourceId for the Automation account $AutomationResourceId = (Get-AzResource -ResourceType 'Microsoft.Automation/automationAccounts' | Where-Object {$_.Name -eq $automationAccount}).ResourceId
次の PowerShell コマンドを実行して、Log Analytics ワークスペースのリソース ID を取得します。
# Find the ResourceId for the Log Analytics workspace $WorkspaceResourceId = (Get-AzResource ` -ResourceType 'Microsoft.OperationalInsights/workspaces' | WHERE {$_.Name -eq $law}).ResourceId
DSC ノードの状態のログ データを Azure Monitor ログに転送するように Automation アカウントの診断設定を構成するために、次の PowerShell コマンドレットではその宛先を使用して診断設定を作成します。
$setAzDiagnosticSettingSplat = @{ ResourceId = $AutomationResourceId WorkspaceId = $WorkspaceResourceId Enabled = $true Category = 'DscNodeStatus' } Set-AzDiagnosticSetting @setAzDiagnosticSettingSplat
Automation State Configuration から Azure Monitor ログへのログ データの転送を停止する場合、次の PowerShell コマンドレットを実行します。
$setAzDiagnosticSettingSplat = @{ ResourceId = $AutomationResourceId WorkspaceId = $WorkspaceResourceId Enabled = $false Category = 'DscNodeStatus' } Set-AzDiagnosticSetting @setAzDiagnosticSettingSplat
State Configuration ログを表示する
Azure Monitor ログで検索すると、State Configuration ログで DSC 操作を検索できます。 Automation State Configuration データ用に Azure Monitor ログとの統合を設定したら、Azure portal で Automation アカウントに移動します。 次に、[監視] で [ログ] を選択します。
[クエリ] ダイアログ ボックスを閉じます。 [ログ検索] ペインが開き、Automation アカウント リソースを対象としたクエリ リージョンが表示されます。 DSC の操作のレコードは、AzureDiagnostics
テーブルに格納されます。 準拠していないノードを検索するには、次のクエリを入力します。
AzureDiagnostics
| where Category == "DscNodeStatus"
| where OperationName contains "DSCNodeStatusData"
| where ResultType != "Compliant"
フィルター処理の詳細:
DscNodeStatusData
でフィルター処理を実行すると、各 State Configuration ノードの操作が返されます。DscResourceStatusData
でフィルター処理を実行すると、そのリソースに適用されているノード構成で呼び出された各 DSC リソースに対して操作が返されます。DscResourceStatusData
でフィルター処理を実行すると、失敗したすべての DSC リソースのエラー情報が返されます。
ログ クエリを構築してデータを検索する方法の詳細については、Azure Monitor のログ クエリの概要に関するページを参照してください。
State Configuration のコンプライアンス チェックでエラーになったときに電子メールを送信する
先ほど作成したクエリに戻ります。
[+ New Alert Rule] (新しいアラート ルールの追加) ボタンをクリックして、アラート作成フローを開始します。
下のクエリでは、
NODENAME
を管理対象ノードの実際の名前に置き換え、変更したクエリを [検索クエリ] テキスト ボックスに貼り付けます。AzureDiagnostics | where Category == "DscNodeStatus" | where NodeName_s == "NODENAME" | where OperationName == "DscNodeStatusData" | where ResultType == "Failed"
複数の Automation アカウントまたはサブスクリプションからワークスペースへのログを構成してある場合は、サブスクリプションおよび Automation アカウントごとにアラートをグループ化できます。
DscNodeStatusData
のログ検索結果のResource
プロパティから、Automation アカウント名を抽出します。「Azure Monitor を使用してメトリック アラートを作成、表示、管理する」を参照して、残りの手順を完了します。
すべてのノードで失敗した DSC リソースを検索する
Azure Monitor ログを使用する利点の 1 つは、失敗したチェックをノードをまたいで検索できることです。 すべてのエラーのインスタンスを検索するには、次のクエリを使用します。
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 Monitor ログのレコード
Azure Automation の診断により、Azure Monitor ログに 2 つのカテゴリのレコードが作成されます。
- ノード状態データ (
DscNodeStatusData
) - リソース状態データ (
DscResourceStatusData
)
DscNodeStatusData
プロパティ | 説明 |
---|---|
TimeGenerated | コンプライアンス チェックが実行された日時。 |
OperationName | DscNodeStatusData |
ResultType | ノードが準拠しているかどうかを示す値。 |
NodeName_s | 管理対象ノードの名前。 |
NodeComplianceStatus_s | ノードが準拠しているかどうかを示す状態の値。 |
DscReportStatus | コンプライアンス チェックが正常に実行されたかどうかを示す状態の値。 |
ConfigurationMode | ノードに構成を適用するために使用されたモード。 使用できる値:
|
HostName_s | 管理対象ノードの名前。 |
IPAddress | 管理対象ノードの IPv4 アドレス。 |
カテゴリ | DscNodeStatus |
リソース | Azure Automation アカウントの名前。 |
Tenant_g | 呼び出し元のテナントを識別する GUID。 |
NodeId_g | 管理対象ノードを識別する GUID。 |
DscReportId_g | レポートを識別する GUID。 |
LastSeenTime_t | レポートが最後に閲覧された日時。 |
ReportStartTime_t | レポートが最後に開始された日時。 |
ReportEndTime_t | レポートが完了した日時。 |
NumberOfResources_d | ノードに適用された構成で呼び出された DSC ソース。 |
SourceSystem | Azure Monitor ログでのデータ収集方法を示すソース システム。 Azure Diagnostics の場合は常に Azure です。 |
ResourceId | Azure Automation アカウントのリソース識別子。 |
ResultDescription | この操作に対するリソースの説明。 |
SubscriptionId | Automation アカウントの Azure サブスクリプション ID (GUID) です。 |
リソース グループ | Automation アカウントのリソース グループの名前。 |
ResourceProvider | MICROSOFT.AUTOMATION。 |
ResourceType | AUTOMATIONACCOUNTS。 |
CorrelationId | コンプライアンス レポートの関連付け ID。 |
DscResourceStatusData
プロパティ | 説明 |
---|---|
TimeGenerated | コンプライアンス チェックが実行された日時。 |
OperationName | DscResourceStatusData |
ResultType | リソースが準拠しているかどうか。 |
NodeName_s | 管理対象ノードの名前。 |
カテゴリ | DscNodeStatus。 |
リソース | Azure Automation アカウントの名前。 |
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 Monitor ログでのデータ収集方法。 Azure Diagnostics の場合は常に Azure です。 |
ResourceId | Azure Automation アカウントの識別子。 |
ResultDescription | この操作の説明。 |
SubscriptionId | Automation アカウントの Azure サブスクリプション ID (GUID) です。 |
リソース グループ | Automation アカウントのリソース グループの名前。 |
ResourceProvider | MICROSOFT.AUTOMATION。 |
ResourceType | AUTOMATIONACCOUNTS。 |
CorrelationId | コンプライアンス レポートの関連付け ID。 |
次のステップ
- 概要については、Azure Automation State Configuration の概要に関するページを参照してください。
- 使用を開始するには、「Azure Automation State Configuration の使用を開始する」をご覧ください。
- DSC 構成をコンパイルしてターゲット ノードに割り当てる方法の詳細については、「Azure Automation State Configuration で DSC 構成をコンパイルする」をご覧ください。
- PowerShell コマンドレットのリファレンスについては、「Az.Automation」をご覧ください。
- 料金情報については、Azure Automation State Configuration の価格に関するページをご覧ください。
- 継続的なデプロイ パイプラインで Azure Automation State Configuration を使う例については、「Chocolatey を使用して継続的配置を設定する」を参照してください。
- 各種検索クエリの作成方法と、Azure Monitor ログでの Automation State Configuration ログの確認方法の詳細については、Azure Monitor ログでのログ検索に関するページを参照してください。
- Azure Monitor ログとデータ収集ソースの詳細については、Azure Monitor ログにおける Azure Storage データの収集の概要に関するページを参照してください。