Pubblicazione dei parametri personalizzati di Amazon CloudWatch per un ambiente - 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à.

Pubblicazione dei parametri personalizzati di Amazon CloudWatch per un ambiente

Puoi pubblicare i dati raccolti mediante il reporting sull'integrità migliorata di AWS Elastic Beanstalk su Amazon CloudWatch come parametri personalizzati. La pubblicazione di parametri in CloudWatch consente di monitorare le modifiche nelle prestazioni delle applicazioni nel corso del tempo e di identificare potenziali problemi controllando il modo in cui l'utilizzo delle risorse e la latenza delle richieste evolvono in funzione del carico.

La pubblicazione di parametri in CloudWatch rende inoltre i parametri disponibili per l'uso con grafici di monitoraggio e allarmi. Un parametro gratuito, EnvironmentHealth, è abilitato automaticamente durante l'utilizzo del reporting sullo stato migliorato. I parametri personalizzati diversi da EnvironmentHealth comportano dei costi CloudWatch standard.

Per pubblicare i parametri personalizzati di CloudWatch per un ambiente, devi prima abilitare il reporting dello stato avanzato. Per istruzioni, consulta Abilitazione del reporting dello stato avanzato Elastic Beanstalk.

Parametri del reporting sullo stato migliorato

Quando abiliti il reporting dello stato avanzato nel tuo ambiente, questo pubblica automaticamente un parametro personalizzato di CloudWatch, ovvero EnvironmentHealth. Per pubblicare ulteriori parametri in CloudWatch, configura l'ambiente con tali parametri utilizzando la console Elastic Beanstalk, l'interfaccia a riga di comando EB o .ebextensions.

Puoi pubblicare i seguenti parametri di stato migliorato dall'ambiente in CloudWatch.

Parametri disponibili – Tutte le piattaforme
EnvironmentHealth

Solo ambiente. Questo è l'unico parametro di CloudWatch pubblicato dal sistema di reporting dello stato avanzato, a meno che non configuri ulteriori parametri. Lo stato dell'ambiente è rappresentato da uno di sette stati. Nella console di CloudWatch questi stati sono mappati ai seguenti valori:

  • 0 – OK

  • 1 – Info

  • 5 – Unknown (Sconosciuto)

  • 10 – No data (Nessun dato)

  • 15 – Warning (Avvertenza)

  • 20 – Degraded (Degradato)

  • 25 – Severe (Grave)

InstancesSevere
InstancesDegraded
InstancesWarning
InstancesInfo
InstancesOk
InstancesPending
InstancesUnknown
InstancesNoData

Solo ambiente. Questi parametri indicano il numero di istanze nell'ambiente con ciascuno stato di integrità. InstancesNoData indica il numero di istanze per cui i dati non vengono ricevuti.

ApplicationRequestsTotal
ApplicationRequests5xx
ApplicationRequests4xx
ApplicationRequests3xx
ApplicationRequests2xx

Istanza e ambiente. Indica il numero totale di richieste completate dall'istanza o dall'ambiente e il numero di richieste completate con ogni categoria di codice di stato.

ApplicationLatencyP10
ApplicationLatencyP50
ApplicationLatencyP75
ApplicationLatencyP85
ApplicationLatencyP90
ApplicationLatencyP95
ApplicationLatencyP99
ApplicationLatencyP99.9

Istanza e ambiente. Indica il periodo di tempo medio, in secondi, necessario per completare la percentuale x più veloce di richieste.

InstanceHealth

Solo istanza. Indica lo stato corrente dell'istanza. È rappresentato da uno di sette stati. Nella console di CloudWatch questi stati sono mappati ai seguenti valori:

  • 0 – OK

  • 1 – Info

  • 5 – Unknown (Sconosciuto)

  • 10 – No data (Nessun dato)

  • 15 – Warning (Avvertenza)

  • 20 – Degraded (Degradato)

  • 25 – Severe (Grave)

Parametri disponibili – Linux
CPUIrq
CPUIdle
CPUUser
CPUSystem
CPUSoftirq
CPUIowait
CPUNice

Solo istanza. Indica la percentuale di tempo che la CPU ha passato in ogni stato nell'ultimo minuto.

LoadAverage1min

Solo istanza. Il carico medio della CPU dell'istanza nell'ultimo minuto.

RootFilesystemUtil

Solo istanza. Indica la percentuale di spazio su disco utilizzato.

Parametri disponibili – Windows
CPUIdle
CPUUser
CPUPriveleged

Solo istanza. Indica la percentuale di tempo che la CPU ha passato in ogni stato nell'ultimo minuto.

Configurazione dei parametri di CloudWatch mediante la console Elastic Beanstalk

Puoi utilizzare la console Elastic Beanstalk per configurare l'ambiente in modo da pubblicare parametri del reporting dello stato avanzato in CloudWatch e renderli disponibili per grafici di monitoraggio e allarmi.

