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 del server Kafka, fornendo informazioni preziose per i seguenti casi d'uso:

  • Monitora lo stato del cluster Kafka tramite metriche di replica e sincronizzazione.

  • Tieni traccia delle prestazioni del broker attraverso gli errori e le latenze delle richieste insieme al traffico di rete.

  • Monitora gli errori, le latenze e il ritardo dei produttori e dei consumatori.

  • Analizza le prestazioni sottostanti per i cluster KafkaJVM.

  • Passa da un cluster Kafka all'altro, produttori e consumatori configurati tramite la soluzione con lo stesso account.

Di seguito sono riportati i principali vantaggi della soluzione:

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

  • Fornisce una dashboard preconfigurata e consolidata per Kafka e le metriche. CloudWatch JVM 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. Consente inoltre di raggruppare le metriche in applicazioni logiche per semplificare la messa a fuoco e la gestione.

L'immagine seguente è un esempio del pannello di controllo di questa soluzione.

Kafka cluster dashboard showing metrics like partitions, request times, and failure rates.

Costi

Questa soluzione crea e utilizza le risorse del tuo account. Ti vengono addebitati i costi per l'utilizzo standard, incluso quanto segue:

  • 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 produttore configurato per la soluzione pubblica tre metriche con la topic dimensione e tre metriche senza la dimensione. topic Per le metriche con la topic dimensione, ogni argomento viene considerato come una metrica separata.

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

  • Una dashboard personalizzata.

  • APIoperazioni 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 PutMetricDataAPIverrà chiamato 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= (33+ numero medio di percorsi del disco per EC2 host) * number_of_ec2_broker_hosts

    • producer_metrics_count= (3 * numero_medio_of_topics_per_producer_host + 3) * numero_of_ec2_producer_hosts

    • consumer_metrics_count= (2 * numero_medio_del_topics_per_consumer_host + 3) * numero_di_ec2_consumer_hosts

  3. APIsNella sezione, per Numero di richieste, inserisci. API 43200 * 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 Dashboard e allarmi, per Numero di dashboard, 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 con l'agente CloudWatch

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

JMXDescrivi i ruoli di Kafka come broker, produttore e consumatore

L' CloudWatch agente si affida alla raccolta delle metriche relative JMX ai broker, ai produttori e ai consumatori di Kafka. Per rendere possibile tutto ciò, è necessario esporre la JMX porta sui server e sulle applicazioni.

Per i broker Kafka, è necessario utilizzare la variabile di JMX_PORT ambiente per impostare la porta. Dovrai riavviare i broker dopo aver impostato questa variabile di ambiente. 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 JMX porta. Assicurati di specificare un numero di porta non utilizzato.

export JMX_PORT=port-number

Per i produttori e i consumatori di Kafka, le istruzioni per esporre la JMX porta dipendono dal tipo di carico di lavoro utilizzato per l'applicazione per produttori o consumatori. JVM Consultate la documentazione dell'applicazione per trovare queste istruzioni.

In generale, per abilitare una JMX porta per il monitoraggio e la gestione, è necessario impostare le seguenti proprietà di sistema per l'JVMapplicazione. L'esempio seguente configura un sistema non autenticatoJMX. Se i criteri e i requisiti di sicurezza richiedono l'attivazione JMX con password o l'accesso remoto, consulta la JMXdocumentazione SSL 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 JMX porta, esegui. ps aux | grep jmxremote.port I risultati dovrebbero mostrare che la JMX porta è stata impostata sui JVM processi.

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 dashboard 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 delle metriche e dei parametri sottostanti. JVM EC2

I passaggi per l'implementazione della soluzione sono descritti più avanti. Implementa l'agente per la tua soluzione Le seguenti informazioni hanno lo scopo di aiutarvi a capire come personalizzare la configurazione dell'agente per il vostro ambiente.

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

  • Il numero di JMX porta è il numero di porta configurato nella sezione precedente di questa documentazione. Il numero di porta si trova nella endpoint riga 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 raccolte per i JVM broker. Fornisci lo stesso valore che offri. ClusterName Ciò consente di visualizzare le JVM metriche dello stesso gruppo di broker Kafka delle metriche dei broker nella dashboard della soluzione.

  • ProducerGroupName— Viene utilizzata come dimensione per le metriche dei produttori raccolte. Fornisci un nome significativo che rappresenti il gruppo di istanze del produttore. Per questo valore, puoi specificare l'applicazione o il servizio di produzione che desideri utilizzare per una visualizzazione combinata delle metriche dei produttori nella dashboard della soluzione.

  • ConsumerGroupName— Viene utilizzata come dimensione per le metriche dei consumatori raccolte. Fornisci un nome significativo che rappresenti il gruppo di istanze di consumatori. Non è lo stesso concetto di gruppo di consumatori 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 consumatori nella dashboard della soluzione

Ad esempio, se avete due cluster Kafka in esecuzione nello stesso account, uno per l'order-processingapplicazione e l'altro per l'inventory-managementapplicazione, dovreste impostare le ProcessGroupName dimensioni ClusterName and di conseguenza nella configurazione dell'agente dell'istanza del broker.

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

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

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

