Utilizzo di Elastic CloudWatch Beanstalk con Amazon Logs - AWS Elastic Beanstalk

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à.

Utilizzo di Elastic CloudWatch Beanstalk con Amazon Logs

Questo argomento spiega le funzionalità di monitoraggio che il servizio Amazon CloudWatch Logs può fornire a Elastic Beanstalk. Inoltre, illustra la configurazione ed elenca le posizioni dei log per ogni piattaforma Elastic Beanstalk.

L'implementazione CloudWatch dei log può consentire di eseguire le seguenti attività di monitoraggio:

  • Monitora e archivia l'applicazione Elastic Beanstalk, il sistema e i file di log personalizzati dalle istanze EC2 Amazon dei tuoi ambienti.

  • Configura allarmi che ti consentano di reagire più facilmente a specifici eventi del flusso di log estratti dai filtri metrici.

L'agente CloudWatch Logs installato su ogni EC2 istanza Amazon nel tuo ambiente pubblica i punti dati metrici sul CloudWatch servizio per ogni gruppo di log che configuri. Ogni gruppo di log applica i propri modelli di filtro per determinare a quali eventi di log stream inviare CloudWatch come punti dati. I flussi del log appartenenti allo stesso gruppo di log condividono le stesse impostazioni di conservazione, monitoraggio e controllo degli accessi. Puoi configurare Elastic Beanstalk per trasmettere automaticamente i log CloudWatch al servizio, come descritto in. Streaming dei log delle istanze su Logs CloudWatch Per ulteriori informazioni sui CloudWatch log, inclusi la terminologia e i concetti, consulta la Amazon CloudWatch Logs User Guide.

Oltre ai log delle istanze, se abiliti l'integrità migliorata del tuo ambiente, puoi configurare l'ambiente in modo che trasmetta le informazioni sullo stato a Logs. CloudWatch Per informazioni, consulta Streaming di informazioni sullo stato dell'ambiente Elastic Beanstalk ad Amazon CloudWatch Logs.

Prerequisiti per l'istanza dello streaming dei log su Logs CloudWatch

Per abilitare lo streaming dei log dalle EC2 istanze Amazon del tuo ambiente a CloudWatch Logs, devi soddisfare le seguenti condizioni.

  • Piattaforma: poiché questa caratteristica è disponibile solo nelle versioni della piattaforma rilasciate dopo questa versione, se usi una versione precedente della piattaforma, aggiorna l'ambiente a uno corrente.

  • Se non disponi della policy gestita AWSElasticBeanstalkWebTiero di AWSElasticBeanstalkWorkerTierElastic Beanstalk nel profilo dell'istanza di Elastic Beanstalk, devi aggiungere quanto segue al tuo profilo per abilitare questa funzionalità.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": [ "*" ] } ] }

Come Elastic Beanstalk configura i log CloudWatch

Elastic Beanstalk CloudWatch installa un log agent con le impostazioni di configurazione predefinite su ogni istanza creata. Scopri di più nel Logs Agent Reference. CloudWatch

Quando abiliti lo streaming dei log delle istanze su CloudWatch Logs, Elastic Beanstalk invia i file di log dalle istanze dell'ambiente a Logs. CloudWatch Piattaforme diverse trasmettono log diversi. Nella tabella seguente sono elencati i log, suddivisi per piattaforma.

Piattaforma / Ramo della piattaforma

Log

Docker /

Ramo della piattaforma: Docker in esecuzione su Amazon Linux 2 (a 64 bit)

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/docker

  • /var/log/docker-events.log

  • /var/log/eb-docker/containers/ /stdouterr.log eb-current-app

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

Docker /

Platform Branch: ECS in esecuzione su Amazon Linux 2 a 64 bit

  • /var/log/docker-events.log

  • /var/log/ .log eb-ecs-mgr

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/ecs/ecs-agent.log

  • /var/log/ecs/ecs-init.log

Go

. NETCore su Linux

Java / Ramo della piattaforma: Corretta esecuzione su Amazon Linux 2 (a 64 bit)

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/web.stdout.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

Node.js

Python

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/web.stdout.log

  • /var/log/httpd/access_log

  • /var/log/httpd/error_log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

Tomcat

PHP

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/httpd/access_log

  • /var/log/httpd/error_log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

. NETsu Windows Server

  • C:\inetpub\logs\\ W3 LogFilesSVC1\ u_ex*.log

  • C:\Program Files\ Amazon\ElasticBeanstalk\ logs\ AWSDeployment .log

  • C:\Program Files\ Amazon\ElasticBeanstalk\ logs\ Hooks.log

