View a markdown version of this page

CloudWatch solusi: beban kerja Kafka di Amazon EC2 - Amazon CloudWatch

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

CloudWatch solusi: beban kerja Kafka di Amazon EC2

Solusi ini membantu Anda mengonfigurasi pengumpulan metrik out-of-the-box menggunakan CloudWatch agen untuk beban kerja Kafka (broker, produsen, dan konsumen) yang berjalan pada instans EC2. Selain itu, ini membantu Anda mengatur CloudWatch dasbor yang telah dikonfigurasi sebelumnya. Untuk informasi umum tentang semua solusi CloudWatch pengamatan, lihatCloudWatch solusi pengamatan.

Persyaratan

Solusi ini relevan untuk kondisi berikut:

Manfaat

Solusi ini memberikan pemantauan server Kafka, memberikan wawasan berharga untuk kasus penggunaan berikut:

  • Pantau kesehatan klaster Kafka melalui metrik replikasi dan sinkronisasi.

  • Lacak kinerja broker melalui kegagalan permintaan dan latensi bersama dengan lalu lintas jaringan.

  • Pantau producer/consumer kesalahan, latensi, dan kelambatan konsumen.

  • Analisis kinerja JVM yang mendasari untuk klaster Kafka.

  • Beralih di antara beberapa cluster Kafka, produsen, dan konsumen yang dikonfigurasi melalui solusi di bawah akun yang sama.

Di bawah ini adalah keuntungan utama dari solusi ini:

  • Mengotomatiskan pengumpulan metrik untuk Kafka dan JVM yang mendasarinya menggunakan konfigurasi CloudWatch agen, menghilangkan instrumentasi manual.

  • Menyediakan CloudWatch dasbor konsolidasi yang telah dikonfigurasi sebelumnya untuk metrik Kafka dan JVM. Dasbor akan secara otomatis menangani metrik dari instans Kafka EC2 baru yang dikonfigurasi menggunakan solusi, bahkan jika metrik tersebut tidak ada saat Anda pertama kali membuat dasbor. Ini juga memungkinkan Anda untuk mengelompokkan metrik ke dalam aplikasi logis untuk fokus dan manajemen yang lebih mudah.

Gambar berikut adalah contoh dasbor untuk solusi ini.

Dasbor pemantauan Kafka klaster yang menunjukkan metrik, kinerja kelompok produsen, dan statistik kelompok konsumen.

Biaya

Solusi ini membuat dan menggunakan sumber daya di akun Anda. Anda dikenai biaya untuk penggunaan standar, termasuk yang berikut:

  • Semua metrik yang dikumpulkan oleh CloudWatch agen ditagih sebagai metrik khusus. Jumlah metrik yang digunakan oleh solusi ini tergantung pada jumlah host EC2.

    • Setiap host broker yang dikonfigurasi untuk solusi menerbitkan 33 metrik ditambah satu metrik (disk_used_percent) yang jumlah metrik untuk setiap host EC2 bergantung pada jumlah jalur disk untuk host tersebut.

    • Setiap host produsen yang dikonfigurasi untuk solusi menerbitkan tiga metrik dengan topic dimensi dan tiga metrik tanpa topic dimensi. Untuk metrik dengan topic dimensi, setiap topik dihitung sebagai metrik terpisah.

    • Setiap host konsumen yang dikonfigurasi untuk solusi menerbitkan dua metrik dengan topic dimensi dan tiga metrik tanpa topic dimensi. Untuk metrik dengan dimensi topik, setiap topik dihitung sebagai metrik terpisah.

  • Satu dasbor kustom.

  • Operasi API diminta oleh CloudWatch agen untuk mempublikasikan metrik. Dengan konfigurasi default untuk solusi ini, CloudWatch agen memanggil PutMetricData sekali setiap menit untuk setiap host EC2. Ini berarti PutMetricData API akan dipanggil 30*24*60=43,200 dalam 30 hari bulan untuk setiap host EC2.

Untuk informasi selengkapnya tentang CloudWatch harga, lihat CloudWatch Harga Amazon.

Kalkulator harga dapat membantu Anda memperkirakan perkiraan biaya bulanan untuk menggunakan solusi ini.