Se imposti correttamente le dimensioni precedenti, la dashboard della soluzione raggrupperà automaticamente le metriche in base alle dimensioni ClusterNameProducerGroupName, e. ConsumerGroupName La dashboard 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à archiviata come parametro separato nel SSM Parameter Store, come descritto più avanti. 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 alcuna sovrapposizione. Se esegui più ruoli Kafka sulle stesse EC2 istanze, consulta per ulteriori informazioni. Configura l'agente per più ruoli Kafka sulla stessa istanza

Configurazione degli agenti per gli agenti broker Kafka

Utilizza la seguente configurazione degli CloudWatch agenti nelle EC2 istanze in cui vengono distribuiti gli agenti broker Kafka. Replace (Sostituisci) ClusterName con il nome del cluster da utilizzare per raggruppare queste metriche per una visualizzazione unificata. Il valore per cui specifichi ClusterName viene utilizzato sia come ClusterName dimensione che come ProcessGroupName dimensione. Replace (Sostituisci) port-number con la JMX porta del tuo server Kafka.

Le EC2 metriche mostrate in questa configurazione (configurazione mostrata all'esterno del JMX blocco) 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' CloudWatch agente 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. Replace (Sostituisci) ProducerGroupName con il nome dell'applicazione o del gruppo che desideri utilizzare per raggruppare i parametri per una visualizzazione unificata. Replace (Sostituisci) port-number con la JMX porta della tua applicazione Kafka Producer.

La soluzione non abilita le JVM metriche per i produttori di Kafka perché la dashboard della soluzione non mostra le JVM metriche relative ai produttori. JVM È possibile personalizzare la configurazione degli agenti anche in modo da emettere JVM metriche, tuttavia le JVM metriche relative ai produttori non sono visibili nella dashboard 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. Replace (Sostituisci) ConsumerGroupName con il nome dell'applicazione o del gruppo da utilizzare per raggruppare queste metriche per una visualizzazione unificata. Replace (Sostituisci) port-number con la JMX porta della tua applicazione Kafka consumer.

La soluzione non abilita le JVM metriche per i consumatori di Kafka perché la dashboard della soluzione non mostra le JVM metriche relative ai consumatori. JVM È possibile personalizzare la configurazione dell'agente anche in modo da emettere JVM metriche, tuttavia le JVM metriche relative al consumatore non sono visibili nella dashboard 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" } } ] } } }

Implementa l'agente per la tua 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, produttore o consumatore) con la configurazione dell'agente esistente, quindi distribuisci 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 È possibile modificare questa configurazione per adattarla all'ambiente o al caso d'uso specifici. Le metriche definite in questa soluzione sono le minime richieste per la dashboard consigliata.

Il processo di distribuzione include i seguenti passaggi:

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

  • Passaggio 2: archiviare il file di configurazione dell'agente consigliato nell'archivio dei parametri di Systems Manager.

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

  • Fase 4: Verificare che la configurazione dell'agente sia configurata correttamente.

È 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 necessarie EC2 IAM

È 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 aEC2. CloudWatch Assicurati che al IAM ruolo associato all'istanza siano associate le politiche CloudWatchAgentServerPolicye A. mazonSSMManaged InstanceCore IAM

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'EC2istanza 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.

Utilizzare i passaggi seguenti per archiviare 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. Segui questi passaggi per creare un nuovo parametro per la configurazione.

    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 ruoloEC2, 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 il 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 JSON blocco per il ruolo Kafka ospitato da questa istanza. Fate riferimento alla configurazione fornita in Configurazione degli agenti per gli agenti broker Kafka e Configurazione dell'agente per i consumatori di Kafka quando memorizzate la configurazione rispettivamente per broker, produttore e consumatore. Configurazione dell'agente per i produttori di Kafka Se esegui più ruoli di Kafka sulla stessa EC2 istanza, assicurati di unire la configurazione, se necessario, come descritto nella Configura l'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 AWS 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 AWS CloudFormationQuick create stack utilizzando questo link: https://console.aws.amazon.com/cloudformation/ home? #/ stacks/quickcreate?templateURL=https://aws-observability-solutions.s3.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw - -1.0.0.json. agent-installation-template

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

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

  4. Nella sezione Parametri, specificate quanto segue:

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

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

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

      2. Se si esegue una distribuzione su larga scala, è possibile specificare l'istanza corrispondente TagValueper indirizzare tutte le EC2 istanze con questo tag TagKeye questo 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 TagKeyistanze all'interno del gruppo Auto Scaling.)

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

  5. Controlla le impostazioni, quindi scegli Crea pila.

Se desideri prima modificare il file modello per personalizzarlo, scegli l'opzione Carica un file modello in Create Stack Wizard per caricare il modello modificato. Per ulteriori informazioni, consulta Creazione di uno stack sulla console. AWS CloudFormation È possibile utilizzare il seguente collegamento per scaricare il modello: https://aws-observability-solutions.s3.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, vedere Utilizzo delle associazioni in Systems Manager.

Fase 4: Verificare che la configurazione dell'agente sia configurata correttamente