Per configurare i parametri personalizzati di CloudWatch nella console Elastic Beanstalk
  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 (Reporting dello stato), selezionare i parametri di istanza e di ambiente da pubblicare in CloudWatch. Per selezionare più parametri, premere il tasto CTRL durante la selezione.

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

L'abilitazione dei parametri personalizzati di CloudWatch ne determina l'aggiunta all'elenco di parametri disponibile nella pagina Monitoring (Monitoraggio).

Configurazione dei parametri personalizzati di CloudWatch mediante l'interfaccia a riga di comando EB

Puoi utilizzare l'interfaccia a riga di comando EB per configurare parametri personalizzati salvando la configurazione dell'ambiente in locale, aggiungendo una voce che definisca i parametri da pubblicare e caricando la configurazione in Elastic Beanstalk. Puoi applicare la configurazione salvata a un ambiente durante o dopo la creazione.

Configurazione di parametri personalizzati di CloudWatch con l'interfaccia a riga di comando EB e configurazioni salvate
  1. Inizializza la tua cartella di progetto con eb init.

  2. Crea un ambiente eseguendo il comando eb create.

  3. Salva un modello di configurazione in locale eseguendo il comando eb config save. L'esempio seguente utilizza l'opzione --cfg per specificare il nome della configurazione.

    $ eb config save --cfg 01-base-state Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml
  4. Apri il file di configurazione salvato in un editor di testo.

  5. In OptionSettings > aws:elasticbeanstalk:healthreporting:system:, aggiungi una chiave ConfigDocument per abilitare ogni parametro di CloudWatch desiderato. Ad esempio, la chiave ConfigDocument seguente pubblica i parametri ApplicationRequests5xx e ApplicationRequests4xx a livello di ambiente e i parametri ApplicationRequestsTotal a livello di istanza.

    OptionSettings: ... aws:elasticbeanstalk:healthreporting:system: ConfigDocument: CloudWatchMetrics: Environment: ApplicationRequests5xx: 60 ApplicationRequests4xx: 60 Instance: ApplicationRequestsTotal: 60 Version: 1 SystemType: enhanced ...

    Nell'esempio, 60 indica il numero di secondi tra le misure. Attualmente, questo è il solo valore supportato.

    Nota

    Puoi combinare CloudWatchMetrics e Rules nella stessa impostazione dell'opzione ConfigDocument. Le Rules sono descritte in Configurazione delle regole dello stato migliorato per un ambiente.

    Se hai già utilizzato Rules per configurare le regole dello stato migliorato, il file di configurazione che recuperi utilizzando il comando eb config save dispone già di una chiave ConfigDocument con una sezione Rules. Non eliminarla, ma aggiungi una sezione CloudWatchMetrics allo stesso valore dell'opzione ConfigDocument.

  6. Salva il file di configurazione e chiudi l'editor di testo. In questo esempio, il file di configurazione aggiornato viene salvato con un nome (02-cloudwatch-enabled.cfg.yml) diverso rispetto al file di configurazione scaricato. In questo modo, si crea una configurazione salvata distinta quando si carica il file. Puoi utilizzare lo stesso nome del file scaricato per sovrascrivere la configurazione esistente senza crearne una nuova.

  7. Usa il comando eb config put per caricare il file di configurazione aggiornato in Elastic Beanstalk.

    $ eb config put 02-cloudwatch-enabled

    Quando utilizzi i comandi eb config get e put con configurazioni salvate, non includere l'estensione di file.

  8. Applica la configurazione salvata all'ambiente in esecuzione.

    $ eb config --cfg 02-cloudwatch-enabled

    L'opzione --cfg specifica un file di configurazione con nome che viene applicato all'ambiente. Puoi salvare il file di configurazione in locale o in Elastic Beanstalk. Se un file di configurazione con il nome specificato esiste in entrambi i percorsi, l'interfaccia a riga di comando EB utilizza il file locale.

Specifica dei documenti di configurazione per parametri personalizzati

Il documento di configurazione (config) per i parametri personalizzati di Amazon CloudWatch è un documento in formato JSON che elenca i parametri da pubblicare a livello di ambiente e di istanza. L'esempio seguente mostra un documento di configurazione che abilita tutti i parametri personalizzati disponibili su Linux.

