Configurer la collecte de données et l’optimisation des coûts dans Container Insights à l’aide d’une règle de collecte de données

Cet article explique comment configurer la collecte de données dans Container Insights à l’aide de la règle de collecte de données (DCR) pour votre cluster Kubernetes. Cela inclut des configurations prédéfinies pour optimiser vos coûts. Une DCR est créée lorsque vous intégrez un cluster à Container Insights. Cette DCR est utilisée par l’agent conteneurisé pour définir la collecte de données pour le cluster.

La DCR est principalement utilisée pour configurer la collecte des données de performances et les données d’inventaire et pour configurer l’optimisation des coûts.

La configuration spécifique que vous pouvez effectuer avec la DCR inclut :

  • Activer/désactiver le filtrage de collecte et des espaces de noms pour les données de performances et d’inventaire
  • Définir l’intervalle de collecte pour les données de performances et d’inventaire
  • Activer/désactiver la collecte de Syslog
  • Sélectionner le schéma de journal

Important

La configuration complète de la collecte de données dans Container Insights peut nécessiter une modification de la DCR et du ConfigMap pour le cluster, car chaque méthode autorise la configuration d’un ensemble différent de paramètres.

Consultez Configurer la collecte de données dans Container Insights à l’aide de ConfigMap pour obtenir la liste des paramètres et le processus de configuration de la collecte de données à l’aide de ConfigMap.

Prérequis

Configurer la collecte de données

La DCR créée lorsque vous activez Container Insights est nommée MSCI-<cluster-region>-<cluster-name>. Vous pouvez l’afficher dans le portail Azure en sélectionnant l’option Règles de collecte de données dans le menu Superviser dans le portail Azure. Au lieu de modifier directement la DCR, vous devez utiliser l’une des méthodes décrites ci-dessous pour configurer la collecte de données. Consultez les Paramètres de collecte de données pour plus d’informations sur les différents paramètres disponibles utilisés par chaque méthode.

Avertissement

L’expérience Container Insights par défaut dépend de tous les flux de données existants. La suppression d’un ou plusieurs flux par défaut rend l’expérience Container Insights indisponible. Vous devez utiliser d’autres outils tels que les tableaux de bord Grafana et les requêtes de journal afin d’analyser les données collectées.

Vous pouvez utiliser le Portail Azure pour activer l’optimisation des coûts sur votre cluster existant une fois Container Insights activé ou activer Container Insights sur le cluster avec l’optimisation des coûts.

  1. Sélectionnez le cluster dans le Portail Azure.

  2. Sélectionnez l’option Insights dans la section Monitoring du menu.

  3. Si Container Insights a déjà été activé sur le cluster, sélectionnez le bouton Paramètres d’analyse. Si ce n’est pas le cas, sélectionnez Configurer Azure Monitor et consultez Activer l’analyse sur votre cluster Kubernetes avec Azure Monitor pour plus d’informations sur l’activation de l’analyse.

    Capture d’écran du cluster AKS avec le bouton Paramètres d’analyse.

  4. Pour Kubernetes avec AKS et Arc, sélectionnez Utiliser l’identité managée si vous n’avez pas encore migré le cluster vers l’authentification d’identité managée.

  5. Sélectionnez l’une des présélections de coût décrites dans Présélections de coût.

    Capture d’écran montrant les options d’intégration.

  6. Si vous souhaitez personnaliser les paramètres, sélectionnez Modifier les paramètres de collection. Consultez les paramètres de collecte de données pour plus d’informations sur chaque paramètre. Pour plus d’informations sur les données collectées, consultez Données collectées ci-dessous.

    Capture d’écran montrant les options des paramètres de collecte.

  7. Cliquez sur Configurer pour enregistrer les paramètres.

Présélections de coûts

Lorsque vous utilisez le Portail Azure pour configurer l’optimisation des coûts, vous pouvez sélectionner parmi les configurations prédéfinies suivantes. Vous pouvez sélectionner l’un de ces paramètres ou fournir vos propres paramètres personnalisés. Par défaut, Container Insights utilise la présélection Standard.

