Ricerca e analisi dei log in CloudWatch - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ricerca e analisi dei log in CloudWatch

Dopo aver acquisito i log e le metriche in un formato e in una posizione coerenti, è possibile cercarli e analizzarli per migliorare l'efficienza operativa, oltre a identificare e risolvere i problemi. Ti consigliamo di acquisire i log in un formato ben formato (ad esempio, JSON) per semplificare la ricerca e l'analisi dei registri. La maggior parte dei carichi di lavoro utilizza una raccolta diAWS risorse come rete, elaborazione, storage e database. Ove possibile, è necessario analizzare collettivamente le metriche e i log di queste risorse e correlarli per monitorare e gestire efficacemente tutti iAWS carichi di lavoro.

CloudWatch offre diverse funzionalità per aiutare ad analizzare registri e metriche, come CloudWatch Application Insights per definire e monitorare collettivamente metriche e registri per un'applicazione suAWS risorse diverse, CloudWatch Anomaly Detection per individuare le anomalie per le tue metriche e CloudWatch Log Insights per eseguire ricerche interattive e analizzare i dati di registro in CloudWatch Logs.

Monitora e analizza collettivamente le applicazioni con CloudWatch Application Insights

I proprietari delle applicazioni possono utilizzare Amazon CloudWatch Application Insights per configurare il monitoraggio e l'analisi automatici dei carichi di lavoro. Questo può essere configurato in aggiunta al monitoraggio standard a livello di sistema configurato per tutti i carichi di lavoro in un account. L'impostazione del monitoraggio tramite CloudWatch Application Insights può anche aiutare i team applicativi ad allinearsi in modo proattivo alle operazioni e ridurre il tempo medio di ripristino (MTTR). CloudWatch Application Insights può aiutare a ridurre lo sforzo necessario per stabilire la registrazione e il monitoraggio a livello di applicazione. Fornisce inoltre un framework basato su componenti che aiuta i team a dividere le responsabilità di registrazione e monitoraggio.

CloudWatch Application Insights utilizza gruppi di risorse per identificare le risorse che devono essere monitorate collettivamente come applicazione. Le risorse supportate nel gruppo di risorse diventano componenti definiti individualmente dell' CloudWatch applicazione Application Insights. Ogni componente dell' CloudWatch applicazione Application Insights ha i propri registri, metriche e allarmi.

Per i log, si definisce il set di pattern di log da utilizzare per il componente e all'interno CloudWatch dell'applicazione Application Insights. Un set di pattern di log è una raccolta di pattern di log da cercare in base a espressioni regolari, insieme a una gravità bassa, media o alta quando viene rilevato il pattern. Per quanto riguarda le metriche, scegli le metriche da monitorare per ogni componente da un elenco di metriche specifiche del servizio e supportate. Per gli allarmi, CloudWatch Application Insights crea e configura automaticamente allarmi standard o di rilevamento delle anomalie per le metriche monitorate. CloudWatch Application Insights dispone di configurazioni automatiche per le metriche e l'acquisizione dei log per le tecnologie descritte nei log e nelle metriche supportate da CloudWatch Application Insights nella CloudWatch documentazione. Il diagramma seguente mostra le relazioni tra i componenti di CloudWatch Application Insights e le relative configurazioni di registrazione e monitoraggio. Ogni componente ha definito i propri registri e metriche da monitorare utilizzando CloudWatch registri e metriche.

CloudWatch Application Insights dispone di una configurazione automatica specifica per la tecnologia per le metriche e l'acquisizione dei registri.