Ruby

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/puma/puma.log

  • /var/log/web.stdout.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

Nota

Il 18 luglio 2022, Elastic Beanstalk ha impostato lo stato di tutte le filiali della piattaforma basate su Amazon Linux () come ritirato. AMI AL1 Per ulteriori informazioni sulla migrazione a una ramificazione della piattaforma Amazon Linux 2023 attuale e completamente supportata, consulta Migrazione dell'applicazione Elastic Beanstalk Linux ad Amazon Linux 2023 o Amazon Linux 2.

La tabella seguente elenca i file di log trasmessi in streaming dalle istanze sui rami della piattaforma basati su Amazon Linux AMI (precedente ad Amazon Linux 2), per piattaforma.

Piattaforma / Ramo della piattaforma

Log

Docker /

Ramo della piattaforma: Docker in esecuzione su Amazon Linux (a 64 bit)

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/docker-events.log

  • /var/log/docker

  • /var/log/nginx/access.log

  • /var/log/eb-docker/containers/ /stdouterr.log eb-current-app

Docker /

Ramo piattaforma: Docker a più container che esegue Amazon Linux (a 64 bit).

  • /var/log/eb-activity.log

  • /var/log/ecs/ecs-init.log

  • /var/log/ .log eb-ecs-mgr

  • /var/log/ecs/ecs-agent.log

  • /var/log/docker-events.log

Glassfish (Docker preconfigurato)

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/docker-events.log

  • /var/log/docker

  • /var/log/nginx/access.log

Go

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/nginx/access.log

Java /

Ramo della piattaforma: Java 8 in esecuzione su Amazon Linux (a 64 bit)

Ramo della piattaforma: Java 7 in esecuzione su Amazon Linux (a 64 bit)

  • /var/log/eb-activity.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

  • /var/log/web-1.error.log

  • /var/log/web-1.log

Tomcat

  • /var/log/eb-activity.log

  • /var/log/httpd/error_log

  • /var/log/httpd/access_log

  • /var/log/nginx/error_log

  • /var/log/nginx/access_log

Node.js

  • /var/log/eb-activity.log

  • /var/log/nodejs/nodejs.log

  • /var/log/nginx/error.log

  • /var/log/nginx/access.log

  • /var/log/httpd/error.log

  • /var/log/httpd/access.log

PHP

  • /var/log/eb-activity.log

  • /var/log/httpd/error_log

  • /var/log/httpd/access_log

Python

  • /var/log/eb-activity.log

  • /var/log/httpd/error_log

  • /var/log/httpd/access_log

  • /opt/python/log/supervisord.log

Ruby /

Ramo della piattaforma: Puma con Ruby in esecuzione su Amazon Linux (a 64 bit)

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/puma/puma.log

  • /var/log/nginx/access.log

Ruby /

Ramo della piattaforma: Passenger con Ruby in esecuzione su Amazon Linux a 64 bit

  • /var/log/eb-activity.log

  • /var/app/support/logs/passenger.log

  • /var/app/support/logs/access.log

  • /var/app/support/logs/error.log

Elastic Beanstalk configura i CloudWatch gruppi di log in Logs per i vari file di log trasmessi. Per recuperare file di log specifici da CloudWatch Logs, devi conoscere il nome del gruppo di log corrispondente. Lo schema di denominazione dei gruppi di log dipende dal sistema operativo della piattaforma.

Per le piattaforme Linux, aggiungi alla posizione del file di log nell'istanza il prefisso /aws/elasticbeanstalk/environment_name per ottenere il nome del gruppo di log. Per recuperare, ad esempio, il file /var/log/nginx/error.log, specifica il gruppo di log /aws/elasticbeanstalk/environment_name/var/log/nginx/error.log.

Per le piattaforme Windows, consulta la tabella seguente per il gruppo di log corrispondente a ogni file di log.

File di log nell'istanza

Gruppo di log

C:\Program Files\Amazon\ElasticBeanstalk\logs\AWSDeployment.log

/aws/elasticbeanstalk/<environment-name>/EBDeploy-Log

C:\Program Files\Amazon\ElasticBeanstalk\logs\Hooks.log

/aws/elasticbeanstalk/<environment-name>/EBHooks-Log

C:\inetpub\logs\LogFiles (tutta la directory)

/aws/elasticbeanstalk/<environment-name>/IIS-Log

Streaming dei log delle istanze su Logs CloudWatch