Présélection des coûts Fréquence de collecte Filtres d’espace de noms Collecte de messages Syslog Données collectées
Standard 1 m Aucun Non activé Toutes les tables standard des insights de conteneur
Optimisation des coûts 5 m Exclut kube-system, gatekeeper-system, azure-arc Non activé Toutes les tables standard des insights de conteneur
syslog 1 m Aucun Activée par défaut Toutes les tables standard des insights de conteneur
Journaux et événements 1 m Aucun Non activé ContainerLog/ContainerLogV2
KubeEvents
KubePodInventory

Données collectées

L’option Données collectées vous permet de sélectionner les tables remplies pour le cluster. Il s’agit de l’équivalent du paramètre streams lors de l’exécution de la configuration avec l’interface CLI ou ARM. Si vous sélectionnez une option autre que Toutes les données (par défaut), l’expérience Container Insights devient indisponible. Vous devez utiliser Grafana ou d’autres méthodes pour analyser les données collectées.

Capture d’écran présentant les options des données collectées.

Regroupement Tableaux Notes
Tous (valeur par défaut) Toutes les tables standard des insights de conteneur Requis pour activer les visualisations de Container Insights par défaut
Performances Niveau de performance, InsightsMetrics
Journaux et événements ContainerLog ou ContainerLogV2, KubeEvents, KubePodInventory Recommandé si vous avez activé les métriques Prometheus managées
Charges de travail, déploiements et HPA InsightsMetrics, KubePodInventory, KubeEvents, ContainerInventory, ContainerNodeInventory, KubeNodeInventory, KubeServices
Volumes persistants InsightsMetrics, KubePVInventory

Configurer des paramètres de collecte de données

Le tableau suivant décrit les paramètres de collecte de données pris en charge et leur nom utilisé pour différentes options d’intégration.

Nom Description
Fréquence de collecte
Interface CLI : interval
ARM : dataCollectionInterval
Détermine la fréquence à laquelle l’agent collecte les données. Les valeurs valides sont 1 m à 30 m dans les intervalles de 1 m. La valeur par défaut est de 1 m. Si la valeur est en dehors de la plage autorisée, elle devient par défaut 1 m.
Filtrage des espaces de noms
Interface CLI : namespaceFilteringMode
ARM : namespaceFilteringModeForDataCollection
Inclure : collecte uniquement les données des valeurs du champ espaces de noms.
Exclure : collecte les données de tous les espaces de noms, à l’exception des valeurs du champ espaces de noms.
Désactivé : ignore les sélections d’espaces de noms et collecte les données sur tous les espaces de noms.
Filtrage des espaces de noms
Interface CLI : namespaces
ARM : namespacesForDataCollection
Tableau d’espaces de noms Kubernetes séparés par des virgules pour collecter des données d’inventaire et de performances en fonction de namespaceFilteringMode.
Par exemple, espaces de noms = ["kube-system », « default"] avec un paramètre Inclure collecte uniquement ces deux espaces de noms. Avec un paramètre Exclure, l’agent collecte des données de tous les autres espaces de noms à l’exception de kube-system et par défaut. Avec un paramètre Désactivé, l’agent collecte des données à partir de tous les espaces de noms, y compris kube-system et par défaut. Les espaces de noms non valides et non reconnus sont ignorés.
Activer ContainerLogV2
Interface CLI : enableContainerLogV2
ARM : enableContainerLogV2
Indicateur booléen permettant d’activer le schéma ContainerLogV2. Si la valeur est true, les journaux stdout/stderr sont ingérés à la table ContainerLogV2. Si ce n’est pas le cas, les journaux de conteneur sont ingérés à la table ContainerLog, sauf indication contraire dans ConfigMap. Lorsque vous spécifiez les flux individuels, vous devez inclure la table correspondante pour ContainerLog ou ContainerLogV2.
Données collectées
Interface CLI : streams
ARM : streams
Tableau de flux de table d’insights de conteneur. Consultez les flux pris en charge ci-dessus pour le mappage de table.

Tables et métriques applicables

Les paramètres de fréquence de collecte et de filtrage d’espace de noms ne s’appliquent pas à toutes les données Container Insights. Les tableaux suivants répertorient les tableaux de l’espace de travail Log Analytics utilisés par Container Insights et les métriques qu’il collecte, ainsi que les paramètres qui s’appliquent à chacun d’eux.

Remarque

