CloudWatch soluzione: carico di lavoro Kafka su Amazon EC2 - Amazon CloudWatch

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

CloudWatch soluzione: carico di lavoro Kafka su Amazon EC2

Questa soluzione consente di configurare la raccolta delle out-of-the-box metriche utilizzando CloudWatch agenti per i carichi di lavoro Kafka (broker, produttori e consumatori) in esecuzione su istanze. EC2 Inoltre, ti aiuta a configurare una dashboard preconfigurata. CloudWatch Per informazioni generali su tutte le soluzioni CloudWatch di osservabilità, vedere. CloudWatch soluzioni di osservabilità

Requisiti

Questa soluzione è rilevante per le seguenti condizioni:

Vantaggi

La soluzione offre il monitoraggio dei server Kafka, fornendo approfondimenti preziosi per i seguenti casi d'uso:

  • Monitoraggio dello stato del cluster Kafka tramite metriche di replica e sincronizzazione.

  • Tracciamento delle prestazioni del broker analizzando gli errori delle richieste e le latenze, insieme al traffico di rete.

  • Monitora producer/consumer errori, latenze e ritardi dei consumatori.

  • Analisi delle prestazioni della JVM sottostante per i cluster Kafka.

  • Passaggio tra più cluster Kafka, producer e consumer configurati tramite la soluzione all'interno dello stesso account.

Di seguito sono riportati i principali vantaggi della soluzione:

  • Automatizza la raccolta delle metriche per Kafka e la JVM sottostante utilizzando la configurazione degli agenti, eliminando la strumentazione manuale. CloudWatch

  • Fornisce una dashboard consolidata e preconfigurata per le metriche di Kafka e JVM. CloudWatch La dashboard gestirà automaticamente le metriche delle nuove EC2 istanze Kafka configurate utilizzando la soluzione, anche se tali metriche non esistono quando si crea la dashboard per la prima volta. Inoltre, consente di raggruppare le metriche in applicazioni logiche per facilitarne la gestione e l'analisi.

L'immagine seguente mostra un esempio di pannello di controllo per questa soluzione.

Kafka cluster dashboard showing metrics for partitions, producer/consumer performance, and broker status.

Costi

Questa soluzione crea e utilizza risorse nel tuo account. Ti verranno addebitati i costi standard di utilizzo, inclusi i seguenti:

  • Tutte le metriche raccolte dall' CloudWatch agente vengono addebitate come metriche personalizzate. Il numero di metriche utilizzate da questa soluzione dipende dal numero di host. EC2

    • Ogni broker host configurato per la soluzione pubblica 33 metriche più una metrica (disk_used_percent) per la quale il conteggio delle metriche per ogni EC2 host dipende dal numero di percorsi del disco per quell'host.

    • Ogni host producer configurato per la soluzione pubblica tre metriche con la dimensione topic e tre metriche senza la dimensione topic. Per le metriche con la dimensione topic, ogni argomento viene considerato come una metrica separata.

    • Ogni host consumer configurato per la soluzione pubblica due metriche con dimensioni topic e tre metriche senza dimensioni topic. Per le metriche con le dimensioni argomento, ogni argomento viene considerato come una metrica separata.

  • Un pannello di controllo personalizzato.

  • Operazioni API richieste dall' CloudWatch agente per pubblicare le metriche. Con la configurazione predefinita per questa soluzione, l' CloudWatch agente le chiama PutMetricDatauna volta al minuto per ogni EC2 host. Ciò significa che l'PutMetricDataAPI verrà chiamata 30*24*60=43,200 tra 30 giorni al mese per ogni EC2 host.

Per ulteriori informazioni sui CloudWatch prezzi, consulta la pagina CloudWatch dei prezzi di Amazon.

Il calcolatore dei prezzi può aiutarti a stimare i costi mensili approssimativi per l'utilizzo di questa soluzione.

Per utilizzare il calcolatore dei prezzi per stimare i costi mensili della soluzione
  1. Apri il calcolatore CloudWatch dei prezzi di Amazon.

  2. Nella sezione Metriche, per Numero di metriche, inserisci broker_metrics_count + producer_metrics_count + consumer_metrics_count. Calcola questi valori come segue:

    • broker_metrics_count= (oltre 33 numero medio di percorsi del disco per EC2 host) * number_of_ec2_broker_hosts

    • producer_metrics_count = (3 x average_number_of_topics_per_producer_host + 3) x number_of_ec2_producer_hosts

    • consumer_metrics_count = (2 x average_number_of_topics_per_consumer_host + 3) x number_of_ec2_consumer_hosts

  3. Nella sezione, per Numero di richieste API, inserisci. APIs43200 * number of EC2 instances configured for this solution

    Per impostazione predefinita, l' CloudWatch agente esegue un'PutMetricDataoperazione al minuto per ogni EC2 host.

  4. Nella sezione Pannello di controllo e allarmi, per Numero di pannelli di controllo, inserisci 1.

  5. Puoi vedere i costi mensili stimati nella parte inferiore del calcolatore dei prezzi.

