Microsoft Azure

Présentation

Associez Microsoft Azure pour :

  • Obtenir des métriques sur des machines virtuelles Azure sans avoir nécessairement à installer l’Agent
  • Appliquer un tag à vos machines virtuelles Azure comportant des informations spécifiques à Azure (p. ex, la localisation)
  • Recueillir des métriques d’autres services : Application Gateway, App Service (Web et mobile), Batch Service, Event Hubs, IoT Hub, Logic App, Redis Cache, Server Farm (plan App Service), SQL Database, SQL Elastic Pool, Virtual Machine Scale Set, et bien d’autres encore.
L'intégration Azure de Datadog est conçue pour recueillir TOUTES les métriques en provenance d'Azure Monitor. Datadog s'efforce de mettre régulièrement à jour sa documentation afin d'inclure chaque sous-intégration. Toutefois, les métriques et les services proposés par les différents services cloud étant en permanente évolution, il est possible que la liste ne soit pas actuelle.
Les métriques azure.*.status et azure.*.count sont générées par Datadog à partir d'Azure Resource Health. En savoir plus sur ces métriques.
IntégrationDescription
Analysis ServicesUn service qui fournit des modèles de données dans le cloud.
Gestion des APIUn service pour publier, sécuriser, transformer, maintenir et surveiller les API.
App ServiceUn service de déploiement et de mise à l’échelle d’applications Web, mobiles, API et de logique métier
App Service EnvironmentUn service qui fournit un environnement pour l’exécution sécurisée de vos applications App Service à grande échelle.
Plan App ServiceUn ensemble de ressources de calcul nécessaires à l’exécution d’une application Web.
Application GatewayUn équilibreur de charge du trafic Web qui vous permet de gérer le trafic vers vos applications Web.
AutomationUn service conçu pour faciliter la gestion de la configuration et l’automatisation au sein de vos environnements.
Batch ServiceUn planificateur et processeur de tâches gérés
Cognitive ServicesUn ensemble d’API, de SDK et de services mis à votre disposition pour vous permettre de créer des applications sans connaissances en intelligence artificielle ou en science des données.
Container InstancesUn service qui vous permet de déployer des conteneurs sans avoir à provisionner ou gérer l’infrastructure sous-jacente.
Container ServiceUn cluster Kubernetes, DC/OS ou Docker Swarm prêt pour la production.
Cosmos DBUn service de base de données qui prend en charge les bases de données clé-valeur, de documents, en colonnes et graphiques.
Customer InsightsPermet aux organisations de consolider divers jeux de données pour bénéficier d’une vue globale sur leurs clients.
Data ExplorerUn service d’exploration de données rapide et hautement évolutif.
Data FactoryUn service qui permet de composer des services de stockage, de déplacement et de traitement des données au sein de pipelines de données automatisés.
Data Lake AnalyticsUn service d’analyse qui simplifie le traitement des tâches de Big Data.
Data Lake StoreUne solution Data Lake sans limite qui améliore l’analytique Big Data.
Database for MariaDBUn service qui fournit une version communautaire entièrement gérée et prête à l’emploi de MariaDB.
Event GridUn service pour gérer le routage des événements qui permet une consommation d’événements uniforme à l’aide d’un modèle pub/sub.
Event HubsUn service géré de flux de données à grande échelle
ExpressRouteUn service pour étendre vos réseaux sur site dans le cloud.
Pare-feuUn service de sécurité réseau basé sur le cloud pour protéger les ressources de votre réseau virtuel Azure.
FunctionsUn service conçu pour exécuter du code sans serveur en réponse à un événement.
HDInsightsUn service cloud conçu pour traiter d’importants volumes de données.
IoT HubConnexion, surveillance et gestion de milliards de ressources IoT
Key VaultUn service conçu pour protéger et gérer les clés de chiffrement et les secrets utilisés par les services et applications cloud.
Load BalancerPermet de mettre à l’échelle vos applications et d’assurer la haute disponibilité de vos services.
Logic AppsConception de solutions d’intégration puissantes
Machine LearningService de machine learning pour l’entreprise permettant d’accélérer la création et le déploiement de modèles
Network InterfacesPermet à une machine virtuelle de communiquer avec des ressources Internet, Azure et locales.
Notification HubsUn moteur de notifications Push qui vous permet d’envoyer des notifications vers n’importe quelle plateforme depuis n’importe quel backend.
Adresse IP publiqueUne ressource qui permet d’assurer une connectivité entrante et une connectivité sortante à partir d’Internet.
Redis CacheCache de données géré
RelayPermet l’exposition sécurisée des services exécutés dans votre réseau d’entreprise sur le cloud public.
Recherche cognitiveUn service de recherche basé sur le cloud qui fournit des outils permettant d’ajouter une expérience de recherche riche.
StockageStockage d’objets blob, de fichiers, de files d’attente et de tables.
Stream AnalyticsUn moteur de traitement d’événements pour analyser d’importants volumes de données diffusées à partir d’appareils.
SQL DatabaseBase de données relationnelle fortement évolutive dans le cloud
Pool élastique SQL DatabaseGestion des performances de plusieurs bases de données
Utilisation et quotasSurveillance de votre utilisation d’Azure.
Machine virtuelleService de gestion de machines virtuelles
Virtual Machine Scale SetsDéploiement, gestion et mise à l’échelle automatique d’un groupe de machines virtuelles identiques
Réseau virtuelPermet aux ressources Azure de communiquer entre elles, avec Internet et avec les réseaux sur site en toute sécurité.

Configuration

Installation

Intégrez votre compte Microsoft Azure à Datadog à l’aide de l’outil d’interface de ligne de commande Azure ou du portail Azure. Cette méthode d’intégration fonctionne automatiquement sur tous les clouds Azure : Public, Chine, Allemagne et Government. Suivez les instructions ci-dessous afin que Datadog détecte automatiquement le type de cloud que vous utilisez pour terminer l’intégration.

