Intégrer Azure Automation State Configuration avec les journaux Azure Monitor

Remarque

Avant d’activer Automation State Configuration, sachez qu’une version plus récente de DSC est désormais en disponibilité générale, managée par une fonctionnalité d’Azure Policy nommée configuration Invité. Le service de configuration invité combine les fonctionnalités d’Extension DSC, d’Azure Automation State Configuration, ainsi que les fonctionnalités les plus couramment demandées par les commentaires des clients. La configuration invité comprend également une prise en charge d’ordinateur hybride via des serveurs avec Arc.

Azure Automation State Configuration conserve les données d’état des nœuds pendant 30 jours. Vous pouvez envoyer les données d’état des nœuds aux Journaux Azure Monitor si vous préférez conserver ces données plus longtemps. L’état de conformité est visible dans le portail Azure, ou avec PowerShell, pour les nœuds et les ressources DSC individuelles dans les configurations de nœud.

Les journaux Azure Monitor offrent une plus grande visibilité opérationnelle sur vos données Automation State Configuration et peuvent vous aider à traiter les incidents plus rapidement. Avec les journaux Azure Monitor, vous pouvez :

  • Obtenir des informations de conformité pour les nœuds gérés et les ressources individuelles.
  • Déclencher un e-mail ou une alerte en fonction de l’état de conformité.
  • Écrire des requêtes avancées dans vos nœuds gérés.
  • Mettre en corrélation l’état de conformité dans les comptes Automation.
  • Utiliser des vues et des requêtes de recherche personnalisées pour visualiser les résultats de votre runbook, l’état du travail de runbook et d’autres indicateurs ou mesures clés associées.

Remarque

Cet article a récemment été mis à jour pour utiliser le terme journaux d’activité Azure Monitor au lieu de Log Analytics. Les données de journal sont toujours stockées dans un espace de travail Log Analytics, et elles sont toujours collectées et analysées par le même service Log Analytics. Nous mettons la terminologie à jour pour mieux refléter le rôle des journaux d’activité dans Azure Monitor. Pour plus d'informations, consultez Modifications de la terminologie d'Azure Monitor.

Prérequis

Pour commencer à envoyer vos rapports Automation State Configuration vers les journaux Azure Monitor, vous devez disposer des éléments suivants :

  • Le module Az PowerShell installé. Vérifiez que vous avez la version la plus récente. Si nécessaire, exécutez Update-Module -Name Az.

Configurer l’intégration aux journaux d’Azure Monitor

Pour commencer l’importation de données d’Azure Automation State Configuration vers les journaux Azure Monitor, effectuez les étapes suivantes : Pour savoir comment utiliser le portail, consultez Transférer des données de travaux Azure Automation aux journaux Azure Monitor.

  1. Depuis votre machine, connectez-vous à votre abonnement Azure avec la cmdlet PowerShell Connect-AzAccount et suivez les instructions qui s’affichent à l’écran.

    # 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>"
    
  2. Fournissez une valeur appropriée pour les variables automationAccount avec le nom réel de votre compte Automation et workspaceName avec le nom réel de votre espace de travail Log Analytics. Exécutez ensuite le script.

    $automationAccount = "automationAccount"
    $law = "workspaceName"
    
  3. Récupérez l’ID de ressource de votre compte Automation en exécutant les commandes PowerShell suivantes.

    # Find the ResourceId for the Automation account
    $AutomationResourceId = (Get-AzResource `
       -ResourceType 'Microsoft.Automation/automationAccounts' | 
       WHERE {$_.Name -eq $automationAccount}).ResourceId
    
  4. Obtenez l’ID de ressource de votre espace de travail Log Analytics en exécutant les commandes PowerShell suivantes.

     # Find the ResourceId for the Log Analytics workspace
     $WorkspaceResourceId = (Get-AzResource `
         -ResourceType 'Microsoft.OperationalInsights/workspaces' | 
         WHERE {$_.Name -eq $law}).ResourceId
    
  5. Pour configurer les paramètres de diagnostic sur le compte Automation afin de transférer les données du journal d’état du nœud DSC vers les journaux Azure Monitor, la cmdlet PowerShell suivante crée un paramètre de diagnostic utilisant cette destination.

     Set-AzDiagnosticSetting `
         -ResourceId $AutomationResourceId `
         -WorkspaceId $WorkspaceResourceId `
         -Enabled $true `
         -Category 'DscNodeStatus'
    

    Lorsque vous voulez arrêter le transfert de données Automation State Configuration vers les journaux Azure Monitor, exécutez la cmdlet PowerShell suivante.

     Set-AzDiagnosticSetting `
         -ResourceId $AutomationResourceId `
         -WorkspaceId $WorkspaceResourceId `
         -Enabled $false `
         -Category 'DscNodeStatus'
    

