Recherche et analyse des connexions CloudWatch - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Recherche et analyse des connexions CloudWatch

Une fois que vos journaux et statistiques ont été capturés dans un format et un emplacement cohérents, vous pouvez les rechercher et les analyser pour améliorer l'efficacité opérationnelle, en plus d'identifier et de résoudre les problèmes. Nous vous recommandons de capturer vos journaux dans un format bien formé (par exemple, JSON) afin de faciliter la recherche et l'analyse de vos journaux. La plupart des charges de travail utilisent un ensemble deAWS ressources telles que le réseau, le calcul, le stockage et les bases de données. Dans la mesure du possible, vous devez analyser collectivement les indicateurs et les journaux de ces ressources et les corréler afin de surveiller et de gérer efficacement toutes vosAWS charges de travail.

CloudWatch fournit plusieurs fonctionnalités pour aider à analyser les journaux et les indicateurs, telles que CloudWatch Application Insights pour définir et surveiller collectivement les métriques et les journaux d'une application sur différentesAWS ressources, la détection desCloudWatch anomalies pour détecter les anomalies pour votre des statistiques et des informations deCloudWatch journal pour rechercher et analyser de façon interactive vos données de journal dans CloudWatch Logs.

Surveillez et analysez collectivement les applications avec CloudWatch Application Insights

Les propriétaires d'applications peuvent utiliser Amazon CloudWatch Application Insights pour configurer la surveillance et l'analyse automatiques des charges de travail. Cela peut être configuré en plus de la surveillance standard au niveau du système configurée pour toutes les charges de travail d'un compte. La mise en place d'une surveillance via CloudWatch Application Insights peut également aider les équipes chargées des applications à s'aligner de manière proactive sur les opérations et à réduire le temps moyen de restauration (MTTR). CloudWatch Application Insights peut aider à réduire les efforts nécessaires pour établir la journalisation et la surveillance au niveau des applications. Il fournit également un cadre basé sur des composants qui aide les équipes à répartir les responsabilités en matière de journalisation et de surveillance.

CloudWatch Application Insights utilise des groupes de ressources pour identifier les ressources qui doivent être surveillées collectivement en tant qu'application. Les ressources prises en charge dans le groupe de ressources deviennent des composants définis individuellement de votre CloudWatch application Application Insights. Chaque composant de votre CloudWatch application Application Insights possède ses propres journaux, indicateurs et alarmes.

Pour les journaux, vous définissez l'ensemble de modèles de log qui doit être utilisé pour le composant et dans votre CloudWatch application Application Insights. Un ensemble de modèles de log est un ensemble de modèles de log à rechercher en fonction d'expressions régulières, ainsi que d'une gravité faible, moyenne ou élevée lorsque le modèle est détecté. Pour les indicateurs, vous choisissez les indicateurs à surveiller pour chaque composant à partir d'une liste de métriques spécifiques au service et prises en charge. Pour les alarmes, CloudWatch Application Insights crée et configure automatiquement des alarmes standard ou de détection d'anomalies pour les indicateurs surveillés. CloudWatch Application Insights dispose de configurations automatiques pour les métriques et la capture de journaux pour les technologies décrites dans les journaux et les métriques prises en charge par CloudWatch Application Insights dans la CloudWatch documentation. Le diagramme suivant montre les relations entre les composants CloudWatch Application Insights et leurs configurations de journalisation et de surveillance. Chaque composant a défini ses propres journaux et métriques à surveiller à l'aide de CloudWatch journaux et de métriques.

CloudWatch Application Insights dispose d'une configuration automatique spécifique à la technologie pour les mesures et la capture des journaux.

Les instances EC2 surveillées par CloudWatch Application Insights nécessitent Systems Manager, CloudWatch des agents et des autorisations. Pour plus d'informations à ce sujet, consultez la section Conditions préalables à la configuration d'une application avec CloudWatch Application Insights dans la CloudWatch documentation. CloudWatch Application Insights utilise Systems Manager pour installer et mettre à jour l' CloudWatch agent. Les métriques et les journaux configurés dans CloudWatch Application Insights créent un fichier de configuration d' CloudWatch agent qui est stocké dans un paramètre Systems Manager avec leAmazonCloudWatch-ApplicationInsights-SSMParameter préfixe de chaque composant CloudWatch Application Insights. Cela entraîne l'ajout d'un fichier de configuration d' CloudWatch agent distinct au répertoire de configuration de l' CloudWatch agent sur l'instance EC2. Une commande Systems Manager est exécutée pour ajouter cette configuration à la configuration active de l'instance EC2. L'utilisation CloudWatch d'Application Insights n'a aucune incidence sur les paramètres de configuration des CloudWatch agents existants. Vous pouvez utiliser CloudWatch Application Insights en plus de vos propres configurations d' CloudWatch agent au niveau du système et de l'application. Cependant, vous devez vous assurer que les configurations ne se chevauchent pas.