{ "CloudWatchMetrics": { "Environment": { "ApplicationLatencyP99.9": 60, "InstancesSevere": 60, "ApplicationLatencyP90": 60, "ApplicationLatencyP99": 60, "ApplicationLatencyP95": 60, "InstancesUnknown": 60, "ApplicationLatencyP85": 60, "InstancesInfo": 60, "ApplicationRequests2xx": 60, "InstancesDegraded": 60, "InstancesWarning": 60, "ApplicationLatencyP50": 60, "ApplicationRequestsTotal": 60, "InstancesNoData": 60, "InstancesPending": 60, "ApplicationLatencyP10": 60, "ApplicationRequests5xx": 60, "ApplicationLatencyP75": 60, "InstancesOk": 60, "ApplicationRequests3xx": 60, "ApplicationRequests4xx": 60 }, "Instance": { "ApplicationLatencyP99.9": 60, "ApplicationLatencyP90": 60, "ApplicationLatencyP99": 60, "ApplicationLatencyP95": 60, "ApplicationLatencyP85": 60, "CPUUser": 60, "ApplicationRequests2xx": 60, "CPUIdle": 60, "ApplicationLatencyP50": 60, "ApplicationRequestsTotal": 60, "RootFilesystemUtil": 60, "LoadAverage1min": 60, "CPUIrq": 60, "CPUNice": 60, "CPUIowait": 60, "ApplicationLatencyP10": 60, "LoadAverage5min": 60, "ApplicationRequests5xx": 60, "ApplicationLatencyP75": 60, "CPUSystem": 60, "ApplicationRequests3xx": 60, "ApplicationRequests4xx": 60, "InstanceHealth": 60, "CPUSoftirq": 60 } }, "Version": 1 }

Per la AWS CLI, devi passare il documento come valore della chiave Value in un argomento di impostazioni delle opzioni, che è anch'esso un oggetto JSON. In questo caso, devi specificare il carattere di escape per le virgolette nel documento incorporato.

$ aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings '[ { "Namespace": "aws:elasticbeanstalk:healthreporting:system", "OptionName": "ConfigDocument", "Value": "{\"CloudWatchMetrics\": {\"Environment\": {\"ApplicationLatencyP99.9\": 60,\"InstancesSevere\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": 60,\"ApplicationLatencyP95\": 60,\"InstancesUnknown\": 60,\"ApplicationLatencyP85\": 60,\"InstancesInfo\": 60,\"ApplicationRequests2xx\": 60,\"InstancesDegraded\": 60,\"InstancesWarning\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": 60,\"InstancesNoData\": 60,\"InstancesPending\": 60,\"ApplicationLatencyP10\": 60,\"ApplicationRequests5xx\": 60,\"ApplicationLatencyP75\": 60,\"InstancesOk\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": 60},\"Instance\": {\"ApplicationLatencyP99.9\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": 60,\"ApplicationLatencyP95\": 60,\"ApplicationLatencyP85\": 60,\"CPUUser\": 60,\"ApplicationRequests2xx\": 60,\"CPUIdle\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": 60,\"RootFilesystemUtil\": 60,\"LoadAverage1min\": 60,\"CPUIrq\": 60,\"CPUNice\": 60,\"CPUIowait\": 60,\"ApplicationLatencyP10\": 60,\"LoadAverage5min\": 60,\"ApplicationRequests5xx\": 60,\"ApplicationLatencyP75\": 60,\"CPUSystem\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": 60,\"InstanceHealth\": 60,\"CPUSoftirq\": 60}},\"Version\": 1}" } ]'

Per un file di configurazione .ebextensions in YAML, puoi fornire il documento in formato JSON così com'è.

option_settings: - namespace: aws:elasticbeanstalk:healthreporting:system option_name: ConfigDocument value: { "CloudWatchMetrics": { "Environment": { "ApplicationLatencyP99.9": 60, "InstancesSevere": 60, "ApplicationLatencyP90": 60, "ApplicationLatencyP99": 60, "ApplicationLatencyP95": 60, "InstancesUnknown": 60, "ApplicationLatencyP85": 60, "InstancesInfo": 60, "ApplicationRequests2xx": 60, "InstancesDegraded": 60, "InstancesWarning": 60, "ApplicationLatencyP50": 60, "ApplicationRequestsTotal": 60, "InstancesNoData": 60, "InstancesPending": 60, "ApplicationLatencyP10": 60, "ApplicationRequests5xx": 60, "ApplicationLatencyP75": 60, "InstancesOk": 60, "ApplicationRequests3xx": 60, "ApplicationRequests4xx": 60 }, "Instance": { "ApplicationLatencyP99.9": 60, "ApplicationLatencyP90": 60, "ApplicationLatencyP99": 60, "ApplicationLatencyP95": 60, "ApplicationLatencyP85": 60, "CPUUser": 60, "ApplicationRequests2xx": 60, "CPUIdle": 60, "ApplicationLatencyP50": 60, "ApplicationRequestsTotal": 60, "RootFilesystemUtil": 60, "LoadAverage1min": 60, "CPUIrq": 60, "CPUNice": 60, "CPUIowait": 60, "ApplicationLatencyP10": 60, "LoadAverage5min": 60, "ApplicationRequests5xx": 60, "ApplicationLatencyP75": 60, "CPUSystem": 60, "ApplicationRequests3xx": 60, "ApplicationRequests4xx": 60, "InstanceHealth": 60, "CPUSoftirq": 60 } }, "Version": 1 }