Afficher les journaux d’activité State Configuration

Vous pouvez rechercher des opérations DSC dans les journaux State Configuration en recherchant dans les journaux Azure Monitor. Après avoir configuré l’intégration avec les journaux Azure Monitor pour vos données Automation State Configuration, accédez à votre compte Automation dans le portail Azure. Ensuite, sous Supervision, sélectionnez Journaux d’activité.

Logs

Fermez la boîte de dialogue Requêtes. Le volet Recherche dans les journaux s’ouvre avec une région de requête étendue à votre ressource de compte Automation. Les enregistrements pour les opérations DSC sont stockés dans la table AzureDiagnostics. Pour rechercher des nœuds qui ne sont pas conformes, entrez la requête suivante.

AzureDiagnostics
| where Category == "DscNodeStatus"
| where OperationName contains "DSCNodeStatusData"
| where ResultType != "Compliant"

Détails du filtrage :

  • Filtrez sur DscNodeStatusData pour renvoyer les opérations pour chaque nœud State Configuration.
  • Filtrez sur DscResourceStatusData pour renvoyer les opérations pour chaque ressource DSC appelée dans la configuration de nœud appliquée à cette ressource.
  • Filtrez sur DscResourceStatusData pour renvoyer les informations d’erreur pour les ressources DSC ayant échoué.

Pour plus d’informations sur la construction des requêtes de journal pour rechercher des données, consultez Vue d’ensemble des requêtes de journal dans Azure Monitor.

Envoyer un e-mail si une vérification de la conformité State Configuration échoue

  1. Revenez à la requête créée précédemment.

  2. Appuyez sur le bouton « + Nouvelle règle d’alerte » pour démarrer le flux de création d’alerte.

  3. Dans la requête ci-dessous, remplacez NODENAME par le nom réel du nœud géré, puis collez la requête modifiée dans la zone de texte Requête de recherche :

    AzureDiagnostics
    | where Category == "DscNodeStatus"
    | where NodeName_s == "NODENAME"
    | where OperationName == "DscNodeStatusData"
    | where ResultType == "Failed"
    

    Si vous avez configuré des journaux d’activité dans votre espace de travail à partir de plusieurs abonnements ou comptes Automation, vous pouvez également regrouper vos alertes par abonnement ou par compte Automation. Dérivez le nom du compte Automation à partir de la propriété Resource dans les résultats de la recherche DscNodeStatusData.

  4. Consultez Créer, afficher et gérer des alertes de métrique à l’aide d’Azure Monitor pour effectuer les étapes restantes.

Rechercher les ressources DSC ayant échoué dans tous les nœuds

Un des avantages de l’utilisation des journaux Azure Monitor est que vous pouvez rechercher les vérifications avortées dans les nœuds. Pour rechercher toutes les instances de ressources DSC qui ont échoué, utilisez la requête suivante :

AzureDiagnostics 
| where Category == "DscNodeStatus"
| where OperationName == "DscResourceStatusData"
| where ResultType == "Failed"

Afficher l’état de nœud DSC historique

Pour visualiser l’historique de l’état de votre nœud DSC au fil du temps, vous pouvez utiliser cette requête :

AzureDiagnostics 
| where ResourceProvider == "MICROSOFT.AUTOMATION" 
| where Category == "DscNodeStatus"
| where ResultType != "started"
| summarize count() by ResultType

Cette requête affiche un graphique de l’état du nœud au fil du temps.

Enregistrements de journaux Azure Monitor

Les diagnostics d’Azure Automation créent deux catégories d’enregistrements dans les journaux Azure Monitor :

  • Données d'état du nœud (DscNodeStatusData)
  • Données d'état de la ressource (DscResourceStatusData)

DscNodeStatusData