Intégration via l’interface de ligne de commande Azure

Afin d’intégrer Datadog à Azure à l’aide de l’interface de ligne de commande Azure, assurez-vous que celle-ci est bien installée.

Commencez par vous connecter au compte Azure que vous souhaitez intégrer à Datadog :

az login

Exécutez la commande « account show » :

az account show

Saisissez la valeur Tenant ID générée dans le carré d’intégration Azure de Datadog, sous Tenant name/ID.

Créez une application en tant que service principal à l’aide du format :

az ad sp create-for-rbac --role "Monitoring Reader" --scopes /subscriptions/{id_abonnement}
  • Cette commande accorde au service principal le rôle monitoring reader pour l’abonnement que vous souhaitez surveiller.
  • La valeur appID générée à partir de cette commande doit être saisie dans le carré d’intégration Azure de Datadog, sous Client ID.
  • Ajoutez --name <NOM_PERSONNALISÉ> pour utiliser un nom personnalisé. Autrement, Azure générera un nom unique. Le nom n’est pas utilisé dans le processus de configuration.
  • Ajoutez --password <MOTDEPASSE_PERSONNALISÉ> pour utiliser un mot de passe personnalisé. Autrement, Azure générera un mot de passe unique. Ce mot de passe doit être saisi dans le carré d’intégration Datadog/Azure, sous Client Secret.

Commencez par vous connecter au compte Azure que vous souhaitez intégrer à Datadog :

azure login

Exécutez la commande « account show » :

az account show

Saisissez la valeur Tenant ID générée dans le carré d’intégration Azure de Datadog, sous Tenant name/ID.

Créez un nom et un mot de passe :

azure ad sp create -n <NOM> -p <MOTDEPASSE>
  • Le <NOM> n’est PAS utilisé et est seulement requis dans le cadre du processus de configuration.
  • Le <MOTDEPASSE> choisi doit être saisi dans le carré d’intégration Azure de Datadog, sous Client Secret.
  • La valeur Object Id renvoyée par cette commande est utilisée pour <ID_OBJET> dans la prochaine commande.

Créez une application en tant que service principal à l’aide du format :

azure role assignment create --objectId <ID_OBJET> -o "Monitoring Reader" -c /subscriptions/<ID_ABONNEMENT>/
  • Cette commande accorde au service principal le rôle monitoring reader pour l’abonnement que vous souhaitez surveiller.
  • La valeur Service Principal Name générée à partir de cette commande doit être saisie dans le carré d’intégration Azure de Datadog, sous Client ID.
  • <ID_ABONNEMENT> correspond à l’abonnement Azure que vous souhaitez surveiller et est représenté par ID dans azure account show ou sur le portail.

Commencez par vous connecter au compte Azure que vous souhaitez intégrer à Datadog :

azure login

Exécutez la commande « account show » :

az account show

Saisissez la valeur Tenant ID générée dans le carré d’intégration Azure de Datadog, sous Tenant name/ID.

Créez un nom, home-page, identifier-uris et mot de passe :

azure ad app create --name "<NOM>" --home-page "<URL>" --identifier-uris "<URL>" --password "<MOTDEPASSE>"
  • Les valeurs name, home-page et identifier-uris ne sont PAS utilisées et sont seulement requises dans le cadre du processus de configuration.
  • Le password que vous choisissez doit être saisi dans le carré d’intégration Azure de Datadog, sous Client Secret.
  • La valeur AppId renvoyée par cette commande est utilisée dans la prochaine commande et doit être saisie dans le carré d’intégration Azure de Datadog, sous Client ID.

Créez un service principal avec :

Pour les interfaces de ligne de commande Azure < 0.10.2 :

azure ad sp create {app-id}

Pour les interfaces de ligne de commande Azure >= 0.10.2 :

azure ad sp create -a {app-id}
  • La valeur Object Id renvoyée par cette commande est utilisée pour <ID_OBJET> dans la prochaine commande.

Créez une application Active Directory à l’aide du format :

azure role assignment create --objectId <ID_OBJET> --roleName "Monitoring Reader" --subscription <ID_ABONNEMENT>
  • Cette commande accorde au service principal le rôle monitoring reader pour l’abonnement que vous souhaitez surveiller.
  • <ID_ABONNEMENT> correspond à l’abonnement Azure que vous souhaitez surveiller et est représenté par ID dans azure account show ou sur le portail.

Intégration via le portail Azure

  1. Créez une inscription d’application dans votre Active Directory et envoyez les bons identifiants à Datadog.
  2. Donnez à cette application une autorisation de lecture pour tous les abonnements que vous souhaitez surveiller.
Créer l’inscription d’application
  1. Sous Azure Active Directory, accédez à Inscriptions des applications et cliquez sur Nouvelle inscription d’application :
  2. Saisissez les informations suivantes et cliquez sur le bouton Créer. Remarque : le nom et l’URL de connexion ne sont pas utilisés et sont seulement requis dans le cadre du processus de configuration.
  • Nom : Datadog Auth
  • Types de compte pris en charge : Accounts in this organizational directory only (Datadog)
  • URI de redirection : https://app.datadoghq.com. Si vous utilisez le site européen de Datadog : https://app.datadoghq.eu
Création de l'app Azure
Accorder un accès en lecture à l’application
  1. Accédez à la section Abonnements en utilisant la barre de recherche ou depuis la barre latérale de gauche :

    icône abonnements
  2. Cliquez sur l’abonnement que vous souhaitez surveiller.

  3. Sélectionnez Contrôle d’accès (IAM) dans le menu d’abonnement, puis Ajouter -> Ajouter une attribution de rôle :

    Add Role Assignment
  4. Pour Rôle, sélectionnez Lecteur de surveillance. Sous Sélectionner, choisissez le nom de l’application que vous avez créée :

    Sélection du rôle et de l'app
  5. Cliquez sur Save.

  6. Répétez ce processus pour tout autre abonnement que vous souhaitez surveiller à l’aide de Datadog. Remarque : les utilisateurs d’Azure Lighthouse peuvent ajouter les abonnements des locataires clients.