Puoi abilitare lo streaming dei log delle istanze su CloudWatch Logs utilizzando la console Elastic Beanstalk, CLI l'EB o le opzioni di configurazione.

Prima di abilitarlo, configura le IAM autorizzazioni da utilizzare con l'agente Logs. CloudWatch Puoi collegare la seguente policy personalizzata al profilo dell'istanza assegnato al tuo ambiente.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "*" ] } ] }

Streaming di log delle istanze utilizzando la console Elastic Beanstalk

Per trasmettere i log delle istanze ai registri CloudWatch
  1. Apri la console Elastic Beanstalk e, nell'elenco Regioni, seleziona la tua. Regione AWS

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

    Nota

    Se si dispone di molti ambienti, utilizzare la barra di ricerca per filtrare l'elenco degli ambienti.

  3. Nel riquadro di navigazione, seleziona Configuration (Configurazione).

  4. Nella categoria di configurazione Updates, monitoring, and logging (Aggiornamenti, monitoraggio e registrazione), scegli Edit (Modifica).

  5. In Streaming dei log delle istanze su Logs: CloudWatch

    • Abilita l'opzione Log streaming (Streaming di log).

    • Imposta il valore di Retention (Conservazione) sul numero di giorni per cui salvare i log.

    • Seleziona l'impostazione Lifecycle (Ciclo di vita), che determina se i log vengono salvati dopo che l'ambiente viene terminato.

  6. Per salvare le modifiche scegli Apply (Applica) nella parte inferiore della pagina.

Dopo aver abilitato lo streaming dei log, puoi tornare alla pagina o alla categoria di configurazione Software e individuare il collegamento Log Groups (Gruppi di log). Fai clic su questo link per visualizzare i log nella CloudWatch console.

Streaming dei registri delle istanze tramite EB CLI

Per abilitare lo streaming dei log delle istanze su CloudWatch Logs utilizzando l'EBCLI, utilizzare il eb logs comando.

$ eb logs --cloudwatch-logs enable

Puoi anche usarlo eb logs per recuperare i log dai log. CloudWatch È possibile recuperare tutti i log delle istanze dell'ambiente oppure usare le numerose opzioni del comando per specificare sottoinsiemi di log da recuperare. Il comando seguente permette ad esempio di recuperare il set completo di log delle istanze per l'ambiente e di salvare i log in una directory in .elasticbeanstalk/logs.

$ eb logs --all

In particolare, l'opzione --log-group permette di recuperare i log delle istanze per un determinato gruppo di log, corrispondente a un file di log nell'istanza specifico. A tale scopo, è necessario conoscere il nome del gruppo di log che corrisponde al file di log da recuperare. Puoi trovare queste informazioni in Come Elastic Beanstalk configura i log CloudWatch .

Streaming di log delle istanze tramite file di configurazione

Quando si crea o si aggiorna un ambiente, è possibile utilizzare un file di configurazione per impostare e configurare lo streaming dei log delle istanze su Logs. CloudWatch Il file di configurazione di esempio seguente permette di abilitare lo streaming di log delle istanze predefinito. Elastic Beanstalk trasmette in streaming il set predefinito di file di log per la piattaforma dell'ambiente. Per usare l'esempio, copia il testo in un file con l'estensione .config nella directory .ebextensions al primo livello del bundle di origine dell'applicazione.

option_settings: - namespace: aws:elasticbeanstalk:cloudwatch:logs option_name: StreamLogs value: true

Streaming di file di log personalizzati

L' CloudWatch integrazione di Elastic Beanstalk con Logs non supporta direttamente lo streaming di file di registro personalizzati generati dall'applicazione. Per lo streaming dei log personalizzati, utilizza un file di configurazione per installare direttamente l' CloudWatch agente e configurare i file da inviare. Per un esempio di file di configurazione, consulta logs-streamtocloudwatch-linux.config.

Nota

L'esempio non funziona sulla piattaforma Windows.

Per ulteriori informazioni sulla configurazione dei CloudWatch log, consulta il riferimento al file di configurazione dell'CloudWatch agente nella Amazon CloudWatch User Guide.

Risoluzione dei problemi CloudWatch di integrazione dei log

Se non riesci a trovare alcuni dei log delle istanze dell'ambiente che ti aspetti in CloudWatch Logs, puoi esaminare i seguenti problemi comuni:

  • Il tuo IAM ruolo non dispone delle autorizzazioni richieste. IAM

  • Hai avviato il tuo ambiente in un ambiente Regione AWS che non supporta i CloudWatch log.

  • Uno dei file di log personalizzati non esiste nel percorso specificato.