Untuk menggunakan kalkulator harga untuk memperkirakan biaya solusi bulanan Anda
  1. Buka kalkulator CloudWatch harga Amazon.

  2. Di bagian Metrik, untuk Jumlah metrik, masukkanbroker_metrics_count + producer_metrics_count + consumer_metrics_count. Hitung ini sebagai berikut:

    • broker_metrics_count= (33 + jumlah rata-rata jalur disk per host EC2) * number_of_ec2_broker_hosts

    • producer_metrics_count= (3 * rata-rata_nomor_topik_per_produser_host + 3) * nomor_ec2_producer_hosts

    • consumer_metrics_count= (2 * rata-rata_nomor_topik_per_konsumen_host + 3) * angka_ec2_consumer_hosts

  3. Di bagian API, untuk Jumlah permintaan API, masukkan43200 * number of EC2 instances configured for this solution.

    Secara default, CloudWatch agen melakukan satu PutMetricData operasi setiap menit untuk setiap host EC2.

  4. Di bagian Dasbor dan Alarm, untuk Jumlah Dasbor, masukkan. 1

  5. Anda dapat melihat perkiraan biaya bulanan Anda di bagian bawah kalkulator harga.

CloudWatch konfigurasi agen untuk solusi ini

CloudWatch Agen adalah perangkat lunak yang berjalan terus menerus dan mandiri di server Anda dan di lingkungan kontainer. Ini mengumpulkan metrik, log, dan jejak dari infrastruktur dan aplikasi Anda dan mengirimkannya ke CloudWatch dan X-Ray.

Untuk informasi lebih lanjut tentang CloudWatch agen, lihatKumpulkan metrik, log, dan jejak menggunakan CloudWatch agen.

Konfigurasi agen dalam solusi ini mengumpulkan metrik dasar untuk Kafka, JVM, dan EC2. CloudWatch Agen dapat dikonfigurasi untuk mengumpulkan lebih banyak metrik Kafka dan JVM daripada yang ditampilkan dasbor secara default. Untuk daftar semua metrik Kafka yang dapat Anda kumpulkan, lihatKumpulkan metrik Kafka. Untuk daftar semua metrik JVM yang dapat Anda kumpulkan, lihatKumpulkan metrik JVM. Untuk daftar metrik EC2, lihatMetrik yang dikumpulkan oleh CloudWatch agen pada instans Linux dan macOS.

Mengekspos port JMX untuk peran broker, produsen, dan konsumen Kafka

CloudWatch Agen mengandalkan JMX untuk mengumpulkan metrik yang terkait dengan broker, produsen, dan konsumen Kafka. Untuk memungkinkan ini, Anda harus mengekspos port JMX di server dan aplikasi Anda.

Untuk broker Kafka, Anda harus menggunakan variabel JMX_PORT lingkungan untuk mengatur port. Anda harus me-restart broker setelah Anda mengatur variabel lingkungan ini. Tinjau skrip awal dan file konfigurasi aplikasi Anda untuk menemukan tempat terbaik untuk menambahkan argumen ini.

Misalnya, untuk sistem Linux dan macOS, Anda dapat menggunakan perintah berikut untuk mengatur port JMX. Pastikan untuk menentukan nomor port yang tidak digunakan.

export JMX_PORT=port-number

Untuk produsen dan konsumen Kafka, instruksi untuk mengekspos port JMX bergantung pada jenis beban kerja yang Anda gunakan untuk aplikasi JVM produsen atau konsumen Anda. Lihat dokumentasi untuk aplikasi Anda untuk menemukan petunjuk ini.

Secara umum, untuk mengaktifkan port JMX untuk pemantauan dan manajemen, Anda akan mengatur properti sistem berikut untuk aplikasi JVM Anda. Contoh berikut mengatur JMX yang tidak diautentikasi. Jika keamanan policies/requirements mengharuskan Anda mengaktifkan JMX dengan otentikasi kata sandi atau SSL untuk akses jarak jauh, lihat dokumentasi JMX untuk mengatur properti yang diperlukan.

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

Untuk memverifikasi port JMX, jalankanps aux | grep jmxremote.port. Hasilnya harus menunjukkan bahwa port JMX diatur pada proses JVM.

Konfigurasi agen untuk solusi ini

Metrik yang dikumpulkan oleh agen ditentukan dalam konfigurasi agen. Solusi ini menyediakan konfigurasi agen untuk mengumpulkan metrik yang direkomendasikan dengan dimensi yang sesuai untuk dasbor solusi. Setiap peran Kafka, seperti broker, produser, atau konsumen, memiliki konfigurasi agennya sendiri yang memungkinkan pengumpulan metrik Kafka dan metrik JVM dan EC2 yang mendasarinya.

Langkah-langkah untuk menerapkan solusi dijelaskan nanti diMenyebarkan agen untuk solusi Anda. Informasi berikut dimaksudkan untuk membantu Anda memahami cara menyesuaikan konfigurasi agen untuk lingkungan Anda.

