Streaming di informazioni sullo stato dell'ambiente Elastic Beanstalk ad Amazon CloudWatch 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à.

Streaming di informazioni sullo stato dell'ambiente Elastic Beanstalk ad Amazon CloudWatch Logs

Se abiliti i report sullo stato avanzati per l'ambiente, puoi configurare l'ambiente per lo streaming delle informazioni sullo stato a CloudWatch Logs. Questo streaming è indipendente da quello dei log delle istanze Amazon EC2. In questo argomento viene descritto lo streaming delle informazioni sullo stato dell'ambiente. Per informazioni sullo streaming di log delle istanze, consulta Utilizzo di Elastic CloudWatch Beanstalk con Amazon Logs.

Quando configuri lo streaming delle informazioni sullo stato dell'ambiente, Elastic Beanstalk crea un gruppo di log di CloudWatch Logs per lo stato dell'ambiente. Il nome del gruppo di log è /aws/elasticbeanstalk/environment-name/environment-health.log. In questo gruppo di log, Elastic Beanstalk crea flussi di log denominati YYYY-MM-DD#<hash-suffix> (potrebbero essere presenti più flussi di log per ogni data).

Quando lo stato dell'ambiente cambia, Elastic Beanstalk aggiunge un record al flusso di log sullo stato. Il record rappresenta la transizione dello stato, ovvero il nuovo stato e una descrizione della causa del cambiamento. Lo stato di un ambiente può ad esempio cambiare in Severe (Grave) a causa di un errore del sistema di bilanciamento del carico. Per una descrizione degli stati avanzati, consulta Colori e stati indicanti l'integrità.

Prerequisiti per lo streaming di informazioni sullo stato dell'ambiente a CloudWatch Logs

Per abilitare lo streaming di informazioni sullo stato dell'ambiente a CloudWatch Logs è necessario che siano soddisfatte le condizioni seguenti:

  • Piattaforma: è necessario usare una versione della piattaforma che supporta i report sullo stato avanzati.

  • Autorizzazioni: è necessario concedere a Elastic Beanstalk determinate autorizzazioni per la creazione di log in modo che possa eseguire lo streaming delle informazioni sullo stato dell'ambiente per tuo conto. Se l'ambiente non usa un ruolo di servizio creato da Elastic Beanstalk, aws-elasticbeanstalk-service-role, oppure il ruolo collegato ai servizi del tuo account, AWSServiceRoleForElasticBeanstalk, assicurati di aggiungere le autorizzazioni seguenti al tuo ruolo di servizio personalizzato.

    { "Effect": "Allow", "Action": [ "logs:DescribeLogStreams", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/elasticbeanstalk/*:log-stream:*" }

Streaming di log sullo stato dell'ambiente a CloudWatch Logs

È possibile abilitare lo streaming di log sullo stato dell'ambiente a CloudWatch Logs utilizzando la console Elastic Beanstalk, l'interfaccia a riga di comando EB o le opzioni di configurazione.

Streaming di log sullo stato dell'ambiente utilizzando la console Elastic Beanstalk

Per trasmettere in streaming i log sullo stato dell'ambiente a CloudWatch Logs
  1. Apri la console Elastic Beanstalk e nell'elenco Regions (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 Monitoring (Monitoraggio), scegliere Edit (Modifica).

  5. In Health reporting (Report sullo stato) assicurati che l'opzione System (Sistema) per la creazione di report sia impostata su Enhanced (Avanzato).

  6. In Health event streaming to CloudWatch Logs (Streaming di eventi sullo stato a CloudWatch Logs):

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

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

Dopo avere abilitato lo streaming dei log, puoi tornare alla pagina o alla categoria di configurazione Monitoring (Monitoraggio) e individuare il collegamento Log Group (Gruppo di log). Fai clic su questo collegamento per visualizzare i log sullo stato dell'ambiente nella console CloudWatch.

Streaming di log sullo stato dell'ambiente tramite l'interfaccia a riga di comando EB

Per abilitare lo streaming di log sullo stato dell'ambiente a CloudWatch Logs usando l'interfaccia a riga di comando EB, usa il comando eb logs.

$ eb logs --cloudwatch-logs enable --cloudwatch-log-source environment-health

Puoi utilizzare anche eb logs per recuperare i log da CloudWatch Logs. Il comando seguente permette ad esempio di recuperare tutti i log sullo stato per l'ambiente e di salvarli in una directory in .elasticbeanstalk/logs.

$ eb logs --all --cloudwatch-log-source environment-health

Streaming di log sullo stato dell'ambiente tramite file di configurazione

Quando crei o aggiorni un ambiente, puoi usare un file di configurazione per impostare e configurare lo streaming di log sullo stato dell'ambiente a CloudWatch Logs. Per usare l'esempio seguente, copia il testo in un file con l'estensione .config nella directory .ebextensions al livello principale del bundle di origine dell'applicazione. L'esempio configura Elastic Beanstalk per abilitare lo streaming di log sullo stato dell'ambiente, conservare i log dopo che l'ambiente è stato terminato e salvarli per 30 giorni.

Esempio File di configurazione dello streaming di informazioni sullo stato
############################################################################ ## Sets up Elastic Beanstalk to stream environment health information ## to Amazon CloudWatch Logs. ## Works only for environments that have enhanced health reporting enabled. ############################################################################ option_settings: aws:elasticbeanstalk:cloudwatch:logs:health: HealthStreamingEnabled: true ### Settings below this line are optional. # DeleteOnTerminate: Delete the log group when the environment is # terminated. Default is false. If false, the health data is kept # RetentionInDays days. DeleteOnTerminate: false # RetentionInDays: The number of days to keep the archived health data # before it expires, if DeleteOnTerminate isn't set. Default is 7 days. RetentionInDays: 30

Per le opzioni predefinite e i valori validi, consulta aws:elasticbeanstalk:cloudwatch:logs:health.