CloudWatch configurazione dell'agente per questa soluzione

L' CloudWatch agente è un software che viene eseguito in modo continuo e autonomo sui server e in ambienti containerizzati. Raccoglie metriche, log e tracce dall'infrastruttura e dalle applicazioni e li invia a e X-Ray. CloudWatch

Per ulteriori informazioni sull'agente, vedere. CloudWatch Raccogli metriche, log e tracce utilizzando l'agente CloudWatch

La configurazione dell'agente in questa soluzione raccoglie le metriche fondamentali per Kafka, JVM e. EC2 Per impostazione predefinita, l' CloudWatch agente può essere configurato per raccogliere più metriche Kafka e JVM rispetto a quelle visualizzate nella dashboard. Per un elenco di tutte le metriche Kafka che puoi raccogliere, consulta Raccolta di metriche di Kafka. Per un elenco di tutte le metriche JVM che puoi raccogliere, consulta Raccolta di metriche di JVM. Per un elenco di metriche, consulta. EC2 Metriche raccolte dall' CloudWatchagente sulle istanze Linux e macOS

Esposizione delle porte JMX per i ruoli di broker, producer e consumer di Kafka

L' CloudWatch agente si affida a JMX per raccogliere le metriche relative ai broker, ai produttori e ai consumatori di Kafka. Affinché questo sia possibile, è necessario esporre la porta JMX sui server e le applicazioni.

Per i broker Kafka, è necessario utilizzare la variabile di ambiente JMX_PORT per impostare la porta. Dopo aver impostato questa variabile di ambiente, sarà necessario riavviare i broker. Esamina gli script iniziali e i file di configurazione dell'applicazione per trovare il posto migliore in cui aggiungere questi argomenti.

Ad esempio, per i sistemi Linux e macOS, è possibile utilizzare il seguente comando per impostare la porta JMX. Assicurarsi di specificare un numero di porta non utilizzato.

export JMX_PORT=port-number

Per i producer e i consumer Kafka, le istruzioni per esporre la porta JMX dipendono dal tipo di carico di lavoro utilizzato per l'applicazione JVM del producer o del consumer. Per informazioni su queste istruzioni, consulta la documentazione dell'applicazione.

In generale, per abilitare una porta JMX per il monitoraggio e la gestione, è necessario impostare le seguenti proprietà di sistema per l'applicazione JVM. L'esempio seguente configura una JMX non autenticata. Se per motivi di sicurezza è policies/requirements necessario abilitare JMX con autenticazione tramite password o SSL per l'accesso remoto, consulta la documentazione JMX per impostare la proprietà richiesta.

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=port-number -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

Per verificare la porta JMX, esegui ps aux | grep jmxremote.port. I risultati dovrebbero mostrare che la porta JMX è stata impostata sui processi JVM.

Configurazione dell'agente per questa soluzione

Le metriche raccolte dall'agente sono definite nella configurazione dell'agente. La soluzione fornisce configurazioni degli agenti per raccogliere le metriche consigliate con dimensioni adeguate per il pannello di controllo della soluzione. Ogni ruolo di Kafka, ad esempio broker, produttore o consumatore, ha una propria configurazione di agente che consente la raccolta delle metriche Kafka e della JVM e delle metriche sottostanti. EC2

I passaggi per l'implementazione della soluzione sono descritti più avanti, nella sezione Implementazione dell'agente per la soluzione. Le informazioni seguenti consentono di comprendere come personalizzare la configurazione dell'agente per l'ambiente in uso.

È necessario personalizzare alcune parti della seguente configurazione dell'agente per il proprio ambiente:

  • Il numero di porta JMX è quello configurato nella sezione precedente di questa documentazione. Il numero di porta si trova nella riga endpoint della configurazione.

  • ClusterName: viene utilizzato come dimensione per le metriche raccolte dai broker. Fornisci un nome significativo che rappresenti il raggruppamento di cluster per le istanze che eseguono il broker Kafka.

  • ProcessGroupName: viene utilizzato come dimensione per le metriche JVM raccolte per i broker. Fornisci lo stesso valore che hai scelto per ClusterName. Questo consente di visualizzare nel pannello di controllo della soluzione le metriche JVM per lo stesso gruppo di broker Kafka a cui si riferiscono le metriche del broker.

  • ProducerGroupName: viene utilizzato come dimensione per le metriche dei producer raccolte. Fornisci un nome significativo che rappresenti il gruppo di istanze dei producer. Per questo valore, puoi specificare l'applicazione o il servizio producer che desideri utilizzare per una visualizzazione combinata delle metriche dei producer nel pannello di controllo della soluzione.

  • ConsumerGroupName: viene utilizzato come dimensione per le metriche dei consumer raccolte. Fornisci un nome significativo che rappresenti il gruppo di istanze dei consumer. Questo non coincide con il concetto di gruppo di consumer in Kafka. Questa è solo una dimensione di raggruppamento in cui è possibile specificare l'applicazione o il servizio consumer che si desidera utilizzare per una visualizzazione combinata delle metriche relative ai consumer nel pannello di controllo della soluzione