Anda harus menyesuaikan beberapa bagian konfigurasi agen berikut untuk lingkungan Anda:

  • Nomor port JMX adalah nomor port yang Anda konfigurasi di bagian sebelumnya dari dokumentasi ini. Nomor port ada di endpoint baris dalam konfigurasi.

  • ClusterName— Ini digunakan sebagai dimensi untuk metrik broker yang dikumpulkan. Berikan nama bermakna yang mewakili pengelompokan cluster untuk instance yang menjalankan broker Kafka.

  • ProcessGroupName— Ini digunakan sebagai dimensi untuk metrik JVM yang dikumpulkan untuk broker. Berikan nilai yang sama seperti yang Anda berikanClusterName. Ini memungkinkan melihat metrik JVM dari grup broker Kafka yang sama dengan metrik broker di dasbor solusi.

  • ProducerGroupName— Ini digunakan sebagai dimensi untuk metrik produsen yang dikumpulkan. Berikan nama bermakna yang mewakili kelompok instance produsen. Untuk nilai ini, Anda dapat menentukan aplikasi atau layanan produsen yang ingin Anda gunakan untuk tampilan gabungan metrik produsen di dasbor solusi.

  • ConsumerGroupName— Ini digunakan sebagai dimensi untuk metrik konsumen yang dikumpulkan. Berikan nama bermakna yang mewakili kelompok contoh konsumen Ini tidak sama dengan konsep kelompok konsumen di Kafka. Ini hanyalah dimensi pengelompokan di mana Anda dapat menentukan aplikasi atau layanan konsumen yang ingin Anda gunakan untuk tampilan gabungan metrik konsumen di dasbor solusi

Misalnya, jika Anda memiliki dua cluster Kafka yang berjalan di akun yang sama, satu untuk order-processing aplikasi dan satu lagi untuk inventory-management aplikasi, Anda harus mengatur ProcessGroupName dimensi ClusterName dan sesuai dalam konfigurasi agen instance broker.

  • Untuk instance broker order-processing cluster, atur ClusterName=order-processing danProcessGroupName=order-processing.

  • Untuk instance broker inventory-management cluster, atur ClusterName=inventory-management danProcessGroupName=inventory-management.

  • Demikian pula, atur ProducerGroupName untuk instance produsen dan ConsumerGroupName untuk instance konsumen berdasarkan aplikasi masing-masing.

Bila Anda mengatur dimensi di atas dengan benar, dasbor solusi akan secara otomatis mengelompokkan metrik berdasarkan ConsumerGroupName dimensi ClusterNameProducerGroupName,, dan. Dasbor akan menyertakan opsi dropdown untuk memilih dan melihat metrik untuk cluster dan grup tertentu, memungkinkan Anda memantau kinerja masing-masing cluster dan grup secara terpisah.

Pastikan untuk menerapkan konfigurasi agen yang relevan ke instans EC2 yang benar. Setiap konfigurasi akan disimpan sebagai Parameter terpisah di Penyimpanan Parameter SSM, seperti yang dijelaskan nanti. Langkah 2: Simpan file konfigurasi CloudWatch agen yang direkomendasikan di Penyimpanan Parameter Manajer Sistem

Petunjuk berikut menjelaskan situasi di mana peran produsen, konsumen, dan broker dikerahkan untuk memisahkan instans EC2, tanpa tumpang tindih. Jika Anda menjalankan beberapa peran Kafka pada instans EC2 yang sama, lihat Konfigurasikan agen untuk beberapa peran Kafka pada instance yang sama untuk informasi selengkapnya.

Konfigurasi agen untuk agen broker Kafka

Gunakan konfigurasi CloudWatch agen berikut pada instans EC2 tempat agen broker Kafka dikerahkan. Ganti ClusterName dengan nama cluster yang akan digunakan untuk mengelompokkan metrik ini untuk tampilan terpadu. Nilai yang Anda tentukan ClusterName digunakan sebagai ClusterName dimensi dan ProcessGroupName dimensi. Ganti port-number dengan port JMX server Kafka Anda. Jika JMX diaktifkan dengan otentikasi kata sandi atau SSL untuk akses jarak jauh, lihat Kumpulkan metrik Ekstensi Manajemen Java (JMX) informasi tentang pengaturan TLS atau otorisasi sesuai kebutuhan.

Metrik EC2 yang ditampilkan dalam konfigurasi ini (konfigurasi ditampilkan di luar blok JMX) hanya berfungsi untuk instans Linux dan macOS. Jika Anda menggunakan instance Windows, Anda dapat memilih untuk menghilangkan metrik ini dalam konfigurasi. Untuk informasi tentang metrik yang dikumpulkan pada instans Windows, lihatMetrik yang dikumpulkan oleh CloudWatch agen pada instans 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" ] } } } }

Konfigurasi agen untuk produsen Kafka

Gunakan konfigurasi CloudWatch agen berikut pada instans Amazon EC2 tempat produsen Kafka digunakan. Ganti ProducerGroupName dengan nama aplikasi atau grup yang ingin Anda gunakan untuk mengelompokkan metrik Anda untuk tampilan terpadu. Ganti port-number dengan port JMX dari aplikasi produsen Kafka Anda.