Le istanze EC2 monitorate da CloudWatch Application Insights richiedono Systems Manager, CloudWatch agenti e autorizzazioni. Per ulteriori informazioni a riguardo, vedere Prerequisiti per configurare un'applicazione con CloudWatch Application Insights nella CloudWatch documentazione. CloudWatch Application Insights utilizza Systems Manager per installare e aggiornare l' CloudWatch agente. Le metriche e i log configurati in CloudWatch Application Insights creano un file di configurazione CloudWatch dell'agente archiviato in un parametro di Systems Manager con ilAmazonCloudWatch-ApplicationInsights-SSMParameter prefisso per ogni componente di CloudWatch Application Insights. Ciò comporta l'aggiunta di un file di configurazione dell' CloudWatch agente separato alla directory di configurazione dell' CloudWatch agente sull'istanza EC2. Viene eseguito un comando di Systems Manager per aggiungere questa configurazione alla configurazione attiva sull'istanza EC2. CloudWatch L'utilizzo di Application Insights non influisce sulle impostazioni di configurazione degli CloudWatch agenti esistenti. È possibile utilizzare CloudWatch Application Insights in aggiunta alle proprie configurazioni di CloudWatch agenti a livello di sistema e applicazione. Tuttavia, dovresti assicurarti che le configurazioni non si sovrappongano.

Esecuzione dell'analisi dei log con CloudWatch Logs Insights

CloudWatch Logs Insights semplifica la ricerca in più gruppi di log utilizzando un semplice linguaggio di interrogazione. Se i log delle applicazioni sono strutturati in formato JSON, CloudWatch Logs Insights individua automaticamente i campi JSON nei flussi di log in più gruppi di log. È possibile utilizzare CloudWatch Logs Insights per analizzare i log delle applicazioni e del sistema, salvando le query per un uso future. La sintassi delle query per CloudWatch Logs Insights supporta funzioni come l'aggregazione con funzioni, ad esempio sum (), avg (), count (), min () e max (), che possono essere utili per la risoluzione dei problemi delle applicazioni o l'analisi delle prestazioni.

Se usi il formato metrico incorporato per creare CloudWatch metriche, puoi interrogare i registri del formato metrico incorporato per generare metriche monouso utilizzando le funzioni di aggregazione supportate. Ciò consente di ridurre i costi di CloudWatch monitoraggio acquisendo i dati necessari per generare metriche specifiche in base alle esigenze, anziché acquisirli attivamente come metriche personalizzate. Ciò è particolarmente efficace per le dimensioni con cardinalità elevata che comporterebbero un gran numero di metriche. CloudWatch Anche Container Insights adotta questo approccio e acquisisce dati dettagliati sulle prestazioni, ma genera CloudWatch metriche solo per un sottoinsieme di questi dati.

Ad esempio, la seguente voce di metrica incorporata genera solo un set limitato di CloudWatch metriche dai dati della metrica acquisiti nell'istruzione in formato metrico incorporato:

{ "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" }

Tuttavia, puoi interrogare le metriche acquisite per ottenere ulteriori informazioni. Ad esempio, puoi eseguire la query seguente per visualizzare gli ultimi 20 pod con errori nelle pagine di memoria:

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

Esecuzione dell'analisi dei log con Amazon OpenSearch Service