Remarque : les diagnostics doivent être activés pour que les machines virtuelles déployées avec ARM puissent recueillir des métriques. Consultez la section Activer les diagnostics.

Terminer l’intégration
  1. Dans Inscriptions des applications, sélectionnez l’application que vous avez créée, copiez les valeurs ID d’application et ID de locataire, puis collez-les dans le carré d’intégration Azure de Datadog, sous Client ID et Tenant ID.

  2. Pour cette même application, accédez à Gérer -> Certificats et secrets.

  3. Ajoutez une nouvelle Clé secrète client intitulée datadogClientSecret, sélectionnez un intervalle pour Date d’expiration et cliquez sur Ajouter :

    Secret client Azure
  4. Une fois la valeur de la clé indiquée, collez-la dans le carré d’intégration Azure de Datadog, sous Client Secret, puis cliquez sur Install Integration ou Update Configuration.

Configuration

Vous pouvez choisir de limiter le nombre de machines virtuelles Azure qui sont transmises à Datadog en ajoutant des tags sous Optionally filter to VMs with tag.

Cette liste de tags séparés par des virgules au format <KEY>:<VALUE> définit un filtre utilisé lors de la collecte de métriques. Les wildcards, tels que ? (pour un seul caractère) et * (pour plusieurs caractères), peuvent également être utilisés. Seules les machines virtuelles qui correspondent à l’un des tags définis sont importées dans Datadog. Les autres machines virtuelles sont ignorées. Ajoutez ! devant un tag pour exclure les machines virtuelles correspondant à ce tag. Par exemple :

datadog:monitored,env:production,!env:staging,instance-type:c1.*

Collecte de métriques

Une fois le carré d’intégration configuré, les métriques sont recueillies par un crawler. Pour recueillir des métriques supplémentaires, déployez l’Agent Datadog sur vos machines virtuelles :

Installation de l’Agent

  1. Dans le portail Azure, accédez à Machine virtuelle -> Paramètres -> Extensions -> Ajouter et sélectionnez l’Agent Datadog.
  2. Cliquez sur Créer, saisissez votre clé d’API Datadog et cliquez sur OK.

Pour effectuer l’installation de l’Agent en fonction du système d’exploitation ou de l’outil CICD, consultez les instructions d’installation de l’Agent Datadog au sein de l’application.

Remarque : lors de l’installation de l’Agent Datadog avec l’extension Azure, les contrôleurs de domaine ne sont pas pris en charge.

Validation

Vous devrez peut-être patienter quelques minutes avant que les métriques des applications apparaissent sous le nouvel abonnement.

Accédez au dashboard par défaut des machines virtuelles Azure pour visualiser les données de votre infrastructure, qui s’ajoutent automatiquement au dashboard.

Screenboard machines virtuelles azure

Collecte de logs

Le meilleur moyen d’envoyer les logs d’Azure à Datadog est d’utiliser l’Agent ou un DaemonSet. Si cela n’est pas possible pour une certaine ressource, Datadog vous conseille de créer un pipeline de transfert de logs en utilisant un Event Hub Azure pour recueillir les logs de la plateforme Azure. Si une ressource ne prend pas en charge la diffusion des logs de la plateforme Azure à un Event Hub, vous pouvez les transférer via le service Stockage Blob Azure.

Datadog met à votre disposition deux scripts automatisés.

Le premier script crée et configure les ressources Azure requises pour que les logs d’activité soient diffusés vers votre compte Datadog. Ces ressources incluent les paramètres de diagnostic des logs d’activité, les fonctions Azure, les espaces de nommage d’Event Hub et l’Event Hub.

Le second script est une option plus générique qui déploie uniquement l’Event Hub et les fonctions Azure, sans aucun paramètre de diagnostic. Il peut être utilisé pour configurer les sources de diffusion. Dans les deux cas, les Event Hubs peuvent être utilisés par d’autres sources de diffusion.

Exemple :

Si vous souhaitez diffuser à la fois les logs d’activité et les logs de ressources provenant de westus, exécutez le premier script en spécifiant le paramètre facultatif -ResourceGroupLocation westus (les logs d’activité sont une source au niveau de l’abonnement, vous pouvez donc leur créer un pipeline dans n’importe quelle région). Une fois le script déployé, vous pouvez envoyer les logs de ressource via le même Event Hub en ajoutant les paramètres de diagnostic à vos ressources dans westus.

Envoyer vos logs d’activité à Datadog depuis Azure :

Étape 1 :* dans le portail Azure, accédez à votre Cloud Shell.

cloud shell azure

Étape 2 : exécutez la commande ci-dessous pour télécharger le script d’automatisation dans votre environnement Cloud Shell.

Logs d'activité Étape 1

(New-Object System.Net.WebClient).DownloadFile("https://raw.githubusercontent.com/DataDog/datadog-serverless-functions/master/azure/eventhub_log_forwarder/activity_logs_deploy.ps1", "activity_logs_deploy.ps1")

Vous pouvez également afficher le contenu du script.

Étape 3 : invoquez le script en exécutant la commande ci-dessous, en ayant remplacé <clé_api>, par votre token d’API Datadog, et <id_abonnement>, par votre ID d’abonnement Azure. Vous pouvez également ajouter des paramètres facultatifs supplémentaires pour configurer votre déploiement. Consultez Paramètres facultatifs.

Logs d'activité Étape 2

./activity_logs_deploy.ps1 -ApiKey <clé_api> -SubscriptionId <id_abonnement> 

Envoyer vos logs de plateforme à Datadog depuis Azure :