Ad esempio, se hai due cluster Kafka in esecuzione nello stesso account, uno per l'applicazione order-processing e l'altro per l'applicazione inventory-management, dovresti impostare conformemente le dimensioni ClusterName e ProcessGroupName nella configurazione dell'agente dell'istanza del broker.

  • Per le istanze del broker del cluster order-processing, imposta ClusterName=order-processing e ProcessGroupName=order-processing.

  • Per le istanze del broker del cluster inventory-management, imposta ClusterName=inventory-management e ProcessGroupName=inventory-management.

  • Allo stesso modo, imposta ProducerGroupName per le istanze producer e ConsumerGroupName per le istanze consumer in base alle rispettive applicazioni.

Se imposti correttamente le dimensioni precedenti, il pannello di controllo della soluzione raggrupperà automaticamente le metriche in base alle dimensioni ClusterName, ProducerGroupName e ConsumerGroupName. Il pannello di controllo includerà opzioni a discesa per selezionare e visualizzare le metriche per cluster e gruppi specifici, consentendoti di monitorare separatamente le prestazioni di singoli cluster e gruppi.

Assicurati di implementare la configurazione dell'agente pertinente nelle istanze corrette. EC2 Ogni configurazione verrà memorizzata come parametro separato nel Parameter Store di SSM, come descritto più avanti nella sezione Fase 2: Archiviare il file di configurazione CloudWatch dell'agente consigliato in Systems Manager Parameter Store.

Le seguenti istruzioni descrivono la situazione in cui i ruoli di produttore, consumatore e broker vengono distribuiti su EC2 istanze separate, senza sovrapposizioni. Se esegui più ruoli Kafka sulle stesse EC2 istanze, consulta per ulteriori informazioni. Configurazione dell'agente per più ruoli Kafka sulla stessa istanza

Configurazione dell'agente per gli agenti broker Kafka

Utilizza la seguente configurazione degli CloudWatch agenti nelle EC2 istanze in cui vengono distribuiti gli agenti broker Kafka. ClusterNameSostituiscilo con il nome del cluster da utilizzare per raggruppare queste metriche per una visualizzazione unificata. Il valore specificato ClusterName viene utilizzato sia come dimensione che come ClusterName dimensione. ProcessGroupName port-numberSostituiscila con la porta JMX del tuo server Kafka. Se JMX è stata abilitata con l'autenticazione tramite password o SSL per l'accesso remoto, consulta Raccolta delle metriche di Java Management Extensions (JMX) per informazioni sulla configurazione di TLS o dell'autorizzazione, se necessario.

Le EC2 metriche mostrate in questa configurazione (configurazione mostrata al di fuori del blocco JMX) funzionano solo per le istanze Linux e macOS. Se utilizzi istanze Windows, puoi scegliere di omettere queste metriche nella configurazione. Per informazioni sulle metriche raccolte sulle istanze di Windows, consulta Metriche raccolte dall' CloudWatchagente sulle istanze di Windows Server.