Solusi ini tidak mengaktifkan metrik JVM untuk produsen Kafka karena dasbor solusi tidak menampilkan metrik JVM yang terkait dengan JVM untuk produsen. Anda dapat menyesuaikan konfigurasi agen untuk memancarkan metrik JVM juga, namun, metrik JVM yang terkait dengan produsen tidak terlihat di dasbor solusi.

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

Konfigurasi agen untuk konsumen Kafka

Gunakan konfigurasi CloudWatch agen berikut pada instans EC2 tempat konsumen Kafka berjalan. Ganti ConsumerGroupName dengan nama aplikasi atau grup yang akan digunakan untuk mengelompokkan metrik ini untuk tampilan terpadu. Ganti port-number dengan port JMX dari aplikasi konsumen Kafka Anda.

Solusi ini tidak mengaktifkan metrik JVM untuk konsumen Kafka karena dasbor solusi tidak menampilkan metrik JVM yang terkait dengan JVM untuk konsumen. Anda dapat menyesuaikan konfigurasi agen untuk memancarkan metrik JVM juga, namun metrik JVM yang terkait dengan konsumen tidak terlihat di dasbor solusi.

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

Menyebarkan agen untuk solusi Anda

Ada beberapa pendekatan untuk menginstal CloudWatch agen, tergantung pada kasus penggunaan. Kami merekomendasikan menggunakan Manajer Sistem untuk solusi ini. Ini memberikan pengalaman konsol dan membuatnya lebih mudah untuk mengelola armada server terkelola dalam satu AWS akun. Petunjuk di bagian ini menggunakan Manajer Sistem dan ditujukan untuk saat Anda tidak menjalankan CloudWatch agen dengan konfigurasi yang ada. Anda dapat memeriksa apakah CloudWatch agen sedang berjalan dengan mengikuti langkah-langkah diVerifikasi bahwa CloudWatch agen sedang berjalan.

Jika Anda sudah menjalankan CloudWatch agen di host EC2 tempat beban kerja digunakan dan mengelola konfigurasi agen, Anda dapat melewati petunjuk di bagian ini dan mengikuti mekanisme penerapan yang ada untuk memperbarui konfigurasi. Pastikan untuk menggabungkan konfigurasi agen sesuai dengan peran (broker, produsen, atau konsumen) dengan konfigurasi agen yang ada, dan kemudian menerapkan konfigurasi gabungan. Jika Anda menggunakan System Manager untuk menyimpan dan mengelola konfigurasi untuk CloudWatch agen, Anda dapat menggabungkan konfigurasi ke nilai parameter yang ada. Untuk informasi selengkapnya, lihat Mengel CloudWatch ola file konfigurasi agen.

catatan

Menggunakan System Manager untuk menerapkan konfigurasi CloudWatch agen berikut akan menggantikan atau mengganti konfigurasi CloudWatch agen yang ada pada instans EC2 Anda. Anda dapat memodifikasi konfigurasi ini agar sesuai dengan lingkungan unik atau kasus penggunaan Anda. Metrik yang ditentukan dalam solusi ini adalah minimum yang diperlukan untuk dasbor yang direkomendasikan.

Proses penerapan meliputi langkah-langkah berikut:

  • Langkah 1: Pastikan instans EC2 target memiliki izin IAM yang diperlukan.

  • Langkah 2: Simpan file konfigurasi agen yang direkomendasikan di Penyimpanan Parameter Manajer Sistem.

  • Langkah 3: Instal CloudWatch agen pada satu atau beberapa instans EC2 menggunakan CloudFormation tumpukan.

  • Langkah 4: Verifikasi pengaturan agen dikonfigurasi dengan benar.

Anda harus mengulangi langkah-langkah ini berdasarkan apakah broker, produsen, dan konsumen Anda digunakan pada instans EC2 yang sama atau instans yang berbeda. Misalnya, jika broker, produsen, dan konsumen Kafka digunakan pada instans terpisah tanpa tumpang tindih, Anda harus mengulangi langkah-langkah ini tiga kali dengan konfigurasi agen yang sesuai untuk instans EC2 broker, produsen, dan konsumen.

Langkah 1: Pastikan instans EC2 target memiliki izin IAM yang diperlukan

Anda harus memberikan izin bagi Manajer Sistem untuk menginstal dan mengkonfigurasi CloudWatch agen. Anda juga harus memberikan izin kepada CloudWatch agen untuk menerbitkan telemetri dari instans EC2 Anda ke. CloudWatch Pastikan peran IAM yang dilampirkan ke instans memiliki kebijakan CloudWatchAgentServerPolicy dan AmazonSSMManagedInstanceCore IAM yang terlampir.