Cette fonctionnalité configure les paramètres de toutes les tables Container Insights, à l’exception de ContainerLog et ContainerLogV2. Pour configurer les paramètres de ces tables, mettez à jour ConfigMap décrit dans les paramètres de collecte de données de l’agent.

Nom de table Intervalle Espaces de noms Notes
ContainerInventory Oui Oui
ContainerNodeInventory Oui Non Le paramètre de collecte de données pour les espaces de noms n’est pas applicable, car le nœud Kubernetes n’est pas une ressource délimitée à l’espace de noms
KubeNodeInventory Oui Non Le paramètre de collecte de données pour les espaces de noms n’est pas applicable, car le nœud Kubernetes n’est pas une ressource délimitée à l’espace de noms
KubePodInventory Oui Oui
KubePVInventory Oui Oui
KubeServices Oui Oui
KubeEvents Non Oui Le paramètre de collecte de données pour intervalle n’est pas applicable aux événements Kubernetes
Perf Oui Oui Le paramètre de collecte de données pour les espaces de noms n’est pas applicable aux métriques liées au nœud Kubernetes, car le nœud Kubernetes n’est pas un objet délimité à l’espace de noms.
InsightsMetrics Oui Oui Les paramètres de collecte de données s’appliquent uniquement aux métriques qui collectent les espaces de noms suivants : container.azm.ms/kubestate, container.azm.ms/pv et container.azm.ms/gpu
Espace de noms de la métrique Intervalle Espaces de noms Notes
Insights.container/nodes Oui Non Node (nœud) n’est pas une ressource délimitée à l’espace de noms
Insights.container/pods Oui Oui
Insights.container/containers Oui Oui
Insights. Container/persistentvolumes Oui Oui

Valeurs de flux

Lorsque vous spécifiez les tables à collecter à l’aide de l’interface CLI ou ARM, vous spécifiez un nom de flux qui correspond à une table spécifique dans l’espace de travail Log Analytics. Le tableau suivant répertorie le nom de flux pour chaque table.

Remarque

Si vous connaissez la structure d’une règle de collecte de données, les noms de flux de cette table sont spécifiés dans la section dataFlows de la DCR.

STREAM Table d’insights de conteneur
Microsoft-ContainerInventory ContainerInventory
Microsoft-ContainerLog ContainerLog
Microsoft-ContainerLogV2 ContainerLogV2
Microsoft-ContainerNodeInventory ContainerNodeInventory
Microsoft-InsightsMetrics InsightsMetrics
Microsoft-KubeEvents KubeEvents
Microsoft-KubeMonAgentEvents KubeMonAgentEvents
Microsoft-KubeNodeInventory KubeNodeInventory
Microsoft-KubePodInventory KubePodInventory
Microsoft-KubePVInventory KubePVInventory
Microsoft-KubeServices KubeServices
Microsoft-Perf Perf

Impact sur les visualisations et les alertes

Si vous utilisez actuellement les tables ci-dessus pour d’autres alertes ou graphiques personnalisés, la modification de vos paramètres de collecte de données peut dégrader ces expériences. Si vous excluez des espaces de noms ou réduisez la fréquence de collecte de données, évaluez vos alertes, tableaux de bord et classeurs existants à l’aide de ces données.

Pour rechercher les alertes qui font référence à ces tables, exécutez la requête Azure Resource Graph suivante :

resources
| where type in~ ('microsoft.insights/scheduledqueryrules') and ['kind'] !in~ ('LogToMetric')
| extend severity = strcat("Sev", properties["severity"])
| extend enabled = tobool(properties["enabled"])
| where enabled in~ ('true')
| where tolower(properties["targetResourceTypes"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["targetResourceType"]) matches regex 'microsoft.operationalinsights/workspaces($|/.*)?' or tolower(properties["scopes"]) matches regex 'providers/microsoft.operationalinsights/workspaces($|/.*)?'
| where properties contains "Perf" or properties  contains "InsightsMetrics" or properties  contains "ContainerInventory" or properties  contains "ContainerNodeInventory" or properties  contains "KubeNodeInventory" or properties  contains"KubePodInventory" or properties  contains "KubePVInventory" or properties  contains "KubeServices" or properties  contains "KubeEvents" 
| project id,name,type,properties,enabled,severity,subscriptionId
| order by tolower(name) asc

Étapes suivantes