Propriété Description
TimeGenerated Date et heure d’exécution de la vérification de conformité.
NomOpération DscNodeStatusData.
ResultType Valeur indiquant si le nœud est conforme.
NodeName_s Le nom du nœud géré.
NodeComplianceStatus_s Valeur d’état indiquant si le nœud est conforme.
DscReportStatus Valeur d’état indiquant si la vérification de conformité s’est correctement exécutée.
ConfigurationMode Mode utilisé pour appliquer la configuration au nœud. Les valeurs possibles sont les suivantes :
  • ApplyOnly : DSC applique la configuration et ne fait rien de plus, sauf si une nouvelle configuration est envoyée au nœud cible ou quand une nouvelle configuration est extraite d’un serveur. Après l’application initiale d’une nouvelle configuration, DSC ne vérifie pas l’écart par rapport à un état configuré précédemment. DSC tente d’appliquer la configuration jusqu’à ce que l’opération réussisse avant que la valeur ApplyOnly prenne effet.
  • ApplyAndMonitor : il s’agit de la valeur par défaut. Le gestionnaire de configuration locale applique toutes les nouvelles configurations. Après l’application initiale d’une nouvelle configuration, si le nœud cible s’écarte de l’état désiré, DSC signale l’écart dans les journaux d’activité. DSC tente d’appliquer la configuration jusqu’à ce que l’opération réussisse avant que la valeur ApplyAndMonitor prenne effet.
  • ApplyAndAutoCorrect : DSC applique chaque nouvelle configuration. Après l’application initiale d’une nouvelle configuration, si le nœud cible s’écarte de l’état désiré, DSC signale l’écart dans les journaux d’activité puis applique à nouveau la configuration actuelle.
HostName_s Le nom du nœud géré.
IPAddress L’adresse IPv4 du nœud géré.
Catégorie DscNodeStatus.
Ressource Le nom du compte Azure Automation.
Tenant_g GUID identifiant le locataire pour l’appelant.
NodeId_g GUID qui identifie le nœud géré.
DscReportId_g GUID qui identifie le rapport.
LastSeenTime_t Date et heure auxquelles le rapport a été consulté pour la dernière fois.
ReportStartTime_t Date et heure auxquelles le rapport a été commencé.
ReportEndTime_t Date et heure auxquelles le rapport a été terminé.
NumberOfResources_d Le nombre de ressources DSC appelées dans la configuration appliquée au nœud.
SourceSystem Système source identifiant la façon dont les journaux Azure Monitor ont collecté les données. Toujours Azure pour les diagnostics Azure.
ResourceId Identificateur de ressource du compte Azure Automation.
ResultDescription Description de la ressource pour cette opération.
SubscriptionId ID d’abonnement Azure (GUID) pour le compte Automation.
ResourceGroup Nom du groupe de ressources du compte Automation.
ResourceProvider MICROSOFT.AUTOMATION.
ResourceType AUTOMATIONACCOUNTS.
CorrelationId GUID représentant l’identificateur de corrélation du rapport de conformité.

DscResourceStatusData

Propriété Description
TimeGenerated Date et heure d’exécution de la vérification de conformité.
NomOpération DscResourceStatusData.
ResultType Indique si la ressource est conforme.
NodeName_s Le nom du nœud géré.
Catégorie DscNodeStatus.
Ressource Le nom du compte Azure Automation.
Tenant_g GUID identifiant le locataire pour l’appelant.
NodeId_g GUID qui identifie le nœud géré.
DscReportId_g GUID qui identifie le rapport.
DscResourceId_s Le nom de l’instance de ressource DSC.
DscResourceName_s Le nom de la ressource DSC.
DscResourceStatus_s Indique si la ressource DSC est conforme.
DscModuleName_s Le nom du module PowerShell qui contient la ressource DSC.
DscModuleVersion_s La version du module PowerShell qui contient la ressource DSC.
DscConfigurationName_s Le nom de la configuration appliquée au nœud.
ErrorCode_s Le code d’erreur en cas d’échec de la ressource.
ErrorMessage_s Le message d’erreur en cas d’échec de la ressource.
DscResourceDuration_d La durée, en secondes, d’exécution de la ressource DSC.
SourceSystem Mode de collecte de données employé pour les journaux Azure Monitor. Toujours Azure pour les diagnostics Azure.
ResourceId Identificateur du compte Azure Automation.
ResultDescription La description de cette opération.
SubscriptionId ID d’abonnement Azure (GUID) pour le compte Automation.
ResourceGroup Nom du groupe de ressources du compte Automation.
ResourceProvider MICROSOFT.AUTOMATION.
ResourceType AUTOMATIONACCOUNTS.
CorrelationId GUID représentant l’ID de corrélation du rapport de conformité.

Étapes suivantes