Langkah 2: Simpan file konfigurasi CloudWatch agen yang direkomendasikan di Penyimpanan Parameter Manajer Sistem

Parameter Store menyederhanakan penginst CloudWatch alan agen pada instans EC2 dengan menyimpan dan mengelola parameter konfigurasi dengan aman, menghilangkan kebutuhan akan nilai hardcode. Ini memastikan proses penerapan yang lebih aman dan fleksibel, memungkinkan manajemen terpusat dan pembaruan konfigurasi yang lebih mudah di beberapa instans.

Gunakan langkah-langkah berikut untuk menyimpan file konfigurasi CloudWatch agen yang direkomendasikan sebagai parameter di Penyimpanan Parameter.

Untuk membuat file konfigurasi CloudWatch agen sebagai parameter
  1. Buka AWS Systems Manager konsol di https://console.aws.amazon.com/systems-manager/.

  2. Dari panel navigasi, pilih Manajemen Aplikasi, Penyimpanan Parameter.

  3. Ikuti langkah-langkah ini untuk membuat parameter baru untuk konfigurasi.

    1. Pilih Buat parameter.

    2. Berikan nama untuk parameter yang akan menyimpan konfigurasi CloudWatch agen Anda, seperti AmazonCloudWatch-Kafka-Producer-Configuration untuk produsen, AmazonCloudWatch-Kafka-Consumer-Configuration untuk konsumen, atau AmazonCloudWatch-Kafka-Broker-Configuration untuk broker. Jika Anda memiliki beberapa peran Kafka pada satu EC2, beri nama peran yang sesuai untuk identifikasi yang lebih mudah. Nilai ini nantinya akan digunakan untuk mendistribusikan konfigurasi ini ke agen yang berjalan pada instans EC2 Anda.

    3. Untuk tingkat Parameter, pilih Standar.

    4. Untuk Jenis, pilih String.

    5. Untuk Jenis data, pilih teks.

    6. Di kotak Nilai, tempel teks lengkap konfigurasi CloudWatch agen. Pastikan untuk memilih blok JSON untuk peran Kafka yang dihosting oleh instance ini. Lihat konfigurasi yang disediakan diKonfigurasi agen untuk agen broker Kafka,Konfigurasi agen untuk produsen Kafka, dan Konfigurasi agen untuk konsumen Kafka saat menyimpan konfigurasi untuk broker, produsen, dan konsumen masing-masing. Jika Anda menjalankan beberapa peran Kafka pada instans EC2 yang sama, pastikan untuk menggabungkan konfigurasi jika diperlukan seperti yang dijelaskan Konfigurasikan agen untuk beberapa peran Kafka pada instance yang sama pada instans yang sama

    7. Pilih Buat parameter.

Langkah 3: Instal CloudWatch agen dan terapkan konfigurasi menggunakan CloudFormation templat

Anda dapat menggunakan AWS CloudFormation untuk menginstal agen dan mengonfigurasinya untuk menggunakan konfigurasi CloudWatch agen yang Anda buat pada langkah sebelumnya.

Untuk menginstal dan mengkonfigurasi CloudWatch agen untuk solusi ini
  1. Buka panduan CloudFormation buat tumpukan cepat menggunakan tautan ini: 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-agent-installation-template-1.0.0.json

  2. Verifikasi bahwa Wilayah yang dipilih pada konsol adalah Wilayah tempat beban kerja Kafka berjalan.

  3. Untuk nama Stack, masukkan nama untuk mengidentifikasi tumpukan ini, sepertiCWAgentInstallationStack.

  4. Di bagian Parameter, tentukan yang berikut ini:

    1. Untuk CloudWatchAgentConfigSSM, masukkan nama parameter Manajer Sistem untuk konfigurasi agen yang Anda buat sebelumnya, seperti AmazonCloudWatch-Kafka-Broker-Configuration untuk broker, AmazonCloudWatch-Kafka-Producer-Configuration untuk produsen, dan AmazonCloudWatch-Kafka-Consumer-Configuration untuk konsumen.

    2. Untuk memilih instance target, Anda memiliki dua opsi.

      1. Untuk InstanceIds, tentukan daftar ID instance yang dipisahkan koma dari daftar ID instans tempat Anda ingin menginstal CloudWatch agen dengan konfigurasi ini. Anda dapat mencantumkan satu contoh atau beberapa contoh.

      2. Jika Anda menerapkan dalam skala besar, Anda dapat menentukan TagKey dan yang sesuai TagValue untuk menargetkan semua instans EC2 dengan tag dan nilai ini. Jika Anda menentukan a TagKey, Anda harus menentukan yang sesuai TagValue. (Untuk grup Penskalaan Otomatis, tent aws:autoscaling:groupName ukan untuk TagKey dan tentukan nama grup Penskalaan Otomatis untuk diterapkan TagValue ke semua instance dalam grup Penskalaan Otomatis.)

        Jika Anda menentukan kedua parameter InstanceIds dan TagKeys parameter, maka InstanceIds akan diutamakan dan tag akan diabaikan.

  5. Tinjau pengaturan, lalu pilih Buat tumpukan.