CloudWatch si integra con Amazon OpenSearch Service consentendoti di trasmettere i dati di CloudWatch registro dai gruppi di log a un cluster Amazon OpenSearch Service di tua scelta con un filtro di abbonamento. Puoi utilizzarlo CloudWatch per l'acquisizione e l'analisi dei log e delle metriche primari e quindi ampliarlo con Amazon OpenSearch Service per i seguenti casi d'uso:

  • Controllo granulare dell'accesso ai dati: Amazon OpenSearch Service ti consente di limitare l'accesso ai dati fino al livello di campo e aiuta a rendere anonimi i dati nei campi in base alle autorizzazioni degli utenti. Ciò è utile se si desidera supportare la risoluzione dei problemi senza esporre dati sensibili.

  • Aggrega e cerca i log di più account, regioni e infrastrutture: puoi trasmettere i tuoi log da più account e regioni in un cluster Amazon OpenSearch Service comune. I tuoi team operativi centralizzati possono analizzare tendenze, problemi ed eseguire analisi su account e regioni. Lo streaming CloudWatch dei log su Amazon OpenSearch Service consente inoltre di cercare e analizzare un'applicazione multiregionale in una posizione centrale.

  • Spedisci e arricchisci i log direttamente ad Amazon OpenSearch Service utilizzando ElasticSearch agenti: i componenti dello stack applicativo e tecnologico possono utilizzare sistemi operativi non supportati dall' CloudWatch agente. Potresti anche voler arricchire e trasformare i dati di registro prima che vengano spediti alla tua soluzione di registrazione. Amazon OpenSearch Service supporta client Elasticsearch standard come gli spedizionieri di dati della famiglia Elastic Beats e Logstash che supportano l'arricchimento e la trasformazione dei log prima dell'invio dei dati di registro ad Amazon OpenSearch Service.

  • La soluzione di gestione delle operazioni esistente utilizza uno ElasticSearchstack Logstash, Kibana (ELK) per la registrazione e il monitoraggio: potresti già avere un investimento significativo in Amazon OpenSearch Service o Elasticsearch open source con molti carichi di lavoro già configurati. Potresti anche avere delle dashboard operative create in Kibana che desideri continuare a utilizzare.

Se non prevedi di utilizzare CloudWatch i log, puoi utilizzare agenti, driver di registro e librerie supportati da Amazon OpenSearch Service (ad esempio, Fluent Bit, Fluentd, logstash e Open Distro for ElasticSearch API) per spedire i tuoi log direttamente ad Amazon OpenSearch Service e bypassarli CloudWatch. Tuttavia, dovresti anche implementare una soluzione per acquisire i log generati daiAWS servizi. CloudWatch Logs è la soluzione di acquisizione dei log principale per moltiAWS servizi e più servizi creano automaticamente nuovi gruppi di log CloudWatch. Ad esempio, Lambda crea un nuovo gruppo di log per ogni funzione Lambda. Puoi impostare un filtro di abbonamento per un gruppo di log per lo streaming dei relativi log su Amazon OpenSearch Service. Puoi configurare manualmente un filtro di abbonamento per ogni singolo gruppo di log che desideri trasmettere in streaming su Amazon OpenSearch Service. In alternativa, è possibile implementare una soluzione che sottoscrive automaticamente nuovi gruppi di log ai ElasticSearch cluster. Puoi trasmettere i log a un ElasticSearch cluster nello stesso account o in un account centralizzato. Lo streaming dei log su un ElasticSearch cluster nello stesso account aiuta i proprietari dei carichi di lavoro ad analizzare e supportare meglio i propri carichi di lavoro.

Dovresti considerare la possibilità di configurare un ElasticSearch cluster in un account centralizzato o condiviso per aggregare i log tra i tuoi account, regioni e applicazioni. Ad esempio,AWS Control Tower imposta un account Log Archive che viene utilizzato per la registrazione centralizzata. Quando viene creato un nuovo accountAWS Control Tower, i relativiAWS CloudTrailAWS Config registri vengono inviati a un bucket S3 in questo account centralizzato. La registrazione strumentata daAWS Control Tower è per la configurazione, le modifiche e la registrazione di audit.

Per creare una soluzione centralizzata di analisi dei registri delle applicazioni con Amazon OpenSearch Service, puoi distribuire uno o più cluster Amazon OpenSearch Service centralizzati sul tuo account di registrazione centralizzato e configurare i gruppi di log negli altri account per lo streaming dei log verso il OpenSearch servizio Amazon centralizzato grappoli.

Puoi creare cluster Amazon OpenSearch Service separati per gestire diverse applicazioni o livelli della tua architettura cloud che potrebbero essere distribuiti tra i tuoi account. L'utilizzo di cluster Amazon OpenSearch Service separati consente di ridurre il rischio di sicurezza e disponibilità e disporre di un cluster Amazon OpenSearch Service comune può semplificare la ricerca e la correlazione dei dati all'interno dello stesso cluster.