{ "metrics": { "namespace": "CWAgent", "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "jmx": [ { "endpoint": "localhost:port-number", "kafka": { "measurement": [ "kafka.request.time.avg", "kafka.request.failed", "kafka.request.count", "kafka.purgatory.size", "kafka.partition.under_replicated", "kafka.partition.offline", "kafka.network.io", "kafka.leader.election.rate", "kafka.isr.operation.count" ] }, "append_dimensions": { "ClusterName": "ClusterName" } }, { "endpoint": "localhost:port-number", "jvm": { "measurement": [ "jvm.classes.loaded", "jvm.gc.collections.count", "jvm.gc.collections.elapsed", "jvm.memory.heap.committed", "jvm.memory.heap.max", "jvm.memory.heap.used", "jvm.memory.nonheap.committed", "jvm.memory.nonheap.max", "jvm.memory.nonheap.used", "jvm.threads.count" ] }, "append_dimensions": { "ProcessGroupName": "ClusterName" } } ], "disk": { "measurement": [ "used_percent" ] }, "mem": { "measurement": [ "used_percent" ] }, "swap": { "measurement": [ "used_percent" ] }, "netstat": { "measurement": [ "tcp_established", "tcp_time_wait" ] } } } }

Configurazione dell'agente per i produttori di Kafka

Utilizza la seguente configurazione dell' CloudWatch agente sulle EC2 istanze Amazon in cui vengono distribuiti i produttori di Kafka. Sostituiscilo ProducerGroupName con il nome dell'applicazione o del gruppo che desideri utilizzare per raggruppare i parametri per una visualizzazione unificata. port-numberSostituiscila con la porta JMX della tua applicazione Kafka Producer.

La soluzione non abilita le metriche JVM per i producer di Kafka perché il pannello di controllo della soluzione non mostra le metriche JVM relative a JVM per i producer. È possibile personalizzare la configurazione dell'agente per emettere anche metriche JVM, tuttavia le metriche JVM relative ai producer non sono visibili nel pannello di controllo della soluzione.

{ "metrics": { "namespace": "CWAgent", "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "jmx": [ { "endpoint": "localhost:port-number", "kafka-producer": { "measurement": [ "kafka.producer.request-rate", "kafka.producer.byte-rate", "kafka.producer.request-latency-avg", "kafka.producer.response-rate", "kafka.producer.record-error-rate", "kafka.producer.record-send-rate" ] }, "append_dimensions": { "ProducerGroupName": "ProducerGroupName" } } ] } } }

Configurazione dell'agente per i consumatori di Kafka

Usa la seguente configurazione dell' CloudWatch agente nelle EC2 istanze in cui sono in esecuzione i consumatori Kafka. Sostituiscilo ConsumerGroupName con il nome dell'applicazione o del gruppo da utilizzare per raggruppare queste metriche per una visualizzazione unificata. port-numberSostituiscila con la porta JMX della tua applicazione consumer Kafka.

La soluzione non abilita le metriche JVM per i consumer Kafka perché il pannello di controllo della soluzione non mostra le metriche JVM relative a JVM per i consumer. È possibile personalizzare la configurazione dell'agente per emettere anche metriche JVM, tuttavia le metriche JVM relative al consumer non sono visibili nel pannello di controllo della soluzione.

{ "metrics": { "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "jmx": [ { "endpoint": "localhost:port-number", "kafka-consumer": { "measurement": [ "kafka.consumer.fetch-rate", "kafka.consumer.total.bytes-consumed-rate", "kafka.consumer.records-consumed-rate", "kafka.consumer.bytes-consumed-rate", "kafka.consumer.records-lag-max" ] }, "append_dimensions": { "ConsumerGroupName": "ConsumerGroupName" } } ] } } }

Implementazione dell'agente per la soluzione

Esistono diversi approcci per l'installazione dell' CloudWatch agente, a seconda del caso d'uso. Si consiglia di utilizzare Systems Manager per questa soluzione. Fornisce un'esperienza da console e semplifica la gestione di una flotta di server gestiti all'interno di un unico AWS account. Le istruzioni in questa sezione utilizzano Systems Manager e sono destinate a quando l' CloudWatch agente non è in esecuzione con configurazioni esistenti. È possibile verificare se l' CloudWatch agente è in esecuzione seguendo la procedura riportata di seguito. Verifica che l' CloudWatch agente sia in esecuzione

Se stai già eseguendo l' CloudWatch agente sugli EC2 host in cui è distribuito il carico di lavoro e gestisci le configurazioni degli agenti, puoi saltare le istruzioni in questa sezione e seguire il meccanismo di distribuzione esistente per aggiornare la configurazione. Assicurati di unire la configurazione dell'agente in base al ruolo (broker, producer o consumer) con la configurazione dell'agente esistente, quindi implementa la configurazione unita. Se si utilizza Systems Manager per archiviare e gestire la configurazione per l' CloudWatch agente, è possibile unire la configurazione al valore del parametro esistente. Per ulteriori informazioni, vedere Gestione dei file di configurazione CloudWatch dell'agente.

Nota

L'utilizzo di Systems Manager per distribuire le seguenti configurazioni di CloudWatch agenti sostituirà o sovrascriverà qualsiasi configurazione CloudWatch dell'agente esistente sulle istanze. EC2 Puoi modificare questa configurazione per adattarla al tuo ambiente o caso d'uso specifico. Le metriche definite in questa soluzione sono il requisito minimo richiesto per il pannello di controllo consigliato.

Il processo di implementazione include i seguenti passaggi:

  • Passaggio 1: assicurati che le EC2 istanze di destinazione dispongano delle autorizzazioni IAM richieste.

  • Passaggio 2: archiviare il file di configurazione dell'agente consigliato nel Parameter Store di Systems Manager.

  • Passaggio 3: installa l' CloudWatch agente su una o più EC2 istanze utilizzando uno stack. CloudFormation

  • Passaggio 4: verificare che la configurazione dell'agente sia corretta.

È necessario ripetere questi passaggi a seconda che il broker, il produttore e il consumatore siano distribuiti sulla stessa EC2 istanza o su istanze diverse. Ad esempio, se il broker, il produttore e i consumatori di Kafka vengono distribuiti su istanze separate senza sovrapposizioni, è necessario ripetere questi passaggi tre volte con le configurazioni degli agenti appropriate per le istanze broker, producer e consumer. EC2

Passaggio 1: assicurati che le istanze di destinazione dispongano delle autorizzazioni IAM richieste EC2

È necessario concedere l'autorizzazione a Systems Manager per installare e configurare l' CloudWatch agente. È inoltre necessario concedere all' CloudWatch agente l'autorizzazione a pubblicare dati di telemetria dall'istanza a EC2 . CloudWatch Assicurati che il ruolo IAM associato all'istanza abbia CloudWatchAgentServerPolicyle policy di Amazon SSMManaged InstanceCore IAM allegate.

Fase 2: Archiviare il file di configurazione CloudWatch dell'agente consigliato in Systems Manager Parameter Store

Parameter Store semplifica l'installazione dell' CloudWatch agente su un' EC2 istanza archiviando e gestendo in modo sicuro i parametri di configurazione, eliminando la necessità di valori codificati. Ciò garantisce un processo di implementazione più sicuro e flessibile, che consente una gestione centralizzata e aggiornamenti più semplici delle configurazioni su più istanze.

Utilizzate i seguenti passaggi per memorizzare il file di configurazione dell' CloudWatch agente consigliato come parametro in Parameter Store.

Per creare il file di configurazione CloudWatch dell'agente come parametro
  1. Apri la AWS Systems Manager console all'indirizzo https://console.aws.amazon.com/systems-manager/.

  2. Dal pannello di navigazione, scegli Gestione applicazioni, Parameter Store.

  3. Per creare un nuovo parametro per la configurazione, segui questi passaggi.

    1. Scegli Create parameter (Crea parametro).

    2. Fornisci un nome per il parametro che memorizzerà la configurazione CloudWatch dell'agente, ad esempio AmazonCloudWatch-Kafka-Producer-Configuration per i produttori, AmazonCloudWatch-Kafka-Consumer-Configuration per i consumatori o AmazonCloudWatch-Kafka-Broker-Configuration per i broker. Se hai più ruoli Kafka su un singolo ruolo EC2, assegna un nome ai ruoli di conseguenza per una più facile identificazione. Questo valore verrà successivamente utilizzato per distribuire questa configurazione all'agente in esecuzione EC2 sull'istanza.

    3. Per Livello parametri, scegli Standard.

    4. Per Type (Tipo), scegliere String.

    5. Per Tipo di dati, scegli testo.

    6. Nella casella Valore, incolla il testo completo della configurazione dell' CloudWatch agente. Assicurati di selezionare il blocco JSON per il ruolo Kafka ospitato da questa istanza. Fai riferimento alla configurazione fornita in Configurazione dell'agente per gli agenti broker Kafka, Configurazione dell'agente per i produttori di Kafka e Configurazione dell'agente per i consumatori di Kafka quando memorizzi la configurazione rispettivamente per broker, producer e consumer. Se esegui più ruoli Kafka sulla stessa EC2 istanza, assicurati di unire la configurazione, se necessario, come descritto nella Configurazione dell'agente per più ruoli Kafka sulla stessa istanza stessa istanza

    7. Scegli Create parameter (Crea parametro).

Fase 3: Installare l' CloudWatch agente e applicare la configurazione utilizzando un modello CloudFormation

È possibile utilizzare AWS CloudFormation per installare l'agente e configurarlo in modo da utilizzare la configurazione dell' CloudWatch agente creata nei passaggi precedenti.

Per installare e configurare l' CloudWatch agente per questa soluzione
  1. Apri la procedura guidata CloudFormationQuick create stack utilizzando questo link: https://console.aws.amazon.com/cloudformation/ home? #/ stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw - -1.0.0.json. agent-installation-template

  2. Verifica che la Regione selezionata sulla console sia quella in cui è in esecuzione il carico di lavoro Kafka.

  3. Per Nome dello stack, inserisci un nome per identificare questo stack, ad esempio CWAgentInstallationStack.

  4. Nella sezione Parametri, specifica quanto segue:

    1. Per CloudWatchAgentConfigSSM, inserisci il nome del parametro Systems Manager per la configurazione dell'agente creata in precedenza, ad esempio AmazonCloudWatch-Kafka-Broker-Configuration per broker, AmazonCloudWatch-Kafka-Producer-Configuration produttori e consumatoriAmazonCloudWatch-Kafka-Consumer-Configuration.

    2. Per selezionare le istanze di destinazione, sono disponibili due opzioni.

      1. Per InstanceIds, specifica un elenco delimitato da virgole di un elenco di istanze IDs IDs in cui desideri installare l'agente con questa configurazione. CloudWatch Puoi elencare una singola istanza o più istanze.

      2. Se esegui la distribuzione su larga scala, puoi specificare l'TagKeye la corrispondente TagValueper indirizzare tutte le EC2 istanze con questo tag e valore. Se si specifica a TagKey, è necessario specificare un corrispondente. TagValue (Per un gruppo Auto Scaling, specificare TagKeye specificare aws:autoscaling:groupName il nome del gruppo Auto Scaling da distribuire su tutte le TagValueistanze all'interno del gruppo Auto Scaling.)

        Se specificate sia i TagKeysparametri che quelli, InstanceIdsavranno la precedenza InstanceIdse i tag verranno ignorati.

  5. Esamina le impostazioni e quindi scegli Crea stack.

Se desideri prima modificare il file modello per personalizzarlo, scegli l'opzione Carica un file modello in Procedura guidata creazione stack per caricare il modello modificato. Per ulteriori informazioni, consulta Creazione di uno stack sulla console. CloudFormation È possibile utilizzare il seguente collegamento per scaricare il modello: https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw- agent-installation-template -1.0.0.json.

Nota

Una volta completato questo passaggio, questo parametro Systems Manager verrà associato agli CloudWatch agenti in esecuzione nelle istanze di destinazione. Ciò significa che:

  1. Se il parametro Systems Manager viene eliminato, l'agente si arresta.

  2. Se il parametro Systems Manager viene modificato, le modifiche alla configurazione verranno applicate automaticamente all'agente alla frequenza pianificata, che per impostazione predefinita è di 30 giorni.

  3. Se si desidera applicare immediatamente le modifiche a questo parametro Systems Manager, è necessario eseguire nuovamente questo passaggio. Per ulteriori informazioni sulle associazioni, consulta Utilizzo delle associazioni in Systems Manager.

Passaggio 4: verificare che la configurazione dell'agente sia corretta

È possibile verificare se l' CloudWatch agente è installato seguendo la procedura riportata di seguito. Verifica che l' CloudWatch agente sia in esecuzione Se l' CloudWatch agente non è installato e non è in esecuzione, assicurati di aver configurato tutto correttamente.

Se tutto è impostato correttamente, dovresti vedere le metriche di Kafka pubblicate su. CloudWatch Puoi controllare la CloudWatch console per verificare che vengano pubblicate.

Per verificare che le metriche di Kafka vengano pubblicate su CloudWatch
  1. Apri la console all' CloudWatch indirizzo. https://console.aws.amazon.com/cloudwatch/

  2. Scegli Metriche, Tutte le metriche.

  3. Assicurati di aver selezionato la regione in cui hai distribuito la soluzione e scegli Namespace personalizzati,. CWAgent

  4. Cerca le metriche menzionate nella sezione sulla configurazione degli agenti di questo documento, ad esempio kafka.partition.offline per i broker, kafka.consumer.fetch.rate per i consumer o kafka.producer.request-rate per i producer. Se vedi risultati per queste metriche, significa che le metriche vengono pubblicate su. CloudWatch

Crea il pannello di controllo della soluzione Kafka

Questo pannello di controllo mostra le nuove metriche emesse sia per Kafka che per la JVM sottostante. Questo pannello di controllo offre ai collaboratori principali una panoramica sull'integrità del carico di lavoro di Kafka, tra producer, broker e consumer. La visualizzazione collaboratori principali mostra il widget dei principali 10 per metrica. Ciò consente di identificare i valori anomali a colpo d'occhio.

La dashboard della soluzione non mostra EC2 le metriche. Per visualizzare le EC2 metriche, dovrai utilizzare la dashboard EC2 automatica per visualizzare le metriche EC2 vendute e utilizzare la dashboard della EC2 console per visualizzare le EC2 metriche raccolte dall'agente. CloudWatch Per ulteriori informazioni sui dashboard automatici per i servizi, consulta. AWS Visualizzazione di un pannello di controllo CloudWatch per un singolo servizio AWS

Per creare il pannello di controllo, puoi utilizzare le seguenti opzioni:

  • Usa la CloudWatch console per creare la dashboard.

  • Usa AWS CloudFormation la console per distribuire la dashboard.

  • Scarica l' AWS CloudFormation infrastruttura come codice e integrala come parte della tua automazione di integrazione continua (CI).

Utilizzando la CloudWatch console per creare una dashboard, puoi visualizzarne l'anteprima prima di crearla effettivamente e ricevere l'addebito.

Nota

La dashboard creata con CloudFormation questa soluzione mostra le metriche della regione in cui viene distribuita la soluzione. Assicurati di creare lo CloudFormation stack nella regione in cui sono pubblicate le metriche JVM e Kafka.

Se hai specificato uno spazio dei nomi personalizzato diverso CWAgent dalla configurazione dell' CloudWatch agente, dovrai modificare il CloudFormation modello per la dashboard per sostituirlo CWAgent con lo spazio dei nomi personalizzato che stai utilizzando.

Per creare la dashboard tramite Console CloudWatch
Nota

I pannelli di controllo delle soluzioni attualmente mostrano le metriche relative alla rimozione di oggetti inutili (garbage collection) solo per G1 Garbage Collector, che è il raccoglitore predefinito per le ultime versioni di Java. Se si utilizza un algoritmo di rimozione di oggetti inutili (garbage collection) diverso, i widget relativi alla rimozione sono vuoti. Tuttavia, puoi personalizzare questi widget modificando il CloudFormation modello di dashboard e applicando il tipo di raccolta dei rifiuti appropriato alla dimensione del nome delle metriche relative alla raccolta dei rifiuti. Ad esempio, se utilizzi la rimozione di oggetti inutili (garbage collection) parallela, modifica name=\"G1 Young Generation\" in name=\"Parallel GC\" per la metrica di conteggio della rimozione di oggetti inutili (garbage collection) jvm.gc.collections.count.

  1. Apri la CloudWatch Console Create Dashboard utilizzando questo link: home? https://console.aws.amazon.com/cloudwatch/ #dashboards? Modello di dashboard = ApacheKafkaOnEc 2&referrer=os-catalog.

  2. Verifica che la Regione selezionata sulla console sia quella in cui è in esecuzione il carico di lavoro Kafka.

  3. Immetti il nome del pannello di controllo e scegli Crea pannello di controllo.

    Per distinguere facilmente questo pannello di controllo da altri simili in Regioni diverse, consigliamo di includere il nome della Regione nel nome del pannello di controllo, ad esempio KafkaDashboard-us-east-1.

  4. Visualizza l'anteprima del pannello di controllo e scegli Salva per creare il pannello di controllo.

Per creare la dashboard tramite CloudFormation
  1. Apri la procedura guidata di creazione CloudFormation rapida dello stack utilizzando questo link: https://console.aws.amazon.com/cloudformation/ home? #/ stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Kafka_EC2/CloudWatch/CFN/v1.0.0/dashboard -template-1.0.0.json.

  2. Verifica che la Regione selezionata sulla console sia quella in cui è in esecuzione il carico di lavoro Kafka.

  3. Per Nome dello stack, inserisci un nome per identificare questo stack, ad esempio KafkaDashboardStack.

  4. Nella sezione Parametri, specifica il nome del pannello di controllo sotto il parametro. DashboardName

    Per distinguere facilmente questo pannello di controllo da altri simili in Regioni diverse, consigliamo di includere il nome della Regione nel nome del pannello di controllo, ad esempio KafkaDashboard-us-east-1.

  5. Riconosci le capacità di accesso per le trasformazioni nella sezione Capacità e trasformazioni. Tieni presente che CloudFormation non aggiunge alcuna risorsa IAM.

  6. Esamina le impostazioni e quindi scegli Crea stack.

  7. Una volta che lo stato dello stack è CREATE_COMPLETE, scegli la scheda Risorse sotto lo stack creato, quindi scegli il link in ID fisico per accedere al pannello di controllo. Puoi anche accedere alla dashboard nella CloudWatch console selezionando Dashboard nel riquadro di navigazione a sinistra della console e trovando il nome della dashboard in Dashboard personalizzate.

Se desideri modificare il file modello per personalizzarlo per qualsiasi scopo, puoi utilizzare l'opzione Carica un file modello in Procedura guidata creazione stack per caricare il modello modificato. Per ulteriori informazioni, consulta Creazione di uno stack sulla console. CloudFormation Puoi usare questo link per scaricare il modello: https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Kafka_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json.

Nota

I pannelli di controllo delle soluzioni attualmente mostrano le metriche relative alla rimozione di oggetti inutili (garbage collection) solo per G1 Garbage Collector, che è il raccoglitore predefinito per le ultime versioni di Java. Se si utilizza un algoritmo di rimozione di oggetti inutili (garbage collection) diverso, i widget relativi alla rimozione sono vuoti. Tuttavia, puoi personalizzare questi widget modificando il CloudFormation modello di dashboard e applicando il tipo di raccolta dei rifiuti appropriato alla dimensione del nome delle metriche relative alla raccolta dei rifiuti. Ad esempio, se utilizzi la rimozione di oggetti inutili (garbage collection) parallela, modifica name=\"G1 Young Generation\" in name=\"Parallel GC\" per la metrica di conteggio della rimozione di oggetti inutili (garbage collection) jvm.gc.collections.count.

Nozioni di base sul pannello di controllo Kafka

Ecco alcune attività che puoi provare con il nuovo pannello di controllo di Kafka. Queste attività permettono di accertarsi che il pannello di controllo funzioni correttamente e offrono un'esperienza pratica nel suo utilizzo per monitorare un cluster Kafka. Provandole, acquisirai familiarità con la navigazione nel pannello di controllo e l'interpretazione delle metriche visualizzate.

Utilizzo degli elenchi a discesa

Nella parte superiore del pannello di controllo trovi elenchi a discesa per filtrare e selezionare il cluster Kafka, il producer e i gruppi di consumer che desideri monitorare.

  • Per visualizzare le metriche per uno specifico cluster Kafka, seleziona il nome del cluster nell'elenco a discesa Cluster Kafka.

  • Per visualizzare le metriche per uno specifico gruppo di producer Kafka, seleziona il nome del gruppo di producer nell'elenco a discesa Producer Kafka.

  • Per visualizzare le metriche per uno specifico gruppo di consumer Kafka, seleziona il nome del gruppo di consumer nell'elenco a discesa Gruppo di consumer Kafka.

Verifica dell'integrità del cluster

Nella sezione Panoramica del cluster, trova i widget Partizioni sottoreplicate e Repliche in sincronizzazione. Idealmente, dovrebbero essere pari a zero o un numero piccolo. Un valore elevato per una qualsiasi di queste metriche potrebbe indicare problemi con il cluster Kafka che richiedono un'analisi.

Analisi delle prestazioni del broker

Nella sezione Broker, trova i widget Richieste di recupero non riuscite e Richieste del producer non riuscite. Questi mostrano, rispettivamente, il numero di richieste non riuscite per le operazioni di recupero e produzione. Tassi di errore elevati potrebbero indicare problemi con i broker o la connettività di rete che richiedono ulteriori analisi.

Monitoraggio delle prestazioni dei producer

Nella sezione Panoramica del gruppo Producer, trova i widget Average Request Rate, Average Request Latency e Average Record Rate. Send/Error Questi ti daranno una panoramica delle prestazioni dei producer del gruppo selezionato. Puoi anche approfondire la visualizzazione delle metriche relative a producer e argomenti specifici nella sezione Producer.

Monitoraggio del ritardo dei consumer

Nella sezione Panoramica gruppo consumer, trova il widget Ritardo del consumer. Questo mostra quanto i consumer siano in ritardo nell'elaborazione dei messaggi rispetto agli offset più recenti delle partizioni a cui sono abbonati. Idealmente, il ritardo dei consumer dovrebbe essere basso o pari a zero. Un elevato ritardo tra i consumer potrebbe indicare che questi non sono in grado di tenere il passo con il ritmo di produzione dei dati, con conseguenti potenziali perdite di dati o ritardi nell'elaborazione. Puoi anche approfondire le metriche relative a consumer e argomenti specifici nella sezione Consumer.

Configurazione dell'agente per più ruoli Kafka sulla stessa istanza

Le configurazioni individuali per i ruoli di Kafka elencate in CloudWatch configurazione dell'agente per questa soluzione si applicano solo quando i ruoli produttore, consumatore e broker vengono distribuiti su istanze separate EC2 , senza alcuna sovrapposizione. Se esegui più ruoli Kafka sulle stesse EC2 istanze Amazon, hai due opzioni:

  • Creare un singolo file di configurazione dell'agente che elenca e configura tutte le metriche per tutti i ruoli Kafka implementati su quell'istanza. Se si intende utilizzare Systems Manager per gestire la configurazione degli agenti, questa è l'opzione preferita.

    Se si sceglie questa opzione e i diversi ruoli Kafka fanno parte dello stesso processo JVM, è necessario specificare lo stesso endpoint per ogni ruolo Kafka nella configurazione dell'agente. Se i ruoli multipli di Kafka fanno parte di processi JVM diversi, l'endpoint per ogni ruolo può essere diverso a seconda della porta JMX impostata per quel processo.

  • Creare file di configurazione dell'agente separati per ogni ruolo Kafka e configurare l'agente per applicare entrambi i file di configurazione. Per istruzioni sull'applicazione di più file di configurazione, consulta Creazione di più file di configurazione degli CloudWatch agenti.

L'esempio seguente mostra una configurazione di CloudWatch agente in cui i ruoli produttore e consumatore vengono eseguiti su un'istanza come parte dello stesso processo JVM. In questo caso, il numero di porta deve essere lo stesso sia nella parte producer che in quella consumer della configurazione riportata di seguito. Invece, se i due ruoli venissero eseguiti come parte di processi JVM diversi, è possibile specificare numeri di porta diversi per ciascuno, in base alla porta JMX di ogni singolo processo JVM.

{ "metrics": { "namespace": "CWAgent", "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "jmx": [ { "endpoint": "localhost:port-number", "kafka-producer": { "measurement": [ "kafka.producer.request-rate", "kafka.producer.byte-rate", "kafka.producer.request-latency-avg", "kafka.producer.response-rate", "kafka.producer.record-error-rate", "kafka.producer.record-send-rate" ] }, "append_dimensions": { "ProducerGroupName": "ProducerGroupName" } }, { "endpoint": "localhost:port-number", "kafka-consumer": { "measurement": [ "kafka.consumer.fetch-rate", "kafka.consumer.total.bytes-consumed-rate", "kafka.consumer.records-consumed-rate", "kafka.consumer.bytes-consumed-rate", "kafka.consumer.records-lag-max" ] }, "append_dimensions": { "ConsumerGroupName": "ConsumerGroupName" } } ] } } }