Jika Anda ingin mengedit file template terlebih dahulu untuk menyesuaikannya, pilih opsi Ungg ah file template di bawah Create Stack Wizard untuk mengunggah template yang diedit. Untuk informasi selengkapnya, lihat Membuat tumpukan di CloudFormation konsol. Anda dapat menggunakan tautan berikut untuk mengunduh template: 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.

catatan

Setelah langkah ini selesai, parameter Manajer Sistem ini akan dikaitkan dengan CloudWatch agen yang berjalan di instance yang ditargetkan. Ini artinya bahwa:

  1. Jika parameter Manajer Sistem dihapus, agen akan berhenti.

  2. Jika parameter Manajer Sistem diedit, perubahan konfigurasi akan secara otomatis berlaku untuk agen pada frekuensi terjadwal yaitu 30 hari secara default.

  3. Jika Anda ingin segera menerapkan perubahan pada parameter Manajer Sistem ini, Anda harus menjalankan langkah ini lagi. Untuk informasi selengkapnya tentang asosiasi, lihat Bekerja dengan asosiasi di Manajer Sistem.

Langkah 4: Verifikasi pengaturan agen dikonfigurasi dengan benar

Anda dapat memverifikasi apakah CloudWatch agen diinstal dengan mengikuti langkah-langkah diVerifikasi bahwa CloudWatch agen sedang berjalan. Jika CloudWatch agen tidak diinstal dan berjalan, pastikan Anda telah mengatur semuanya dengan benar.

Jika semuanya diatur dengan benar, maka Anda akan melihat metrik Kafka yang dipublikasikan. CloudWatch Anda dapat memeriksa CloudWatch konsol untuk memverifikasi bahwa mereka sedang dipublikasikan.

Untuk memverifikasi bahwa metrik Kafka sedang dipublikasikan ke CloudWatch
  1. Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  2. Pilih Metrik, Metrik Klasik.

  3. Pastikan Anda telah memilih Wilayah tempat Anda menerapkan solusi, dan pilih ruang nama khusus, CWAgent.

  4. Cari metrik yang disebutkan di bagian konfigurasi agen dokumen ini, seperti kafka.partition.offline untuk broker, kafka.consumer.fetch.rate untuk konsumen, atau kafka.producer.request-rate untuk produsen. Jika Anda melihat hasil untuk metrik ini, maka metrik akan dipublikasikan ke CloudWatch.

Buat dasbor solusi Kafka

Dasbor ini menampilkan metrik yang baru dipancarkan untuk Kafka dan JVM yang mendasarinya. Dasbor ini menyediakan tampilan kontributor teratas untuk kesehatan beban kerja Kafka Anda, di seluruh produsen, broker, dan konsumen. Tampilan kontributor teratas menampilkan widget 10 teratas per metrik. Ini memungkinkan Anda untuk mengidentifikasi outlier secara sekilas.

Dasbor solusi tidak menampilkan metrik EC2. Untuk melihat metrik EC2, Anda harus menggunakan dasbor otomatis EC2 untuk melihat metrik yang dijual EC2 dan menggunakan dasbor konsol EC2 untuk melihat metrik EC2 yang dikumpulkan oleh agen. CloudWatch Untuk informasi selengkapnya tentang dasbor otomatis untuk AWS layanan, lihatMelihat CloudWatch dasbor untuk satu AWS layanan.

Untuk membuat dasbor, Anda dapat menggunakan opsi berikut:

  • Gunakan CloudWatch konsol untuk membuat dasbor.

  • Gunakan AWS CloudFormation konsol untuk menyebarkan dasbor.

  • Unduh AWS CloudFormation infrastruktur sebagai kode dan integrasikan sebagai bagian dari otomatisasi integrasi berkelanjutan (CI) Anda.

Dengan menggunakan CloudWatch konsol untuk membuat dasbor, Anda dapat melihat pratinjau dasbor sebelum benar-benar membuat dan dikenakan biaya.

catatan

Dasbor yang dibuat dengan CloudFormation solusi ini menampilkan metrik dari Wilayah tempat solusi diterapkan. Pastikan untuk membuat CloudFormation tumpukan di Wilayah tempat metrik JVM dan Kafka Anda diterbitkan.