Réalisation d'une analyse des CloudWatch journaux avec Logs Insights

CloudWatch Logs Insights facilite la recherche dans plusieurs groupes de journaux à l'aide d'un langage de requête simple. Si les journaux de votre application sont structurés au format JSON, CloudWatch Logs Insights découvre automatiquement les champs JSON dans vos flux de journaux dans plusieurs groupes de journaux. Vous pouvez utiliser CloudWatch Logs Insights pour analyser les journaux de votre application et de votre système, ce qui enregistre vos requêtes pour une utilisation future. La syntaxe de requête de CloudWatch Logs Insights prend en charge des fonctions telles que l'agrégation avec des fonctions, par exemple sum (), avg (), count (), min () et max (), qui peuvent être utiles pour résoudre les problèmes de vos applications ou analyser les performances.

Si vous utilisez le format de métrique intégré pour créer des CloudWatch métriques, vous pouvez interroger vos journaux de format de métrique intégré afin de générer des métriques uniques à l'aide des fonctions d'agrégation prises en charge. Cela permet de réduire vos coûts de CloudWatch surveillance en capturant les points de données nécessaires pour générer des indicateurs spécifiques selon les besoins, au lieu de les capturer activement en tant que métriques personnalisées. Cela est particulièrement efficace pour les dimensions présentant une cardinalité élevée qui entraîneraient un grand nombre de mesures. CloudWatch Container Insights adopte également cette approche et collecte des données de performance détaillées, mais ne génère que CloudWatch des métriques pour un sous-ensemble de ces données.

Par exemple, l'entrée de métrique intégrée suivante génère uniquement un ensemble limité de CloudWatch mesures à partir des données de mesure capturées dans l'instruction de format métrique intégré :

{ "AutoScalingGroupName": "eks-e0bab7f4-fa6c-64ba-dbd9-094aee6cf9ba", "CloudWatchMetrics": [ { "Metrics": [ { "Unit": "Count", "Name": "pod_number_of_container_restarts" } ], "Dimensions": [ [ "PodName", "Namespace", "ClusterName" ] ], "Namespace": "ContainerInsights" } ], "ClusterName": "eksdemo", "InstanceId": "i-03b21a16b854aa4ca", "InstanceType": "t3.medium", "Namespace": "amazon-cloudwatch", "NodeName": "ip-172-31-10-211.ec2.internal", "PodName": "cloudwatch-agent", "Sources": [ "cadvisor", "pod", "calculated" ], "Timestamp": "1605111338968", "Type": "Pod", "Version": "0", "pod_cpu_limit": 200, "pod_cpu_request": 200, "pod_cpu_reserved_capacity": 10, "pod_cpu_usage_system": 3.268605094109382, "pod_cpu_usage_total": 8.899539221131045, "pod_cpu_usage_user": 4.160042847048305, "pod_cpu_utilization": 0.44497696105655227, "pod_cpu_utilization_over_pod_limit": 4.4497696105655224, "pod_memory_cache": 4096, "pod_memory_failcnt": 0, "pod_memory_hierarchical_pgfault": 0, "pod_memory_hierarchical_pgmajfault": 0, "pod_memory_limit": 209715200, "pod_memory_mapped_file": 0, "pod_memory_max_usage": 43024384, "pod_memory_pgfault": 0, "pod_memory_pgmajfault": 0, "pod_memory_request": 209715200, "pod_memory_reserved_capacity": 5.148439982463127, "pod_memory_rss": 38481920, "pod_memory_swap": 0, "pod_memory_usage": 42803200, "pod_memory_utilization": 0.6172094650851303, "pod_memory_utilization_over_pod_limit": 11.98828125, "pod_memory_working_set": 25141248, "pod_network_rx_bytes": 3566.4174629544723, "pod_network_rx_dropped": 0, "pod_network_rx_errors": 0, "pod_network_rx_packets": 3.3495665260575094, "pod_network_total_bytes": 4283.442421354973, "pod_network_tx_bytes": 717.0249584005006, "pod_network_tx_dropped": 0, "pod_network_tx_errors": 0, "pod_network_tx_packets": 2.6964010534762948, "pod_number_of_container_restarts": 0, "pod_number_of_containers": 1, "pod_number_of_running_containers": 1, "pod_status": "Running" }

Cependant, vous pouvez interroger les indicateurs capturés pour obtenir des informations supplémentaires. Par exemple, vous pouvez exécuter la requête suivante au niveau des 20 derniers espaces présentant des erreurs de page de mémoire :

fields @timestamp, @message | filter (pod_memory_pgfault > 0) | sort @timestamp desc | limit 20

Réalisation d'une analyse des journaux avec Amazon OpenSearch Service

