Configuration du pipeline Azure Monitor à la périphérie
Le pipeline Azure Monitor est un pipeline d’ingestion de données qui fournit une collecte de données constante et centralisée pour Azure Monitor. Le pipeline à la périphérie active la collecte à grande échelle et le routage des données de télémétrie avant qu’elles ne soient envoyées vers le cloud. Il peut mettre en cache les données localement et se synchroniser avec le cloud lorsque la connectivité est restaurée, et acheminer les données de télémétrie vers Azure Monitor dans les cas où le réseau est segmenté et que les données ne peuvent pas être envoyées directement au cloud. Cet article explique comment activer et configurer le pipeline à la périphérie dans votre environnement.
Vue d’ensemble
Le pipeline Azure Monitor à la périphérie est une solution conteneurisée déployée sur un cluster Kubernetes avec Arc et tire profit d’OpenTelemetry Collector comme base. Le diagramme ci-après montre les composants du pipeline à la périphérie. Un ou plusieurs flux de données écoutent les données entrantes des clients, et l’extension de pipeline transfère les données vers le cloud, en utilisant le cache local si nécessaire.
Le fichier de configuration de pipeline définit les flux de données et les propriétés du cache pour le pipeline à la périphérie. La DCR définit le schéma des données envoyées au pipeline cloud, une transformation pour filtrer ou modifier les données et la destination où les données doivent être envoyées. Chaque définition de flux de données pour la configuration du pipeline spécifie la DCR et le flux au sein de cette DCR qui traitera ces données dans le pipeline cloud.
Remarque
La liaison privée est prise en charge par le pipeline à la périphérie pour la connexion au pipeline cloud.
Les composants et configurations suivants sont nécessaires pour activer le pipeline Azure Monitor à la périphérie. Si vous utilisez le Portail Azure pour configurer le pipeline à la périphérie, alors chacun de ces composants est créé pour vous. Avec d’autres méthodes, vous devez tous les configurer.
Composant | Description |
---|---|
Extension du contrôleur de pipeline de périphérie | Extension ajoutée à votre cluster Kubernetes avec Arc pour prendre en charge les fonctionnalités de pipeline - microsoft.monitor.pipelinecontroller . |
Instance du contrôleur de pipeline de périphérie | Instance du pipeline de périphérie s’exécutant sur votre cluster Kubernetes avec Arc. |
Flux de données | Combinaison des récepteurs et des exportateurs qui s’exécutent sur l’instance de contrôleur de pipeline. Les récepteurs acceptent les données des clients et les exportateurs fournissent ces données à Azure Monitor. |
Configuration du pipeline | Fichier de configuration qui définit les flux de données pour l’instance de pipeline. Chaque flux de données inclut un récepteur et un exportateur. Le récepteur écoute les données entrantes et l’exportateur envoie les données vers la destination. |
Point de terminaison de collecte de données (DCE) | Point de terminaison où les données sont envoyées au pipeline Azure Monitor. La configuration du pipeline inclut une propriété pour l’URL du DCE afin que l’instance de pipeline sache où envoyer les données. |
Configuration | Description |
---|---|
Règle de collecte de données (DCR) | Fichier de configuration qui définit la façon dont les données sont reçues dans le pipeline cloud et où elles sont envoyées. La DCR peut également inclure une transformation pour filtrer ou modifier les données avant qu’elles ne soient envoyées à la destination. |
Configuration du pipeline | Configuration qui définit les flux de données pour l’instance de pipeline, incluant les flux de données et le cache. |
Configurations prises en charge
Distributions prises en charge
Le pipeline Azure Monitor à la périphérie est pris en charge sur les distributions Kubernetes suivantes :
- Canonical
- Cluster API Provider for Azure
- K3
- Rancher Kubernetes Engine
- VMware Tanzu Kubernetes Grid
Emplacements pris en charge
Le pipeline Azure Monitor à la périphérie est pris en charge dans les régions Azure suivantes :
- USA Est 2
- USA Ouest 2
- Europe Ouest
Prérequis
- Cluster Kubernetes avec Arc dans votre propre environnement avec une adresse IP externe. Consultez Connecter un cluster Kubernetes existant à Azure Arc pour plus d’informations sur l’activation d’Arc pour un cluster.
- Le cluster Kubernetes avec Arc doit avoir les fonctionnalités d’emplacements personnalisés activées. Consultez Créer et gérer des emplacements personnalisés sur Kubernetes avec Azure Arc.
- Espace de travail Log Analytics dans Azure Monitor pour recevoir les données du pipeline à la périphérie. Pour plus d’informations sur la création d’un espace de travail, consultez Créer un espace de travail Log Analytics dans le Portail Azure.
- Les fournisseurs de ressources suivants doivent être inscrits dans votre abonnement Azure. Voir Fournisseurs et types de ressources Azure.
- Microsoft.Insights
- Microsoft.Monitor
Workflow
Vous n’avez pas besoin d’une compréhension détaillée des différentes étapes effectuées par le pipeline Azure Monitor pour le configurer en utilisant le Portail Azure. Vous aurez peut-être besoin d’une compréhension plus détaillée de celles-ci si vous utilisez une autre méthode d’installation, ou si vous devez effectuer une configuration plus avancée comme la transformation des données avant stockage dans leur destination.
Les tableaux et diagrammes suivants décrivent les étapes détaillées et les composants du processus de collecte des données à l’aide du pipeline à la périphérie, et leur transmission au pipeline cloud pour stockage dans Azure Monitor. La configuration requise pour chacun de ces composants est également incluse dans les tableaux.
Étape | Action | Configuration de prise en charge |
---|---|---|
1. | Le client envoie des données au récepteur du pipeline de périphérie. | Le client est configuré avec l’adresse IP et le port du récepteur du pipeline de périphérie et envoie les données au format attendu pour le type de récepteur. |
2. | Le récepteur transfère les données à l’exportateur. | Le récepteur et l’exportateur sont configurés dans le même pipeline. |
3. | L’exportateur tente d’envoyer les données au pipeline cloud. | L’exportateur dans la configuration du pipeline inclut l’URL du DCE, un identificateur unique pour la DCR et le flux dans la DCR qui définit comment les données seront traitées. |
3a. | L’exportateur stocke les données dans le cache local s’il ne peut pas se connecter au DCE. | Le volume persistant pour le cache et la configuration du cache local sont activés dans la configuration du pipeline. |
Étape | Action | Configuration de prise en charge |
---|---|---|
4. | Le pipeline cloud accepte les données entrantes. | La DCR inclut une définition de schéma pour le flux entrant qui doit correspondre au schéma des données provenant du pipeline à la périphérie. |
5. | Le pipeline cloud applique une transformation aux données. | La DCR inclut une transformation qui filtre ou modifie les données avant qu’elles ne soient envoyées à la destination. La transformation peut filtrer les données, supprimer ou ajouter des colonnes ou modifier complètement leur schéma. La sortie de la transformation doit correspondre au schéma de la table de destination. |
6. | Le pipeline cloud envoie les données à la destination. | La DCR inclut une destination qui spécifie l’espace de travail Log Analytics et la table où les données seront stockées. |
Réseau segmenté
La segmentation de réseau est un modèle dans lequel vous utilisez des périmètres définis par logiciel pour créer une posture de sécurité différente pour les différentes parties de votre réseau. Dans ce modèle, il peut exister un segment réseau qui ne peut pas se connecter à Internet ou à d’autres segments réseau. Vous pouvez utiliser le pipeline à la périphérie pour collecter des données depuis ces segments réseau et les envoyer au pipeline cloud.
Pour utiliser le pipeline Azure Monitor dans une configuration de réseau en couches, vous devez ajouter les entrées suivantes à la liste d’autorisation du cluster Kubernetes avec Arc. Consultez Configurer la gestion de réseau en couches Azure IoT (préversion) sur un cluster de niveau 4.
- destinationUrl: "*.ingest.monitor.azure.com"
destinationType: external
- destinationUrl: "login.windows.net"
destinationType: external
Créer une table dans un espace de travail Log Analytics
Avant de configurer le processus de collecte de données pour le pipeline à la périphérie, vous devez créer une table dans l’espace de travail Log Analytics pour recevoir les données. Il doit s’agir d’une table personnalisée, car les tables intégrées ne sont actuellement pas prises en charge. Le schéma de la table doit correspondre aux données qu’elle reçoit, mais il existe plusieurs étapes dans le processus de collecte où vous pouvez modifier les données entrantes. Par conséquent, le schéma de la table n’a pas besoin de correspondre aux données sources que vous collectez. La seule condition requise pour la table dans l’espace de travail Log Analytics est qu’elle ait une colonne TimeGenerated
.
Pour plus d’informations sur les différentes méthodes de création d’une table, consultez Ajouter ou supprimer des tables et des colonnes dans les journaux Azure Monitor. Par exemple, utilisez la commande CLI ci-dessous pour créer une table avec les trois colonnes appelées Body
, TimeGenerated
et SeverityText
.
az monitor log-analytics workspace table create --workspace-name my-workspace --resource-group my-resource-group --name my-table_CL --columns TimeGenerated=datetime Body=string SeverityText=string
Activer le cache
Les appareils de périphérie dans certains environnements peuvent rencontrer une connectivité intermittente en raison de divers facteurs comme une congestion du réseau, des interférences du signal, une panne de courant ou la mobilité. Dans ces environnements, vous pouvez configurer le pipeline à la périphérie pour mettre en cache les données en créant un volume persistant dans votre cluster. Le processus pour le faire varie en fonction de votre environnement spécifique, mais la configuration doit répondre aux exigences suivantes :
- L’espace de noms de métadonnées doit être identique à l’instance spécifiée du pipeline Azure Monitor.
- Le mode d’accès doit prendre en charge
ReadWriteMany
.
Une fois le volume créé dans l’espace de noms approprié, configurez-le en utilisant les paramètres du fichier de configuration du pipeline ci-dessous.
Attention
Chaque réplica du pipeline de périphérie stocke les données dans un emplacement du volume persistant spécifique à ce réplica. La diminution du nombre de réplicas pendant que le cluster est déconnecté du cloud empêche que les données ne soient renvoyées lors de la restauration de la connectivité.
Les données sont récupérées à partir du cache à l’aide de la méthode Premier entré, premier sorti (FIFO). Toutes les données antérieures à 48 heures seront ignorées.
Activer et configurer un pipeline
Les options actuelles pour l’activation et la configuration sont détaillées dans les onglets ci-dessous.
Configurer le pipeline en utilisant le Portail Azure
Lorsque vous utilisez le Portail Azure pour activer et configurer le pipeline, tous les composants requis sont créés en fonction de vos sélections. Cela vous permet de réduire la complexité de créer chaque composant individuellement, mais vous pourriez avoir besoin d’utiliser d’autres méthodes.
Effectuez l’une des opérations suivantes dans le Portail Azure pour lancer le processus d’installation du pipeline Azure Monitor :
- Dans le menu Pipelines Azure Monitor (préversion), cliquez sur Créer.
- Dans le menu de votre cluster Kubernetes avec Arc, sélectionnez Extensions, puis ajoutez l’Extension de pipeline Azure Monitor (préversion).
L’onglet Essentiel vous invite à entrer les informations suivantes pour déployer l’extension et l’instance de pipeline sur votre cluster.
Les paramètres de cet onglet sont décrits dans le tableau suivant.
Propriété | Description |
---|---|
Nom de l’instance | Nom de l’instance de pipeline Azure Monitor. Doit être unique pour l’abonnement. |
Abonnement | Abonnement Azure dans lequel créer l’instance de pipeline. |
Resource group | Groupe de ressources pour créer l’instance de pipeline. |
Nom du cluster | Sélectionnez votre cluster Kubernetes avec Arc sur lequel le pipeline sera installé. |
Emplacement personnalisé | Emplacement personnalisé de votre cluster Kubernetes avec Arc. Ceci sera rempli automatiquement avec le nom d’un emplacement personnalisé qui sera créé pour votre cluster, ou vous pouvez sélectionner un autre emplacement personnalisé dans le cluster. |
L’onglet Flux de données vous permet de créer et de modifier des flux de données pour l’instance de pipeline. Chaque flux de données inclut les informations suivantes :
Les paramètres de cet onglet sont décrits dans le tableau suivant.
Propriété | Description |
---|---|
Nom | Nom du flux de données. Doit être unique pour ce pipeline. |
Type de source | Type de données collectées. Les types de ressource suivants sont pris en charge : - Syslog - OTLP |
Port | Port sur lequel le pipeline écoute les données entrantes. Si deux flux de données utilisent le même port, ils reçoivent et traitent tous deux les données. |
Espace de travail Log Analytics | Espace de travail Log Analytics vers lequel envoyer les données. |
Nom de table | Nom de la table dans l’espace de travail Log Analytics vers laquelle envoyer les données. |
Vérifier la configuration
Vérifier les composants du pipeline en cours d’exécution dans le cluster
Dans le Portail Azure, accédez au menu Services Kubernetes et sélectionnez votre cluster Kubernetes avec Arc. Sélectionnez Services et entrées et vérifiez que vous voyez les services suivants :
- <nom du pipeline>-external-service
- <nom du pipeline>-service
Cliquez sur l’entrée pour <nom du pipeline>-external-service et notez l’adresse IP et le port dans la colonne Points de terminaison. Il s’agit de l’adresse IP externe et du port auxquels vos clients enverront des données. Consultez Récupérer le point de terminaison d’entrée pour récupérer cette adresse à partir du client.
Vérifier la pulsation
Chaque pipeline configuré dans votre instance de pipeline enverra un enregistrement de pulsation à la table Heartbeat
dans votre espace de travail Log Analytics toutes les minutes. Le contenu de la colonne OSMajorVersion
doit correspondre au nom de votre instance de pipeline. S’il existe plusieurs espaces de travail dans l’instance de pipeline, alors le premier configuré sera utilisé.
Récupérez les enregistrements de pulsation à l’aide d’une requête de journal comme dans l’exemple suivant :
Configuration de client
Une fois l’extension et l’instance de pipeline de périphérie installées, vous devez configurer vos clients pour qu’ils envoient des données au pipeline.
Récupérer le point de terminaison d’entrée
Chaque client nécessite l’adresse IP externe du service de pipeline Azure Monitor. Utilisez la commande suivante pour récupérer cette adresse :
kubectl get services -n <namespace where azure monitor pipeline was installed>
- Si l’application produisant des journaux est externe au cluster, copiez la valeur external-ip du service <nom de pipeline>-service ou <nom de pipeline>-external-service avec le type d’équilibreur de charge.
- Si l’application se trouve sur un pod au sein du cluster, copiez la valeur cluster-ip.
Remarque
Si le champ external-ip est défini sur en attente, vous devrez configurer une adresse IP externe pour cette entrée manuellement, en fonction de la configuration de votre cluster.
Client | Description |
---|---|
syslog | Mettre à jour les clients Syslog pour qu’ils envoient des données au point de terminaison du pipeline et au port de votre flux de données Syslog. |
OTLP | Le pipeline de périphérie Azure Monitor expose un point de terminaison OTLP basé sur gRPC sur le port 4317. La configuration de votre instrumentation pour envoyer vers ce point de terminaison OTLP dépendra de la bibliothèque d’instrumentation elle-même. Consultez Point de terminaison OTLP ou Collecteur pour la documentation OpenTelemetry. La méthode de variable d’environnement est documentée à l’adresse Configuration de l’exportateur OTLP. |
Vérifier les données
La dernière étape consiste à vérifier que les données sont reçues dans l’espace de travail Log Analytics. Vous pouvez effectuer cette vérification en exécutant une requête dans l’espace de travail Log Analytics pour récupérer des données de la table.