È possibile verificare se l' CloudWatch agente è installato seguendo la procedura riportata di seguitoVerifica 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 broker, kafka.consumer.fetch.rate consumatori o produttori. kafka.producer.request-rate Se vedi risultati per queste metriche, significa che le metriche vengono pubblicate su. CloudWatch

Crea la dashboard della soluzione Kafka

Questa dashboard mostra le nuove metriche emesse sia per Kafka che per quelle sottostanti. JVM Questa dashboard offre ai principali collaboratori una panoramica sullo stato di avanzamento del carico di lavoro di Kafka, tra produttori, broker e consumatori. La visualizzazione principale dei collaboratori mostra i primi 10 widget per metrica. Ciò consente di identificare i valori anomali a colpo d'occhio.

La dashboard della soluzione non mostra le metriche. EC2 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 una CloudWatch dashboard per un singolo utente AWS service

Per creare la dashboard, puoi utilizzare le seguenti opzioni:

  • Usa CloudWatch la 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 AWS CloudFormation questa soluzione mostra le metriche della regione in cui viene distribuita la soluzione. Assicurati di creare lo AWS CloudFormation stack nella regione in cui sono pubblicate le tue metriche JVM e quelle di Kafka.

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

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

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

  3. Inserisci il nome della dashboard, quindi scegli Crea dashboard.

    Per distinguere facilmente questa dashboard da dashboard simili in altre regioni, ti consigliamo di includere il nome della regione nel nome della dashboard, ad esempio. KafkaDashboard-us-east-1

  4. Visualizza l'anteprima della dashboard e scegli Salva per creare la dashboard.

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

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

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

  4. Nella sezione Parametri, specifica il nome della dashboard sotto il DashboardNameparametro.

    Per distinguere facilmente questa dashboard da dashboard simili in altre regioni, ti consigliamo di includere il nome della regione nel nome della dashboard, ad esempio. KafkaDashboard-us-east-1

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

  6. Controlla le impostazioni, quindi scegli Crea pila.

  7. Dopo che lo stato dello stack è CREATE_ COMPLETE, scegli la scheda Risorse sotto lo stack creato, quindi scegli il link sotto Physical ID per accedere alla dashboard. 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 Create Stack Wizard per caricare il modello modificato. Per ulteriori informazioni, consulta Creazione di uno stack sulla console. AWS CloudFormation Puoi usare questo link per scaricare il modello: https://aws-observability-solutions.s3.amazonaws.com/Kafka_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json.

Inizia con la dashboard di Kafka

Ecco alcune attività che puoi provare con la nuova dashboard di Kafka. Queste attività consentono di verificare che la dashboard funzioni correttamente e di fornirti un'esperienza pratica nell'utilizzarla per monitorare un cluster Kafka. Man mano che le provi, acquisirai familiarità con la navigazione nella dashboard e l'interpretazione delle metriche visualizzate.

Utilizzo degli elenchi a discesa

La dashboard fornisce elenchi a discesa nella parte superiore che puoi utilizzare per filtrare e selezionare lo specifico cluster di Kafka, i produttori e i gruppi di consumatori che desideri monitorare.

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

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

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

Verifica lo stato del cluster

Nella sezione Panoramica del cluster, trova i widget Partitions Under Replicated e In-Sync Replicas. Idealmente dovrebbero essere 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.

Analizza le prestazioni del broker

Nella sezione Broker, trova i widget Failed Fetch Requests e Failed Producer Requests. 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 indagini.

Monitora le prestazioni dei produttori

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

Monitora il ritardo dei consumatori

Nella sezione Consumer Group Overview, trova il widget Consumer Lag. Ciò dimostra quanto siano indietro i consumatori nell'elaborazione dei messaggi provenienti dagli ultimi offset delle partizioni a cui sono abbonati. Idealmente, il ritardo dei consumatori dovrebbe essere basso o pari a zero. Un elevato ritardo tra i consumatori potrebbe indicare che i consumatori 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 visualizzare in dettaglio le metriche relative a consumatori e argomenti specifici nella sezione Consumatori.

Configura l'agente per più ruoli Kafka sulla stessa istanza

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

  • Crea un unico file di configurazione dell'agente che elenchi e configuri tutte le metriche per tutti i ruoli Kafka distribuiti 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 JVM processo, è necessario specificare lo stesso endpoint per ogni ruolo Kafka nella configurazione dell'agente. Se i ruoli multipli di Kafka fanno parte di JVM processi diversi, l'endpoint per ogni ruolo può essere diverso a seconda della porta impostata per quel processo. JMX

  • Crea file di configurazione dell'agente separati per ogni ruolo di Kafka e configura l'agente per applicare entrambi i file di configurazione. Per istruzioni sull'applicazione di più file di configurazione, vedere. File di configurazione di più 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 JVM processo. In questo caso, il numero di porta deve essere lo stesso sia nella parte producer che in quella consumer della configurazione riportata di seguito. Se invece i due ruoli fossero eseguiti come parte di JVM processi diversi, è possibile specificare numeri di porta diversi per ciascuno, in base alla JMX porta di ogni singolo JVM processo.

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