CloudWatch s'intègre à Amazon OpenSearch Service en vous permettant de diffuser les données de CloudWatch journal des groupes de journaux vers un cluster Amazon OpenSearch Service de votre choix avec un filtre d'abonnement. Vous pouvez l'utiliser CloudWatch pour la capture et l'analyse des journaux et des indicateurs principaux, puis l'augmenter avec Amazon OpenSearch Service dans les cas d'utilisation suivants :

  • Contrôle précis de l'accès aux données : Amazon OpenSearch Service vous permet de limiter l'accès aux données au niveau du terrain et aide à anonymiser les données dans les champs en fonction des autorisations des utilisateurs. C'est utile si vous souhaitez obtenir de l'aide pour résoudre les problèmes sans exposer de données sensibles.

  • Regroupez et recherchez les journaux sur plusieurs comptes, régions et infrastructures : vous pouvez diffuser vos journaux depuis plusieurs comptes et régions vers un cluster Amazon OpenSearch Service commun. Vos équipes opérationnelles centralisées peuvent analyser les tendances, les problèmes et effectuer des analyses sur l'ensemble des comptes et des régions. Le streaming CloudWatch des journaux vers Amazon OpenSearch Service vous permet également de rechercher et d'analyser une application multirégionale dans un emplacement central.

  • Expédiez et enrichissez les journaux directement à Amazon OpenSearch Service en utilisant ElasticSearch des agents : les composants de votre application et de votre pile technologique peuvent utiliser des systèmes d'exploitation qui ne sont pas pris en charge par l' CloudWatch agent. Vous souhaiterez peut-être également enrichir et transformer les données de journal avant qu'elles ne soient envoyées à votre solution de journalisation. Amazon OpenSearch Service prend en charge les clients Elasticsearch standard tels que les expéditeurs de données de la famille Elastic Beats et Logstash, qui prennent en charge l'enrichissement et la transformation des journaux avant leur envoi à Amazon OpenSearch Service.

  • La solution de gestion des opérations existante utilise uneElasticSearch pile Logstash, Kibana (ELK) pour la journalisation et la surveillance. Vous avez peut-être déjà investi de manière significative dans Amazon OpenSearch Service ou Elasticsearch open source avec de nombreuses charges de travail déjà configurées. Vous pouvez également avoir des tableaux de bord opérationnels créés dans Kibana que vous souhaitez continuer à utiliser.

Si vous ne prévoyez pas d'utiliser les CloudWatch journaux, vous pouvez utiliser les agents, les pilotes de journal et les bibliothèques pris en charge par Amazon OpenSearch Service (par exemple, Fluent Bit, Fluentd, logstash et Open Distro pour ElasticSearch l'API) pour envoyer vos journaux directement à Amazon OpenSearch Service et les contourner CloudWatch. Cependant, vous devez également mettre en œuvre une solution pour capturer les journaux générés parAWS les services. CloudWatch Logs est la principale solution de capture de journaux pour de nombreuxAWS services et plusieurs services créent automatiquement de nouveaux groupes de journaux dans CloudWatch. Par exemple, Lambda crée un nouveau groupe de journaux pour chaque fonction Lambda. Vous pouvez configurer un filtre d'abonnement pour qu'un groupe de journaux diffuse ses journaux vers Amazon OpenSearch Service. Vous pouvez configurer manuellement un filtre d'abonnement pour chaque groupe de journaux individuel que vous souhaitez diffuser vers Amazon OpenSearch Service. Vous pouvez également déployer une solution qui inscrit automatiquement les nouveaux groupes de journaux aux ElasticSearch clusters. Vous pouvez diffuser les journaux vers un ElasticSearch cluster du même compte ou d'un compte centralisé. Le streaming des journaux vers un ElasticSearch cluster dans le même compte aide les propriétaires de charges de travail à mieux analyser et prendre en charge leurs charges de travail.

Vous devriez envisager de configurer un ElasticSearch cluster dans un compte centralisé ou partagé pour agréger les journaux de vos comptes, régions et applications. Par exemple,AWS Control Tower configurez un compte Log Archive qui est utilisé pour la journalisation centralisée. Lorsqu'un nouveau compte est créé dansAWS Control Tower, sesAWS Config journauxAWS CloudTrail et sont transmis à un compartiment S3 de ce compte centralisé. La journalisation instrumentée parAWS Control Tower est destinée à la configuration, aux modifications et à la journalisation des audits.

Pour mettre en place une solution centralisée d'analyse des journaux d'applications avec Amazon OpenSearch Service, vous pouvez déployer un ou plusieurs clusters Amazon OpenSearch Service centralisés sur votre compte de journalisation centralisé et configurer des groupes de journaux sur vos autres comptes pour diffuser les journaux vers le OpenSearch service Amazon centralisé. clusters.

Vous pouvez créer des clusters Amazon OpenSearch Service distincts pour gérer différentes applications ou couches de votre architecture cloud qui peuvent être distribuées sur vos comptes. L'utilisation de clusters Amazon OpenSearch Service distincts vous permet de réduire les risques liés à la sécurité et à la disponibilité. Le fait de disposer d'un cluster Amazon OpenSearch Service commun peut faciliter la recherche et la mise en relation des données au sein d'un même cluster.