Transférer les journaux de diagnostic Azure Automation vers Azure Monitor
Azure Automation peut envoyer un état de tâche du Runbook et des flux de tâches à votre espace de travail Log Analytics. Ce processus ne passe pas par la liaison d’un espace de travail, est complètement indépendant et vous permet d’effectuer des investigations simples. Les journaux et les flux de travaux sont visibles sur le portail Azure ou avec PowerShell pour les travaux individuels. Avec les journaux Azure Monitor de votre compte Automation, vous pouvez :
- Obtenir des insights sur l’état de vos travaux Automation.
- Déclencher un e-mail ou une alerte en fonction du statut de votre travail de runbook (par exemple, échec ou état suspendu).
- Écrire des requêtes avancées sur plusieurs flux de travaux.
- Mettre en corrélation des travaux sur différents comptes Automation.
- Utiliser des vues et des requêtes de recherche personnalisées pour visualiser les résultats de vos runbooks, l’état des travaux des runbooks et d’autres indicateurs ou métriques via un tableau de bord Azure.
- Obtenir les journaux d’audit relatifs aux comptes Automation, aux runbooks et à d’autres opérations de création, de modification et de suppression de ressources.
Avec les journaux Azure Monitor, vous pouvez regrouper les journaux de différentes ressources dans un même espace de travail, où ils peuvent être analysés avec des requêtes de façon à récupérer, regrouper et analyser rapidement les données collectées. Vous pouvez créer et tester des requêtes à l’aide de Log Analytics sur le portail Azure, avant d’analyser directement les données à l’aide de ces outils ou d’enregistrer les requêtes pour les utiliser avec des règles de visualisation ou d’alerte.
Azure Monitor utilise une version du langage de requête Kusto (KQL) utilisée par Azure Data Explorer et qui convient pour les requêtes de journaux simples. Il propose aussi des fonctionnalités avancées comme les agrégations, les jointures et l’analytique intelligente. Il existe plusieurs leçons pour vous aider à apprendre le langage de requête.
Paramètres de diagnostic Azure Automation
Vous pouvez transférer les journaux de plateforme et les données de métriques suivants en profitant de la prise en charge des paramètres de diagnostic Automation :
Types de données | Description |
---|---|
Journaux d’activité de travail | État du travail de runbook dans le compte Automation. |
Flux de travail | État des flux de travaux dans le runbook défini dans le compte Automation. |
DSCNodeStatus | État du nœud DSC. |
AuditEvent | Tous les journaux de ressources qui enregistrent les interactions des clients avec les données ou les paramètres du service Azure Automation. |
Métriques | Nombre total de travaux, nombre total d’exécutions automatiques de mise à jour, de déploiement, nombre total d’exécutions de déploiement de mises à jour. |
Configurer les paramètres de diagnostic sur le portail Azure
Vous pouvez configurer les paramètres de diagnostic sur le portail Azure à partir du menu pour la ressource de compte Automation.
Dans le menu du compte Automation, sous Supervision, sélectionnez Paramètres de diagnostic.
Cliquez sur Ajouter le paramètre de diagnostic.
Entrez un nom de paramètre dans le champ Nom du paramètre de diagnostic s’il n’en contient pas déjà un.
Vous pouvez aussi afficher toutes les catégories de journaux et de métriques.
Journaux et métriques à router : pour les journaux, choisissez un groupe de catégories ou cochez la case de chaque catégorie de données que vous souhaitez envoyer aux destinations spécifiées. Choisissez AllMetrics si vous souhaitez stocker les métriques dans des journaux Azure Monitor.
Détails de la destination : activez la case à cocher pour chaque destination. Suivant la sélection de chaque zone, les options s’affichent pour vous permettre d’ajouter des informations supplémentaires.
Log Analytics : entrez l’ID d’abonnement et le nom de l’espace de travail. Si vous n’avez pas d’espace de travail, vous devez en créer un avant de continuer.
Event Hubs : spécifiez les critères suivants :
- Abonnement : il s’agit du même abonnement que celui du hub d’événements.
- Espace de noms Event Hub : créez un hub d’événements si vous n’en avez pas encore un.
- Nom du hub d’événements (facultatif) : si vous ne spécifiez pas de nom, un hub d’événements est créé pour chaque catégorie de journal. Si vous envoyez plusieurs catégories, spécifiez un nom pour limiter le nombre de hubs d’événements créés. Pour plus de détails, voir Quotas et limites d’Azure Event Hubs.
- Nom de la stratégie du hub d’événements (facultatif) : une stratégie définit les autorisations dont dispose le mécanisme de streaming. Consultez Fonctionnalités Event Hubs.
Stockage : choisissez l’abonnement, le compte de stockage et la stratégie de rétention.
Intégration de partenaire : vous devez d’abord installer une intégration de partenaire dans votre abonnement. Les options de configuration varient selon le partenaire. Pour plus d’informations, consultez Intégration Azure Monitor.
Cliquez sur Enregistrer.
Après quelques instants, le nouveau paramètre apparaît dans la liste des paramètres de cette ressource, et les journaux sont envoyés aux destinations spécifiées au fur et à mesure de la génération de nouvelles données d’événement. Un délai de 15 minutes peut être nécessaire avant que l’événement émis s’affiche dans l’espace de travail Log Analytics.
Interroger les journaux
Pour interroger les journaux générés :
Dans votre compte Automation, sous Surveillance, sélectionnez Journaux.
Sous Toutes les requêtes, sélectionnez Travaux Automation.
Sélectionnez la requête que vous souhaitez exécuter, puis cliquez sur Exécuter.
Pour exécuter une requête personnalisée, fermez la fenêtre Requêtes, collez votre requête personnalisée dans la fenêtre Nouvelle requête, puis cliquez sur Exécuter.
La sortie de la requête s’affiche dans le volet Résultats.
Cliquez sur Nouvelle règle d’alerte pour configurer une alerte Azure Monitor pour cette requête.
Enregistrements de journaux Azure Monitor
Les diagnostics Azure Automation créent les types d’enregistrements suivants dans les journaux Azure Monitor, étiquetés AzureDiagnostics
. Les tableaux figurant dans les sections ci-dessous présentent des exemples d’enregistrements générés par Azure Automation ainsi que les types de données qui s’affichent dans les résultats de recherche dans les journaux.
Journaux de tâches
Propriété | Description |
---|---|
TimeGenerated | Date et heure d’exécution du travail du runbook. |
RunbookName_s | Nom/noms du runbook. |
Caller_s | Appelant qui a initié l’opération. Les valeurs possibles sont une adresse de messagerie ou un système pour les travaux planifiés. |
Tenant_g | GUID (identificateur global unique) qui identifie le locataire pour l’appelant. |
JobId_g | GUID identifiant le travail du runbook. |
ResultType | État du travail du runbook. Les valeurs possibles sont les suivantes : Créé Démarré Arrêté Interrompu Échec - Terminé |
Catégorie | Classification du type de données. Pour Automation, la valeur est JobLogs. |
NomOpération | Type d’opération exécutée dans Azure. Pour Automation, la valeur est Job. |
Ressource | Nom du compte Automation |
SourceSystem | Système utilisé par les journaux d'activité Azure Monitor pour collecter les données. La valeur est toujours Azure pour les diagnostics Azure. |
ResultDescription | État du résultat du travail du runbook. Les valeurs possibles sont les suivantes : - Job is started - Job Failed - Job Completed |
CorrelationId | GUID de corrélation du travail du runbook. |
ResourceId | ID de ressource de compte Azure Automation du runbook. |
SubscriptionId | GUID d’abonnement Azure pour le compte Automation. |
ResourceGroup | Nom du groupe de ressources du compte Automation. |
ResourceProvider | Nom du fournisseur de ressources. La valeur est MICROSOFT.AUTOMATION. |
ResourceType | Type de ressource. La valeur est AUTOMATIONACCOUNTS. |
Flux de tâches
Propriété | Description |
---|---|
TimeGenerated | Date et heure auxquels le travail du runbook s’est exécuté. |
RunbookName_s | Nom du runbook. |
Caller_s | Appelant qui a initié l’opération. Les valeurs possibles sont une adresse de messagerie ou un système pour les travaux planifiés. |
StreamType_s | Type de flux de travaux. Les valeurs possibles sont les suivantes : progress Sortie - Avertissement error DEBUG - Verbose |
Tenant_g | GUID identifiant le locataire pour l’appelant. |
JobId_g | GUID identifiant le travail du runbook. |
ResultType | L’état du travail du runbook. Les valeurs possibles sont les suivantes : - In Progress |
Catégorie | Classification du type de données. Pour Automation, la valeur est JobStreams. |
NomOpération | Type d’opération exécutée dans Azure. Pour Automation, la valeur est Job. |
Ressource | Nom du compte Automation. |
SourceSystem | Système utilisé par les journaux d'activité Azure Monitor pour collecter les données. La valeur est toujours Azure pour les diagnostics Azure. |
ResultDescription | Description incluant le flux de sortie du runbook. |
CorrelationId | GUID de corrélation du travail du runbook. |
ResourceId | ID de ressource de compte Azure Automation du runbook. |
SubscriptionId | GUID d’abonnement Azure pour le compte Automation. |
ResourceGroup | Nom du groupe de ressources du compte Automation. |
ResourceProvider | Fournisseur de ressources. La valeur est MICROSOFT.AUTOMATION. |
ResourceType | Type de ressource. La valeur est AUTOMATIONACCOUNTS. |
Remarque
Vérifiez que les informations d’identification ne sont pas envoyées aux flux de travail. Le service supprime les informations d’identification avant d’afficher les flux de travail dans les journaux de diagnostic.
Événements d'audit
Propriété | Description |
---|---|
TenantID | GUID identifiant le locataire pour l’appelant. |
TimeGenerated (UTC) | Date et heure d’exécution du travail du runbook. |
Catégorie | AuditEvent |
ResourceGroup | Nom du groupe de ressources du compte Automation. |
ID d’abonnement | GUID d’abonnement Azure pour le compte Automation. |
ResourceProvider | MICROSOFT.AUTOMATION |
Ressource | Nom du compte Automation |
ResourceType | AUTOMATIONACCOUNTS |
NomOpération | Les valeurs possibles sont Update, Create, Delete. |
ResultType | État du travail du runbook. La valeur possible est : Completed. |
CorrelationId | GUID de corrélation du travail du runbook. |
ResultDescription | État du résultat du travail du runbook. Les valeurs possibles sont Update, Create, Delete. |
Tenant_g | GUID identifiant le locataire pour l’appelant. |
SourceSystem | Système utilisé par les journaux Azure Monitor pour collecter les données. La valeur est toujours Azure pour les diagnostics Azure. |
clientInfo_IpAddress_s | {nettoyé} |
clientInfo_PrincipalName_s | {nettoyé} |
clientInfo_TenantId_g | ID de locataire du client. |
clientInfo_Issuer_s | |
clientInfo_ObjectId_g | ID d’objet du client. |
clientInfo_AppId_g | ID d’application du client. |
clientInfo_ClientRequestId_g | ID de demande du client |
targetResources_Resource_s | Compte, Travail, Informations d’identification, Connexions, Variables, Runbook. |
Type | AzureDiagnostics |
_ResourceId | ID de ressource de compte Azure Automation du runbook. |
Afficher les journaux Automation dans les journaux Azure Monitor
Après avoir commencé à envoyer vos flux de travail journaux Automation aux journaux d’activité d’Azure Monitor, nous allons voir comment les utiliser dans les journaux d’activité d’Azure Monitor.
Pour afficher les journaux d’activité, exécutez la requête suivante :kusto AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION"
Exemples de requêtes pour les journaux de travaux et les flux de travaux
Rechercher tous les travaux qui se sont terminés avec une erreur
En plus des scénarios tels que l’émission d’alertes en cas d’échecs, vous pouvez identifier un travail de runbook qui rencontre une erreur sans fin d’exécution. Dans ce cas, PowerShell génère un flux d’erreur, mais les erreurs sans fin d’exécution ne provoquent la suspension ou l’échec du travail.
- Dans votre espace de travail Log Analytics, cliquez sur Journaux.
- Dans le champ de requête de la requête, tapez :
AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error" | summarize AggregatedValue = count () by JobId_g.
- Cliquez sur Rechercher.
Afficher les flux de travail pour un travail
Lorsque vous déboguez un travail, vous pouvez également examiner les flux de travaux. La requête ci-dessous montre tous les flux pour un seul travail avec le GUID 2ebd22ea-e05e-4eb9-9d76-d73cbd4356e0
:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and JobId_g == "2ebd22ea-e05e-4eb9-9d76-d73cbd4356e0"
| sort by TimeGenerated asc
| project ResultDescription
Afficher l’état de travail historique
Vous pouvez enfin souhaiter visualiser l’historique de vos travaux dans le temps. Vous pouvez utiliser cette requête pour rechercher l’état de vos travaux au fil du temps.
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and ResultType != "started"
| summarize AggregatedValue = count() by ResultType, bin(TimeGenerated, 1h)
Rechercher les journaux signalant des erreurs dans les travaux Automation
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION"
| where StreamType_s == "Error"
| project TimeGenerated, Category, JobId_g, OperationName, RunbookName_s, ResultDescription, _ResourceId
Rechercher les travaux Azure Automation terminés
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and ResultType == "Completed"
| project TimeGenerated, RunbookName_s, ResultType, _ResourceId, JobId_g
Rechercher les travaux Azure Automation en échec, interrompus ou arrêtés
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Stopped" or ResultType == "Suspended")
| project TimeGenerated, RunbookName_s, ResultType, _ResourceId, JobId_g
Lister tous les runbooks et travaux qui ont été effectués avec des erreurs
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobStreams" and StreamType_s == "Error"
| project TimeGenerated, RunbookName_s, StreamType_s, _ResourceId, ResultDescription, JobId_g
Envoyer un e-mail en cas d’échec ou de suspension d’un travail de runbook
Les étapes suivantes expliquent comment configurer des alertes par e-mail dans Azure Monitor pour être averti en cas de problème avec un travail de runbook.
Pour créer une règle d’alerte, créez une recherche dans les journaux pour les enregistrements de travail de runbook qui doivent appeler l’alerte comme décrit dans Interroger les journaux. Cliquez sur +Nouvelle règle d’alerte pour configurer la règle d’alerte.
Dans votre compte Automation, sous Surveillance, sélectionnez Journaux.
Créez une requête de recherche dans les journaux pour votre alerte en entrant un critère de recherche dans le champ de requête.
AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Suspended")
Vous pouvez également regrouper le nom du runbook à l’aide de :
AzureDiagnostics | where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "JobLogs" and (ResultType == "Failed" or ResultType == "Suspended") | summarize AggregatedValue = count() by RunbookName_s
Pour ouvrir l’écran Créer une règle d’alerte, cliquez sur +Nouvelle règle d’alerte en haut de la page. Pour plus d’informations sur les options de configuration des alertes, consultez Alertes de journaux dans Azure.
Journaux d’audit de diagnostic Azure Automation
Vous pouvez maintenant aussi envoyer des journaux d’audit à l’espace de travail Azure Monitor. Cela permet aux entreprises de monitorer les activités clés du compte Automation pour assurer la sécurité et la conformité. Après l’activation dans les paramètres de Diagnostics Azure, vous pouvez collecter des données de télémétrie sur les opérations de création, de mise à jour et de suppression pour les runbooks, les travaux et les ressources Automation comme les connexions, les informations d’identification, les variables et les certificats. Vous pouvez aussi configurer les alertes pour les conditions de journal d’audit dans le cadre de vos exigences en matière de supervision de la sécurité.
Différence entre les journaux d’activité et les journaux d’audit
Un journal d’activité est un journal de plateforme dans Azure qui fournit des insights sur les événements de niveau abonnement. Le journal d’activité du compte Automation comporte des informations sur les opérations de modification, de création ou de suppression qui concernent une ressource Automation. Cependant, le nom ou l’ID de la ressource n’y sont pas indiqués.
Les journaux d’audit des comptes Automation capturent le nom et l’ID de la ressource (variable, informations d’identification, connexion Automation, etc.), ainsi que le type de l’opération effectuée sur la ressource. Par ailleurs, Azure Automation élimine certains détails comme les données IP du client conformément à la conformité au règlement RGPD.
Les journaux d’activité affichent des détails comme l’adresse IP du client, car un journal d’activité est un journal de plateforme qui fournit des informations détaillées de diagnostic et d’audit pour les ressources Azure. Elles sont générées automatiquement pour les activités qui se produisent dans ARM et sont envoyées (push) au fournisseur de ressources de journal d’activité. Étant donné que les journaux d’activité font partie de la supervision Azure, certaines données du client sont affichées pour fournir des insights sur son activité.
Exemples de requêtes pour les journaux d’audit
Requête destinée à afficher les journaux d’audit de ressources Automation
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent"
Requête destinée à superviser les opération de mise à jour, de création ou de suppression de variable
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s == "Variable"
Requête destinée à superviser les opérations de runbook (création, composition ou mise à jour)
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s contains "Runbook"
Requête destinée à superviser les opérations de création, de mise à jour ou de suppression de certificat
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s contains "Certificate"
Requête destinée à superviser les opérations de création, de mise à jour ou de suppression d’informations d’identification
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.AUTOMATION" and Category == "AuditEvent" and targetResources_Resource_s contains "Credential"
Filtrer la sortie de l’état du travail convertie en objet JSON
Récemment, nous avons modifié le comportement relatif à la façon dont les données du journal Automation sont écrites dans la table AzureDiagnostics
du service Log Analytics, où elles ne décomposent plus les propriétés JSON en champs distincts. Si vous avez configuré votre runbook pour qu’il formate les objets du flux de sortie de format JSON sous forme de colonnes distinctes, vous devez reconfigurer vos requêtes pour analyser ce champ en tant qu’objet JSON afin d’accéder à ces propriétés. Pour ce faire, utilisez parsejson pour accéder à un élément JSON spécifique dans un chemin connu.
Par exemple, un runbook formate la propriété ResultDescription dans le flux de sortie au format JSON avec plusieurs champs. Pour rechercher les travaux qui sont à l’état d’échec, comme spécifié dans un champ appelé État, utilisez cet exemple de requête pour rechercher la propriété ResultDescription dont l’état est Échec :
AzureDiagnostics
| where Category == 'JobStreams'
| extend jsonResourceDescription = parse_json(ResultDescription)
| where jsonResourceDescription.Status == 'Failed'
Étapes suivantes
- Pour savoir comment construire des requêtes de recherche et consulter les journaux d’activité de travaux Automation avec les journaux Azure Monitor, consultez Recherches dans les journaux d’activité dans les journaux Azure Monitor.
- Pour savoir comment créer et récupérer la sortie et les messages d’erreur de runbooks, consultez Superviser la sortie des runbooks.
- Pour plus d’informations sur l’exécution des runbooks, sur la supervision des travaux de runbook et sur d’autres détails techniques, consultez Exécution d’un Runbook dans Azure Automation.
- Pour plus d’informations sur les journaux Azure Monitor et sur les sources de collecte de données, consultez la page Collecter des données de stockage Azure dans les journaux Azure Monitor – Vue d’ensemble.
- Pour obtenir de l’aide sur la résolution des problèmes Log Analytics, consultez Dépannage si Log Analytics ne collecte plus de données.