Jika Anda telah menentukan namespace khusus selain CWAgent di konfigurasi CloudWatch agen, Anda harus mengubah CloudFormation template untuk dasbor untuk diganti CWAgent dengan namespace khusus yang Anda gunakan.

Untuk membuat dasbor melalui CloudWatch Konsol
catatan

Dasbor solusi saat ini menampilkan metrik terkait pengumpulan sampah hanya untuk Pengumpul Sampah G1, yang merupakan kolektor default untuk versi Java terbaru. Jika Anda menggunakan algoritma pengumpulan sampah yang berbeda, widget yang berkaitan dengan pengumpulan sampah kosong. Namun, Anda dapat menyesuaikan widget ini dengan mengubah CloudFormation template dasbor dan menerapkan jenis pengumpulan sampah yang sesuai ke dimensi nama metrik terkait pengumpulan sampah. Misalnya, jika Anda menggunakan pengumpulan sampah paralel, ubah name=\"G1 Young Generation\" ke metrik name=\"Parallel GC\" jumlah pengumpulan sampahjvm.gc.collections.count.

  1. Buka CloudWatch Console Create Dashboard menggunakan tautan ini: https://console.aws.amazon.com/cloudwatch/home? #dashboards? DasborTemplate= &referrer=os-katalogApacheKafkaOnEc2.

  2. Verifikasi bahwa Wilayah yang dipilih pada konsol adalah Wilayah tempat beban kerja Kafka berjalan.

  3. Masukkan nama dasbor, lalu pilih Buat Dasbor.

    Untuk membedakan dasbor ini dengan mudah dari dasbor serupa di Wilayah lain, sebaiknya sertakan nama Wilayah dalam nama dasbor, sepertiKafkaDashboard-us-east-1.

  4. Pratinjau dasbor dan pilih Simpan untuk membuat dasbor.

Untuk membuat dasbor melalui CloudFormation
  1. Buka panduan CloudFormation buat tumpukan cepat menggunakan tautan ini: 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. Verifikasi bahwa Wilayah yang dipilih pada konsol adalah Wilayah tempat beban kerja Kafka berjalan.

  3. Untuk nama Stack, masukkan nama untuk mengidentifikasi tumpukan ini, sepertiKafkaDashboardStack.

  4. Di bagian Parameter, tentukan nama dasbor di bawah DashboardName parameter.

    Untuk membedakan dasbor ini dengan mudah dari dasbor serupa di Wilayah lain, sebaiknya sertakan nama Wilayah dalam nama dasbor, sepertiKafkaDashboard-us-east-1.

  5. Mengakui kemampuan akses untuk transformasi di bawah Kemampuan dan transformasi. Perhatikan bahwa CloudFormation tidak menambahkan sumber daya IAM apa pun.

  6. Tinjau pengaturan, lalu pilih Buat tumpukan.

  7. Setelah status tumpukan adalah CREATE_COMPLETE, pilih tab Resources di bawah tumpukan yang dibuat dan kemudian pilih tautan di bawah ID Fisik untuk pergi ke dasbor. Anda juga dapat mengakses dasbor di CloudWatch konsol dengan memilih Dasbor di panel navigasi kiri konsol, dan menemukan nama dasbor di bawah Dasbor K ustom.

Jika Anda ingin mengedit file template untuk menyesuaikannya untuk tujuan apa pun, Anda dapat menggunakan opsi Ungg ah file template di bawah Create Stack Wizard untuk mengunggah template yang diedit. Untuk informasi selengkapnya, lihat Membuat tumpukan di CloudFormation konsol. Anda dapat menggunakan tautan ini untuk mengunduh template: 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.

catatan

Dasbor solusi saat ini menampilkan metrik terkait pengumpulan sampah hanya untuk Pengumpul Sampah G1, yang merupakan kolektor default untuk versi Java terbaru. Jika Anda menggunakan algoritma pengumpulan sampah yang berbeda, widget yang berkaitan dengan pengumpulan sampah kosong. Namun, Anda dapat menyesuaikan widget ini dengan mengubah CloudFormation template dasbor dan menerapkan jenis pengumpulan sampah yang sesuai ke dimensi nama metrik terkait pengumpulan sampah. Misalnya, jika Anda menggunakan pengumpulan sampah paralel, ubah name=\"G1 Young Generation\" ke metrik name=\"Parallel GC\" jumlah pengumpulan sampahjvm.gc.collections.count.

Memulai dengan dasbor Kafka

Berikut adalah beberapa tugas yang dapat Anda coba dengan dasbor Kafka baru. Tugas-tugas ini memungkinkan Anda untuk memvalidasi bahwa dasbor berfungsi dengan benar dan memberi Anda beberapa pengalaman langsung menggunakannya untuk memantau cluster Kafka. Saat Anda mencobanya, Anda akan terbiasa menavigasi dasbor dan menafsirkan metrik yang divisualisasikan.

Menggunakan daftar dropdown

Dasbor menyediakan daftar dropdown di bagian atas yang dapat Anda gunakan untuk memfilter dan memilih cluster Kafka, produsen, dan grup konsumen tertentu yang ingin Anda pantau.

  • Untuk menampilkan metrik untuk cluster Kafka tertentu, pilih nama cluster tersebut di daftar dropdown Kafka Cluster.

  • Untuk menampilkan metrik untuk grup produsen Kafka tertentu, pilih nama grup produsen tersebut di daftar dropdown Produsen Kafka.

  • Untuk menampilkan metrik untuk grup konsumen Kafka tertentu, pilih nama grup konsumen tersebut di daftar dropdown Grup Konsu men Kafka.

Verifikasi kesehatan cluster

Dari bagian Tinj auan Cluster, temukan widget Parti si Di Bawah Replikasi dan In-Sync Replikas. Ini idealnya nol atau jumlah kecil. Nilai besar untuk salah satu metrik ini dapat menunjukkan masalah dengan cluster Kafka yang perlu diselidiki.

Selidiki kinerja broker

Di bagian Broker, temukan widget F ailed Fetch Requests dan F ailed Producer Requests. Ini menunjukkan jumlah permintaan yang gagal untuk operasi fetch dan produce, masing-masing. Tingkat kegagalan yang tinggi dapat menunjukkan masalah dengan broker atau konektivitas jaringan yang memerlukan penyelidikan lebih lanjut.

Memantau kinerja produsen

Di bagian Ikh tisar Grup Produsen, temukan widget Rate Per mintaan Rata-Rata, Latensi Permintaan Rata-Rata, dan Rata-rata Send/Error Rekaman Rate. Ini akan memberi Anda gambaran tentang bagaimana kinerja produsen dalam grup yang dipilih. Anda juga dapat menelusuri ke bawah untuk melihat metrik untuk produsen dan topik tertentu di bagian Produsen.

Pantau kelambatan konsumen

Di bagian I khtisar Grup Konsumen, temukan widget Kon sumen Lag. Ini menunjukkan seberapa jauh di belakang konsumen dalam memproses pesan dari offset terbaru di partisi yang mereka berlangganan. Idealnya, lag konsumen harus rendah atau nol. Keterlambatan konsumen yang tinggi dapat mengindikasikan bahwa konsumen tidak dapat mengikuti laju produksi data, yang menyebabkan potensi kehilangan data atau keterlambatan dalam pemrosesan. Anda juga dapat menelusuri ke bawah untuk melihat metrik untuk konsumen dan topik tertentu di bagian Kon sumen.

Konfigurasikan agen untuk beberapa peran Kafka pada instance yang sama

Konfigurasi individual untuk peran Kafka yang tercantum di hanya CloudWatch konfigurasi agen untuk solusi ini berlaku ketika peran produsen, konsumen, dan broker digunakan pada instans EC2 terpisah, tanpa tumpang tindih. Jika Anda menjalankan beberapa peran Kafka pada instans Amazon EC2 yang sama, Anda memiliki dua opsi:

  • Buat file konfigurasi agen tunggal yang mencantumkan dan mengonfigurasi semua metrik untuk semua peran Kafka yang digunakan pada instance itu. Jika Anda akan menggunakan Manajer Sistem untuk mengelola konfigurasi agen, ini adalah opsi yang disukai.

    Jika Anda memilih opsi ini dan beberapa peran Kafka merupakan bagian dari proses JVM yang sama, Anda harus menentukan titik akhir yang sama untuk setiap peran Kafka dalam konfigurasi agen. Jika beberapa peran Kafka adalah bagian dari proses JVM yang berbeda, titik akhir untuk setiap peran dapat berbeda tergantung pada port JMX yang ditetapkan untuk proses itu.

  • Buat file konfigurasi agen terpisah untuk setiap peran Kafka, dan konfigurasikan agen untuk menerapkan kedua file konfigurasi. Untuk petunjuk penerapan beberapa file konfigurasi, lihatMembuat beberapa file konfigurasi CloudWatch agen.

Contoh berikut menunjukkan konfigurasi CloudWatch agen di mana peran produsen dan konsumen berjalan pada satu instance sebagai bagian dari proses JVM yang sama. Dalam hal ini, nomor port harus sama di bagian produsen dan konsumen dari konfigurasi di bawah ini. Jika sebaliknya dua peran berjalan sebagai bagian dari proses JVM yang berbeda, Anda dapat menentukan nomor port yang berbeda untuk masing-masing, sesuai dengan port JMX dari setiap proses JVM individu.

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