Une solution générique pour envoyer des logs de plateforme Azure, y compris les logs de ressource, consiste à déployer uniquement l’Event Hub et le forwarder de logs. Une fois ce pipeline déployé, vous pouvez créer des paramètres de diagnostic pour chaque source de log et les configurer pour qu’elles diffusent leur contenu vers Datadog.

Étape 1 :* dans le portail Azure, accédez à votre Cloud Shell.

Étape 2 : exécutez la commande ci-dessous pour télécharger le script d’automatisation dans votre environnement Cloud Shell.

Logs de plateforme Étape 1

(New-Object System.Net.WebClient).DownloadFile("https://raw.githubusercontent.com/DataDog/datadog-serverless-functions/master/azure/eventhub_log_forwarder/resource_deploy.ps1", "resource_deploy.ps1")

Vous pouvez également [afficher le contenu du script](https://github. com/DataDog/datadog-serverless-functions/blob/master/azure/eventhub_log_forwarder/resource_deploy.ps1).

Étape 3 : invoquez le script en exécutant la commande ci-dessous, en ayant remplacé <clé_api>, par votre token d’API Datadog, et <id_abonnement>, par votre ID d’abonnement Azure. Vous pouvez également ajouter des paramètres facultatifs supplémentaires pour configurer votre déploiement. Consultez Paramètres facultatifs.

Logs de plateforme Étape 2

./resource_deploy.ps1 -ApiKey <clé_api> -SubscriptionId <id_abonnement> 

Étape 4 : créez des paramètres de diagnostic pour toutes les ressources Azure qui enverront des logs à Datadog. Configurez ces paramètres de diagnostic pour démarrer la diffusion des logs vers l’Event Hub que vous venez de créer.

Remarque : les ressources peuvent diffuser des logs uniquement aux Event Hubs qui se trouvent dans la même région Azure. Vous devrez donc répéter l’étape 2 pour chaque région à partir de laquelle vous souhaitez diffuser des logs de ressource.

Remarque : les valeurs Ressource-Groupe-Emplacement sont ajoutées au nom par défaut de chaque ressource Azure déployée pour le pipeline de logs de plateforme. Exemple : datadog-eventhub-westus. Toutefois, vous pouvez modifier cette convention en remplaçant ce paramètre.

Paramètres facultatifs

Remarque : lorsque vous personnalisez les paramètres, assurez-vous que le nom de chacune de vos ressources personnalisées est unique. Vérifiez que le nom de la ressource ne figure pas déjà dans votre liste de ressources Azure.

-Flag <paramètre par défaut>Description
-DatadogSite <datadoghq.com>Personnalisez votre instance Datadog en ajoutant ce flag avec une autre URL Datadog comme paramètre. Votre site Datadog est .
-Environnement <AzureCloud>Gérez le stockage des clouds Azure indépendants en ajoutant ce flag comme paramètre. Vous pouvez également utiliser les options AzureChinaCloud AzureGermanCloud et AzureUSGovernment.
-ResourceGroupLocation <westus2>Vous pouvez sélectionner la région dans laquelle votre groupe de ressources et vos ressources Azure sont déployés en ajoutant ce flag avec la nouvelle région Azure.
-ResourceGroupName <gr-forwarder-logs-datadog>Personnalisez le nom de votre groupe de ressources Azure en ajoutant ce flag avec un paramètre mis à jour.
-EventhubNamespace <espacedenommage-eventhub-datadog>Personnalisez l’espace de nommage de votre déploiement Event Hub Azure en ajoutant ce flag avec un paramètre mis à jour.
-EventhubName <eventhub-datadog>Personnalisez le nom de votre Event Hub Azure en utilisant ce flag avec un paramètre mis à jour.
-FunctionAppName <application-fonction-datadog>Personnalisez le nom de votre application de Azure ajoutant ce flag avec un paramètre mis à jour.
-FunctionName <fonction-datadog>Personnalisez le nom de votre fonction Azure en utilisant ce flag avec un paramètre mis à jour.
-DiagnosticSettingName <paramètre-diagnostic-logs-activités-datadog>Personnalisez le nom de votre paramètre de diagnostic Azure en utilisant ce flag avec un paramètre mis à jour. Ce flag sert uniquement à envoyer des logs d’activité pertinents uniquement pour l’envoi de logs d’activité.

Si l’installation échoue, consultez la section Dépannage pour résoudre rapidement les erreurs courantes.

Pour envoyer des logs depuis Azure vers Datadog, suivez cette méthode globale :

  1. Créez un Event Hub Azure.
  2. Configurez la fonction Datadog/Azure avec un déclencheur Event Hub pour transmettre les logs à Datadog.
  3. Configurez vos services Azure de façon à ce que leurs logs soient envoyés au Event Hub à l’aide d’un nouveau paramètre de diagnostic.

Les instructions qui suivent permettent d’effectuer une première configuration basique à l’aide du portail Azure. Toutes ces étapes peuvent être effectuées via l’interface de ligne de commande, Powershell ou des modèles de ressources. Pour ce faire, référez-vous à la documentation Azure.

Event Hub Azure

Créez un Event Hub Azure :

Créez un espace de nommage ou ajoutez un nouvel Event Hub à un espace de nommage existant en suivant les instructions ci-dessous.

  1. Dans le portail Azure, accédez à la vue d’ensemble Event Hubs et cliquez sur Ajouter.
  2. Indiquez le nom, le niveau tarifaire, l’abonnement et le groupe de ressources.
  3. Sélectionnez une région. Remarque : l’Event Hub doit se trouver dans la même région que la ressource dont les logs doivent être transférés. Pour les logs d’activité ou toute autre source de logs propres à l’ensemble du compte, la région n’a pas d’importance.
  4. Sélectionnez les options de votre choix pour les unités de débit, les zones de disponibilité et l’inflation automatique.
  5. Cliquez sur Créer.

Ajoutez un Event Hub à votre espace de nommage Event Hub.

  1. Dans le portail Azure, créez un espace de nommage ou accédez à un espace de nommage existant.
  2. Cliquez sur + Event Hub.
  3. Sélectionnez les options de votre choix pour le nom, le nombre de partitions et la rétention des messages.
  4. Cliquez sur Créer.

Fonction Datadog/Azure

Configurez la fonction Datadog/Azure avec un déclencheur Event Hub pour transmettre les logs à Datadog :

Créez une application de fonctions ou utilisez une application de fonctions existante et passez à la section suivante.

  1. Dans le portail Azure, accédez à votre application de fonctions, cliquez sur Fonctions, puis sur Ajouter.
  2. Sélectionnez un abonnement, un groupe de ressources et une région, puis nommez votre fonction.
  3. Définissez Publier sur Code, Pile d’exécution sur Node.js et Version sur 12 LTS.
  4. Cliquez sur Next:Hosting.
  5. Sélectionnez un compte de stockage et un type de plan, puis sélectionnez Windows comme système d’exploitation.
  6. Vérifiez les informations, puis créez votre application de fonctions.
  7. Attendez que votre déploiement se termine.

Ajoutez une nouvelle fonction à votre application de fonctions en utilisant le modèle de déclencheur Event Hub.

  1. Sélectionnez une application de fonctions nouvelle ou existante dans la liste des applications de fonctions.
  2. Sélectionnez Fonctions dans le menu des fonctions et cliquez sur Ajouter.
  3. Sélectionnez un déclencheur Azure Event Hub dans le menu des modèles et cliquez sur Nouveau.
  4. Sélectionnez votre espace de nommage et votre Event Hub pour la connexion de l’Event Hub et cliquez sur OK.
  5. Cliquez sur Créer une fonction.

Pointez votre déclencheur Event Hub vers Datadog.

  1. Sélectionnez votre nouveau déclencheur Event Hub dans la vue des fonctions.
  2. Cliquez sur Code + Test dans le menu latéral pour les développeurs.
  3. Ajoutez le code de la fonction Datadog/Azure à votre fichier index.js.
  4. Ajoutez votre clé d’API en créant une variable d’environnement DD_API_KEY dans l’onglet de configuration de votre application de fonctions, ou copiez-la dans le code de la fonction en remplaçant <DATADOG_API_KEY> à la ligne 22.
  5. Enregistrez la fonction.
  6. Cliquez sur Integration, puis sur Azure Event Hubs sous le déclencheur et vérifiez les paramètres suivants : a. Event Parameter Name doit être défini sur eventHubMessages. b. Event Hub Cardinality doit être défini sur Many. c. Event Hub Data Type doit être vide.
  7. Cliquez sur Enregistrer.
  8. Vérifiez que votre configuration est valide en exécutant la fonction et en recherchant le message de test dans le Log Explorer Datadog.

Logs d’activité

  1. Dans le portail Azure, accédez au journal d’activité.
  2. Cliquez sur Paramètres de diagnostic.
  3. Cliquez sur Ajouter un paramètre de diagnostic.
  4. Dans la section réservée aux catégories, sélectionnez les catégories de logs à envoyer à Datadog.
  5. Dans la section réservée à la destination, sélectionnez Diffuser vers un Event Hub.
  6. Définissez l’espace de nommage et le nom de l’Event Hub. Ces derniers doivent correspondre à l’espace de nommage et au nom de l’Event Hub que vous avez utilisés pour créer votre déclencheur Event Hub.
  7. Définissez la clé d’accès partagé. Celle-ci doit être configurée avec un accès en envoi ou en gestion.
  8. Cliquez sur Enregistrer.
  9. Vérifiez que les logs de cette ressource apparaissent dans le Log Explorer Datadog pour confirmer que votre configuration est valide.

Logs de ressource

Configurez vos services Azure de façon à ce que leurs logs soient envoyés au Event Hub à l’aide d’un nouveau paramètre de diagnostic.

  1. Dans le portail Azure, accédez à la ressource dont les logs doivent être envoyés à Datadog.
  2. Dans la section Surveillance du volet de la ressource, cliquez sur Paramètres de diagnostic.
  3. Cliquez sur Ajouter un paramètre de diagnostic.
  4. Dans la section réservée aux catégories, sélectionnez les catégories de logs à envoyer à Datadog.
  5. Dans la section Détails de la destination, sélectionnez Diffuser vers un Event Hub.
  6. Définissez l’espace de nommage et le nom de l’Event Hub. Ces derniers doivent correspondre à l’espace de nommage et au nom de l’Event Hub que vous avez utilisés pour créer votre déclencheur Event Hub.
  7. Définissez la clé d’accès partagé. Celle-ci doit être configurée avec un accès en envoi ou en gestion.
  8. Cliquez sur Enregistrer.
  9. Vérifiez que les logs de cette ressource apparaissent dans le Log Explorer Datadog pour confirmer que votre configuration est valide.

Pour recueillir des logs à partir de l’ensemble de vos Azure App Services, suivez cette méthode globale :

  1. Configurez Stockage Blob Azure depuis le portail Azure, l’Explorateur Stockage Azure, l’interface de ligne de commande Azure ou Powershell.
  2. Configurez la fonction Datadog/Azure chargée de transmettre les logs depuis votre stockage blob vers Datadog.
  3. Configurez vos Azure App Services de façon à transférer leurs logs à Stockage Blob.

Créer une fonction Stockage Blob Azure

Si vous n’avez jamais utilisé de fonction Azure, consultez le portail Azure pour découvrir comment créer votre première fonction.

  1. Dans le portail Azure, accédez à Applications de fonctions -> Fonctions, puis cliquez sur Ajouter.
  2. Sélectionnez un abonnement, un groupe de ressources et une région, puis nommez votre fonction.
  3. Définissez Publier sur Code et Pile d’exécution sur Node.js.
  4. Cliquez sur Next:Hosting.
  5. Sélectionnez un compte de stockage et un type de plan, puis sélectionnez Windows comme système d’exploitation.
  6. Vérifiez les informations, puis créez votre fonction.
  7. Une fois le déploiement terminé, sélectionnez votre nouvelle fonction dans la liste des applications de fonctions.
  8. Choisissez de générer votre fonction dans le portail et utilisez le modèle de déclencheur de Stockage Blob (sous Autres modèles…). Si besoin, installez l’extension Microsoft.Azure.WebJobs.Extensions.EventHubs.
  9. Sélectionnez ou ajoutez la Connexion du compte de stockage et cliquez sur Créer.
  10. Créez un fichier index.js et ajoutez le code de la fonction Datadog/Azure (remplacez <DATADOG_API_KEY> par votre clé d’API Datadog).
  11. Enregistrez la fonction.
  12. Pour la section Intégrer, définissez Nom du paramètre d’objet blob sur blobContent, et cliquez sur Enregistrer.
  13. Vérifiez que vos logs apparaissent dans le Log Explorer Datadog pour confirmer que votre configuration est valide.

Données collectées

Métriques

azure.cdn_profiles.status
(gauge)
Status of Azure CDN Profiles (deprecated)
azure.devices_elasticpools_iothubtenants.c2d.commands.egress.abandon.success
(count)
Number of cloud-to-device commands abandoned by the device
azure.devices_elasticpools_iothubtenants.c2d.commands.egress.complete.success
(count)
Number of cloud-to-device commands completed successfully by the device
azure.devices_elasticpools_iothubtenants.c2d.commands.egress.reject.success
(count)
Number of cloud-to-device commands rejected by the device
azure.devices_elasticpools_iothubtenants.c2d.methods.failure
(count)
The count of all failed direct method calls.
azure.devices_elasticpools_iothubtenants.c2d.methods.request_size
(gauge)
The average min and max of all successful direct method requests.
Shown as byte
azure.devices_elasticpools_iothubtenants.c2d.methods.response_size
(gauge)
The average min and max of all successful direct method responses.
Shown as byte
azure.devices_elasticpools_iothubtenants.c2d.methods.success
(count)
The count of all successful direct method calls.
azure.devices_elasticpools_iothubtenants.c2d.twin.read.failure
(count)
The count of all failed back-end-initiated twin reads.
azure.devices_elasticpools_iothubtenants.c2d.twin.read.size
(gauge)
The average min and max of all successful back-end-initiated twin reads.
Shown as byte
azure.devices_elasticpools_iothubtenants.c2d.twin.read.success
(count)
The count of all successful back-end-initiated twin reads.
azure.devices_elasticpools_iothubtenants.c2d.twin.update.failure
(count)
The count of all failed back-end-initiated twin updates.
azure.devices_elasticpools_iothubtenants.c2d.twin.update.size
(gauge)
The average min and max size of all successful back-end-initiated twin updates.
Shown as byte
azure.devices_elasticpools_iothubtenants.c2d.twin.update.success
(count)
The count of all successful back-end-initiated twin updates.
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.built_in.events
(count)
Number of times messages were successfully written to the built-in endpoint (messages/events)
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.event_hubs
(count)
Number of times messages were successfully written to Event Hub endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.service_bus_queues
(count)
Number of times messages were successfully written to Service Bus Queue endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.service_bus_topics
(count)
Number of times messages were successfully written to Service Bus Topic endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.storage
(count)
Number of times messages were successfully written to storage endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.storage.blobs
(count)
Number of blobs written to storage endpoints
azure.devices_elasticpools_iothubtenants.d2c.endpoints.egress.storage.bytes
(gauge)
Amount of data in bytes written to storage endpoints
Shown as byte
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.built_in.events
(gauge)
The average latency between message ingress to the IoT hub and message ingress into the built-in endpoint (messages/events) in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.event_hubs
(gauge)
The average latency between message ingress to the IoT hub and message ingress into an Event Hub endpoint in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.service_bus_queues
(gauge)
The average latency between message ingress to the IoT hub and message ingress into a Service Bus Queue endpoint in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.service_bus_topics
(gauge)
The average latency between message ingress to the IoT hub and message ingress into a Service Bus Topic endpoint in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.endpoints.latency.storage
(gauge)
The average latency between message ingress to the IoT hub and message ingress into a storage endpoint in milliseconds
Shown as millisecond
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.dropped
(count)
Number of messages dropped because the delivery endpoint was dead
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.fallback
(count)
Number of messages written to the fallback endpoint
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.invalid
(count)
The count of messages not delivered due to incompatibility with the endpoint
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.orphaned
(count)
The count of messages not matching any routes including the fallback route
azure.devices_elasticpools_iothubtenants.d2c.telemetry.egress.success
(count)
Number of times messages were successfully written to endpoints (total)
azure.devices_elasticpools_iothubtenants.d2c.telemetry.ingress.all_protocol
(count)
Number of device-to-cloud telemetry messages attempted to be sent to your IoT hub
azure.devices_elasticpools_iothubtenants.d2c.telemetry.ingress.send_throttle
(count)
Number of throttling errors due to device throughput throttles
azure.devices_elasticpools_iothubtenants.d2c.telemetry.ingress.success
(count)
Number of device-to-cloud telemetry messages sent successfully to your IoT hub
azure.devices_elasticpools_iothubtenants.d2c.twin.read.failure
(count)
The count of all failed device-initiated twin reads.
azure.devices_elasticpools_iothubtenants.d2c.twin.read.size
(gauge)
The average min and max of all successful device-initiated twin reads.
Shown as byte
azure.devices_elasticpools_iothubtenants.d2c.twin.read.success
(count)
The count of all successful device-initiated twin reads.
azure.devices_elasticpools_iothubtenants.d2c.twin.update.failure
(count)
The count of all failed device-initiated twin updates.
azure.devices_elasticpools_iothubtenants.d2c.twin.update.size
(gauge)
The average min and max size of all successful device-initiated twin updates.
Shown as byte
azure.devices_elasticpools_iothubtenants.d2c.twin.update.success
(count)
The count of all successful device-initiated twin updates.
azure.devices_elasticpools_iothubtenants.daily_message_quota_used
(count)
Number of total messages used today. This is a cumulative value that is reset to zero at 00:00 UTC every day.
azure.devices_elasticpools_iothubtenants.device_data_usage
(count)
Bytes transferred to and from any devices connected to IotHub
azure.devices_elasticpools_iothubtenants.devices.connected_devices.all_protocol
(count)
Number of devices connected to your IoT hub
azure.devices_elasticpools_iothubtenants.devices.total_devices
(count)
Number of devices registered to your IoT hub
azure.devices_elasticpools_iothubtenants.jobs.cancel_job.failure
(count)
The count of all failed calls to cancel a job.
azure.devices_elasticpools_iothubtenants.jobs.cancel_job.success
(count)
The count of all successful calls to cancel a job.
azure.devices_elasticpools_iothubtenants.jobs.completed
(count)
The count of all completed jobs.
azure.devices_elasticpools_iothubtenants.jobs.create_direct_method_job.failure
(count)
The count of all failed creation of direct method invocation jobs.
azure.devices_elasticpools_iothubtenants.jobs.create_direct_method_job.success
(count)
The count of all successful creation of direct method invocation jobs.
azure.devices_elasticpools_iothubtenants.jobs.create_twin_update_job.failure
(count)
The count of all failed creation of twin update jobs.
azure.devices_elasticpools_iothubtenants.jobs.create_twin_update_job.success
(count)
The count of all successful creation of twin update jobs.
azure.devices_elasticpools_iothubtenants.jobs.failed
(count)
The count of all failed jobs.
azure.devices_elasticpools_iothubtenants.jobs.list_jobs.failure
(count)
The count of all failed calls to list jobs.
azure.devices_elasticpools_iothubtenants.jobs.list_jobs.success
(count)
The count of all successful calls to list jobs.
azure.devices_elasticpools_iothubtenants.jobs.query_jobs.failure
(count)
The count of all failed calls to query jobs.
azure.devices_elasticpools_iothubtenants.jobs.query_jobs.success
(count)
The count of all successful calls to query jobs.
azure.devices_elasticpools_iothubtenants.tenant_hub.requested_usage_rate
(gauge)
requested usage rate
Shown as percent
azure.devices_elasticpools_iothubtenants.twin_queries.failure
(count)
The count of all failed twin queries.
azure.devices_elasticpools_iothubtenants.twin_queries.result_size
(gauge)
The average min and max of the result size of all successful twin queries.
Shown as byte
azure.devices_elasticpools_iothubtenants.twin_queries.success
(count)
The count of all successful twin queries.
azure.devices_elasticpools.elastic_pool.requested_usage_rate
(gauge)
requested usage rate
Shown as percent
azure.insights_autoscalesettings.metric_threshold
(count)
The configured autoscale threshold when autoscale ran.
azure.insights_autoscalesettings.observed_capacity
(count)
The capacity reported to autoscale when it executed.
azure.insights_autoscalesettings.observed_metric_value
(count)
The value computed by autoscale when executed
azure.insights_autoscalesettings.scale_actions_initiated
(count)
The direction of the scale operation.
azure.locationbasedservices_accounts.latency
(gauge)
Duration of API calls
Shown as millisecond
azure.network_connections.bits_in_per_second
(rate)
Bits ingressing Azure per second
Shown as bit
azure.network_connections.bits_out_per_second
(rate)
Bits egressing Azure per second
Shown as bit
azure.network_connections.status
(gauge)
Status of Azure Network Connections metrics (deprecated)
azure.network_dnszones.query_volume
(count)
Number of queries served for a DNS zone
azure.network_dnszones.record_set_capacity_utilization
(gauge)
Percent of Record Set capacity utilized by a DNS zone
Shown as percent
azure.network_dnszones.record_set_count
(count)
Number of Record Sets in a DNS zone
azure.network_networkwatchers_connectionmonitors.average_roundtrip_ms
(gauge)
Average network round-trip time (ms) for connectivity monitoring probes sent between source and destination
Shown as millisecond
azure.network_networkwatchers_connectionmonitors.probes_failed_percent
(gauge)
% of connectivity monitoring probes failed
Shown as percent
azure.network_trafficmanagerprofiles.qps_by_endpoint
(count)
Number of times a Traffic Manager endpoint was returned in the given time frame
azure.network_virtualnetworkgateways.tunnel_average_bandwidth
(rate)
Average bandwidth of a tunnel in bytes per second
Shown as byte
azure.network_virtualnetworkgateways.tunnel_egress_bytes
(gauge)
Outgoing bytes of a tunnel
Shown as byte
azure.network_virtualnetworkgateways.tunnel_egress_packet_drop_tsmismatch
(count)
Outgoing packet drop count from traffic selector mismatch of a tunnel
azure.network_virtualnetworkgateways.tunnel_egress_packets
(count)
Outgoing packet count of a tunnel
azure.network_virtualnetworkgateways.tunnel_ingress_bytes
(gauge)
Incoming bytes of a tunnel
Shown as byte
azure.network_virtualnetworkgateways.tunnel_ingress_packet_drop_tsmismatch
(count)
Incoming packet drop count from traffic selector mismatch of a tunnel
azure.network_virtualnetworkgateways.tunnel_ingress_packets
(count)
Incoming packet count of a tunnel
azure.operationalinsights_workspaces.status
(gauge)
Status of Azure Operational Insights (deprecated)
azure.powerbidedicated_capacities.query_duration
(gauge)
DAX Query duration in last interval
Shown as millisecond
azure.powerbidedicated_capacities.query_pool_job_queue_length
(count)
Number of jobs in the queue of the query thread pool.
azure.servicefabric_clusters.status
(gauge)
Status of Azure Service Fabric (deprecated)
azure.storage.availability
(gauge)
The percentage of availability for the storage service or the specified API operation.
Shown as percent
azure.storage.egress
(gauge)
The amount of egress data, in bytes.
Shown as byte
azure.storage.ingress
(gauge)
The amount of ingress data, in bytes.
Shown as byte
azure.storage.status
(gauge)
Status of Azure Storage Integration (deprecated)
azure.storage.success_e2_e_latency
(gauge)
The average end-to-end latency of successful requests made to a storage service or the specified API operation, in milliseconds.
Shown as millisecond
azure.storage.success_server_latency
(gauge)
The average latency used by Azure Storage to process a successful request, in milliseconds.
Shown as millisecond
azure.storage.transactions
(count)
The number of requests made to a storage service or the specified API operation.
azure.storage.used_capacity
(gauge)
Account used capacity
Shown as byte
azure.usage.remaining_api_calls
(gauge)
The number of remaining api calls until a rate limit is hit
azure.web_sites_slots.app_connections
(count)
Connections
azure.web_sites_slots.average_memory_working_set
(gauge)
Average memory working set
Shown as byte
azure.web_sites_slots.average_response_time
(count)
Average Response Time
Shown as second
azure.web_sites_slots.bytes_received
(gauge)
Data In
Shown as byte
azure.web_sites_slots.bytes_sent
(gauge)
Data Out
Shown as byte
azure.web_sites_slots.cpu_time
(gauge)
CPU Time
Shown as second
azure.web_sites_slots.function_execution_count
(count)
Function Execution Count
azure.web_sites_slots.function_execution_units
(count)
Function Execution Units
azure.web_sites_slots.handles
(count)
Handle Count
azure.web_sites_slots.http101
(count)
Http 101
azure.web_sites_slots.http2xx
(count)
Http 2xx
azure.web_sites_slots.http3xx
(count)
Http 3xx
azure.web_sites_slots.http401
(count)
Http 401
azure.web_sites_slots.http403
(count)
Http 403
azure.web_sites_slots.http404
(count)
Http 404
azure.web_sites_slots.http406
(count)
Http 406
azure.web_sites_slots.http4xx
(count)
Http 4xx
azure.web_sites_slots.http5xx
(count)
Http Server Errors
azure.web_sites_slots.memory_working_set
(gauge)
Memory working set
Shown as byte
azure.web_sites_slots.requests
(count)
Requests
azure.web_sites_slots.threads
(count)
Thread Count

Événements

L’intégration Azure envoie tous vos événements Azure à votre flux d’événements Datadog.

Checks de service

L’intégration Azure n’inclut aucun check de service.

Tags

Les métriques, événements et checks de service des intégrations Azure reçoivent les tags suivants :

IntégrationEspace de nommageClés de tag Datadog
Toutes les intégrations AzureTouscloud_provider, region, kind, type, name, resource_group, tenant_name, subscription_name, subscription_id, status (le cas échéant)
Intégrations VM Azureazure.vm.*host, size, operating_system, availability_zone
Plans Azure App Serviceazure.web_serverfarms.*per_site_scaling, plan_size, plan_tier, operating_system
Applications Web et Fonctions Azure App Servicesazure.app_services.*, azure.functions.*operating_system, server_farm_id, reserved, usage_state, fx_version (applications web Linux uniquement), php_version, dot_net_framework_version, java_version, node_version, python_version
Azure SQL Databaseazure.sql_servers_databases.*license_type, max_size_mb, server_name, role, zone_redundant.
Pour les liens de réplication uniquement : state primary_server_name primary_server_region secondary_server_name secondary_server_region
Azure Load Balancerazure.network_loadbalancers.*sku_name
Utilisation et quotas Azureazure.usage.*usage_category, usage_name

Dépannage

Collecte de logs automatisée

Conflits de nommage

Lorsque des ressources Azure possèdent le même nom que l’un des paramètres par défaut, des conflits de nommage peuvent survenir. Azure n’accepte pas que des ressources partagent leur nom avec un abonnement individuel. Nous vous suggérons de renommer le paramètre par défaut avec un nom unique qui n’existe pas déjà dans l’environnement.

Par exemple, si vous possédez déjà un Event Hub datadog-eventhub, utilisez le flag -EventhubName pour changer le nom par défaut de la ressource Event Hub.

Exemple

./resource_deploy.ps1 -ApiKey <votre_clé_api> -SubscriptionId <votre_id_abonnement> -EventhubName <nouveau_nom>

Remarque : accédez à la section Paramètres facultatifs pour trouver la liste des paramètres configurables.

Remarque : si vous exécutez le script à nouveau après un conflit de nommage, il est également recommandé de supprimer tout le groupe de ressources afin de lancer une toute nouvelle exécution.

Fournisseur de ressources non enregistré

Si l’exécution de votre script échoue à cause de l’erreur L’abonnement n’est pas inscrit pour utiliser l’espace de noms ‘Microsoft.EventHub’ :

Azure possède des fournisseurs de ressources pour chacun de ses services, par exemple Microsoft.EventHub pour Event Hub Azure. Si votre abonnement Azure n’est pas enregistré auprès de l’un des fournisseurs de services requis, le script échoue. Vous pouvez résoudre ce problème en vous enregistrant auprès du fournisseur de services. Exécutez la commande suivante dans CloudShell.

Exemple

az provider register --namespace Microsoft.EventHub

Quota de logs dépassé

Vous avez bien installé le script, mais vous ne voyez toujours aucun log d’activité/plate-forme dans le Log Explorer ?

Assurez-vous que vous n’avez pas dépassé votre quota quotidien de rétention de logs.

Remarque : Il est recommandé d’attendre au moins cinq minutes après l’exécution du script avant de commencer à chercher des logs dans le Log Explorer.

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin