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 out-of-the-box metrik menggunakan CloudWatch agen untuk beban kerja Kafka (broker, produsen, dan konsumen) yang berjalan pada EC2 instance. Selain itu, ini membantu Anda mengatur CloudWatch dasbor yang telah dikonfigurasi sebelumnya. Untuk informasi umum tentang semua solusi CloudWatch observabilitas, lihatCloudWatch solusi observabilitas.

Persyaratan

Solusi ini relevan untuk kondisi berikut:

Manfaat

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

  • Pantau kesehatan cluster Kafka melalui metrik replikasi dan sinkronisasi.

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

  • Pantau kesalahan produsen/konsumen, latensi, dan kelambatan konsumen.

  • Analisis kinerja JVM yang mendasari untuk cluster 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 terkonsolidasi yang telah dikonfigurasi sebelumnya untuk metrik Kafka dan JVM. Dasbor akan secara otomatis menangani metrik dari EC2 instans Kafka 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.

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

Biaya

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

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

    • Setiap host broker yang dikonfigurasi untuk solusi menerbitkan 33 metrik ditambah satu metrik (disk_used_percent) yang jumlah metrik untuk setiap EC2 host 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 dimensi. topic 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 dimensi. topic Untuk metrik dengan dimensi topik, setiap topik dihitung sebagai metrik terpisah.

  • Satu dasbor khusus.

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

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, masukkan. broker_metrics_count + producer_metrics_count + consumer_metrics_count Hitung ini sebagai berikut:

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

    • producer_metrics_count= (3 * rata-rata_number_of_topics_per_producer_host + 3) * number_of_ec2_producer_hosts

    • consumer_metrics_count= (2 * rata-rata_number_of_topics_per_consumer_host + 3) * number_of_ec2_consumer_hosts

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

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

  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 dan CloudWatch X-Ray.

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

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 tampilan dasbor secara default. Untuk daftar semua metrik Kafka yang dapat Anda kumpulkan, lihat. Kumpulkan metrik Kafka Untuk daftar semua metrik JVM yang dapat Anda kumpulkan, lihat. Kumpulkan metrik JVM Untuk daftar EC2 metrik, lihatMetrik yang dikumpulkan oleh CloudWatch agen di instans Linux dan macOS.

Paparkan 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, petunjuk 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 kebijakan/persyaratan keamanan Anda 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, jalankan. ps 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, produsen, atau konsumen, memiliki konfigurasi agennya sendiri yang memungkinkan pengumpulan metrik Kafka dan JVM dan metrik yang mendasarinya. EC2

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 dari konfigurasi agen berikut untuk lingkungan Anda:

  • Nomor port JMX adalah nomor port yang Anda konfigurasikan 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 yang berarti 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 yang berarti yang mewakili kelompok contoh 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 yang berarti 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 dari 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.

Ketika Anda mengatur dimensi di atas dengan benar, dasbor solusi akan secara otomatis mengelompokkan metrik berdasarkanClusterName,ProducerGroupName, dan ConsumerGroupName dimensi. Dasbor akan menyertakan opsi dropdown untuk memilih dan melihat metrik untuk cluster dan grup tertentu, memungkinkan Anda memantau kinerja cluster dan grup individu secara terpisah.

Pastikan untuk menerapkan konfigurasi agen yang relevan ke EC2 instance 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 Systems Manager Parameter Store

Instruksi berikut menjelaskan situasi di mana peran produsen, konsumen, dan broker dikerahkan untuk memisahkan EC2 instance, tanpa tumpang tindih. Jika Anda menjalankan beberapa peran Kafka pada EC2 instance 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 EC2 contoh di mana 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 Java Management Extensions (JMX) informasi tentang pengaturan TLS atau otorisasi sesuai kebutuhan.

EC2 Metrik yang ditampilkan dalam konfigurasi ini (konfigurasi ditampilkan di luar blok JMX) hanya berfungsi untuk instance Linux dan macOS. Jika Anda menggunakan instance Windows, Anda dapat memilih untuk menghilangkan metrik ini dalam konfigurasi. Untuk informasi tentang metrik yang dikumpulkan pada instance Windows, lihat. Metrik 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 di EC2 instans Amazon 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 aplikasi produsen Kafka Anda.

Solusinya tidak mengaktifkan metrik JVM untuk produsen Kafka karena dasbor solusi tidak menampilkan metrik JVM yang terkait dengan JVM untuk produsen. Anda juga dapat menyesuaikan konfigurasi agen untuk memancarkan metrik JVM, 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 EC2 instance di mana 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 aplikasi konsumen Kafka Anda.

Solusinya 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. Sebaiknya gunakan Systems Manager untuk solusi ini. Ini memberikan pengalaman konsol dan membuatnya lebih mudah untuk mengelola armada server yang dikelola dalam satu AWS akun. Petunjuk di bagian ini menggunakan Systems Manager dan ditujukan untuk saat Anda tidak menjalankan CloudWatch agen dengan konfigurasi yang ada. Anda dapat memeriksa apakah CloudWatch agen berjalan dengan mengikuti langkah-langkah diVerifikasi bahwa CloudWatch agen sedang berjalan.

Jika Anda sudah menjalankan CloudWatch agen di EC2 host tempat beban kerja diterapkan dan mengelola konfigurasi agen, Anda dapat melewati instruksi 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 Anda yang ada, dan kemudian menerapkan konfigurasi gabungan. Jika Anda menggunakan Systems Manager untuk menyimpan dan mengelola konfigurasi CloudWatch agen, Anda dapat menggabungkan konfigurasi ke nilai parameter yang ada. Untuk informasi selengkapnya, lihat Mengelola file konfigurasi CloudWatch agen.

catatan

Menggunakan Systems Manager untuk menerapkan konfigurasi CloudWatch agen berikut akan menggantikan atau menimpa konfigurasi CloudWatch agen yang ada pada instans Anda. EC2 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 penyebaran mencakup langkah-langkah berikut:

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

  • Langkah 2: Simpan file konfigurasi agen yang direkomendasikan di Systems Manager Parameter Store.

  • Langkah 3: Instal CloudWatch agen pada satu atau lebih EC2 contoh menggunakan AWS CloudFormation tumpukan.

  • Langkah 4: Verifikasi pengaturan agen dikonfigurasi dengan benar.

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

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

Anda harus memberikan izin kepada Systems Manager untuk menginstal dan mengkonfigurasi CloudWatch agen. Anda juga harus memberikan izin kepada CloudWatch agen untuk mempublikasikan telemetri dari EC2 instans Anda ke. CloudWatch Pastikan bahwa peran IAM yang dilampirkan pada instance memiliki kebijakan SSMManaged InstanceCore IAM CloudWatchAgentServerPolicydan Amazon yang dilampirkan.

Langkah 2: Simpan file konfigurasi CloudWatch agen yang direkomendasikan di Systems Manager Parameter Store

Parameter Store menyederhanakan pemasangan CloudWatch agen pada EC2 instance dengan menyimpan dan mengelola parameter konfigurasi dengan aman, menghilangkan kebutuhan akan nilai hard-code. Ini memastikan proses penyebaran yang lebih aman dan fleksibel, memungkinkan manajemen terpusat dan pembaruan konfigurasi yang lebih mudah di beberapa instance.

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

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, Parameter Store.

  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 dalam 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 EC2 instance Anda.

    3. Untuk tingkat Parameter, pilih Standar.

    4. Untuk Type, pilih String.

    5. Untuk tipe Data, pilih teks.

    6. Di kotak Nilai, tempel teks lengkap konfigurasi CloudWatch agen. Pastikan untuk memilih blok JSON untuk peran Kafka yang dihosting 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 EC2 instance yang sama, pastikan untuk menggabungkan konfigurasi jika diperlukan seperti yang dijelaskan Konfigurasikan agen untuk beberapa peran Kafka pada instance yang sama pada instance yang sama

    7. Pilih Buat parameter.

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

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

Untuk menginstal dan mengkonfigurasi CloudWatch agen untuk solusi ini
  1. Buka wizard AWS CloudFormation Quick create stack menggunakan link ini: https://console.aws.amazon.com/cloudformation/home? #/ stacks/quickcreate?templateURL=https://aws-observability-solutions.s3.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw - agent-installation-template -1.0.0.json.

  2. Verifikasi bahwa Wilayah yang dipilih di 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 Systems Manager 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 instance IDs daftar instance yang dibatasi koma IDs di mana Anda ingin menginstal CloudWatch agen dengan konfigurasi ini. Anda dapat membuat daftar satu contoh atau beberapa contoh.

      2. Jika Anda menerapkan pada skala besar, Anda dapat menentukan TagKeydan yang sesuai TagValueuntuk menargetkan semua EC2 instance dengan tag dan nilai ini. Jika Anda menentukan a TagKey, Anda harus menentukan yang sesuai TagValue. (Untuk grup Auto Scaling, tentukan aws:autoscaling:groupName TagKeydan tentukan nama grup Auto Scaling untuk digunakan ke semua TagValueinstance dalam grup Auto Scaling.)

        Jika Anda menentukan parameter InstanceIdsdan TagKeysparameter, InstanceIdsakan diutamakan dan tag akan diabaikan.

  5. Tinjau pengaturan, lalu pilih Buat tumpukan.

Jika Anda ingin mengedit file templat terlebih dahulu untuk menyesuaikannya, pilih opsi Unggah file templat di bawah Buat Wisaya Tumpukan untuk mengunggah templat yang diedit. Untuk informasi selengkapnya, lihat Membuat tumpukan di AWS CloudFormation konsol. Anda dapat menggunakan tautan berikut untuk mengunduh templat: https://aws-observability-solutions.s3.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw- agent-installation-template -1.0.0.json.

catatan

Setelah langkah ini selesai, parameter Systems Manager ini akan dikaitkan dengan CloudWatch agen yang berjalan dalam instance yang ditargetkan. Ini artinya bahwa:

  1. Jika parameter Systems Manager dihapus, agen akan berhenti.

  2. Jika parameter Systems Manager 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 Systems Manager ini, Anda harus menjalankan langkah ini lagi. Untuk informasi selengkapnya tentang asosiasi, lihat Bekerja dengan asosiasi di Systems Manager.

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 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, Semua Metrik.

  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 dari 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 sedang dipublikasikan ke. CloudWatch

Buat dasbor solusi Kafka

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

Dasbor solusi tidak menampilkan EC2 metrik. Untuk melihat EC2 metrik, Anda harus menggunakan dasbor EC2 otomatis untuk melihat metrik EC2 yang dijual dan menggunakan dasbor EC2 konsol untuk melihat EC2 metrik 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 mengisi daya.

catatan

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

Jika Anda telah menentukan namespace khusus selain CWAgent dalam konfigurasi CloudWatch agen, Anda harus mengubah AWS 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 G1 Garbage Collector, 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 templat 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 name=\"Parallel GC\" metrik jumlah pengumpulan sampahjvm.gc.collections.count.

  1. Buka Dasbor Buat CloudWatch Konsol menggunakan tautan ini: https://console.aws.amazon.com/cloudwatch/beranda? #dashboards? DashboardTemplate= 2&referrer=os-catalog ApacheKafkaOnEc.

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

  3. Masukkan nama dasbor, lalu pilih Create Dashboard.

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

  4. Pratinjau dasbor dan pilih Simpan untuk membuat dasbor.

Untuk membuat dasbor melalui AWS CloudFormation
  1. Buka wizard AWS CloudFormation Quick create stack menggunakan link ini: 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. Verifikasi bahwa Wilayah yang dipilih di 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 DashboardNameparameter.

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

  5. Akui 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 CREATE_COMPLETE, pilih tab Resources di bawah tumpukan yang dibuat dan kemudian pilih tautan di bawah Physical ID 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 Kustom.

Jika Anda ingin mengedit file templat untuk menyesuaikannya untuk tujuan apa pun, Anda dapat menggunakan opsi Unggah file templat di bawah Buat Wisaya Tumpukan untuk mengunggah templat yang diedit. Untuk informasi selengkapnya, lihat Membuat tumpukan di AWS CloudFormation konsol. Anda dapat menggunakan tautan ini untuk mengunduh templat: https://aws-observability-solutions.s3.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 G1 Garbage Collector, 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 templat 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 name=\"Parallel GC\" metrik jumlah pengumpulan sampahjvm.gc.collections.count.

Mulai 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 dengan 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 produser Kafka tertentu, pilih nama grup produser tersebut di daftar dropdown Produser Kafka.

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

Verifikasi kesehatan cluster

Dari bagian Cluster Overview, temukan widget Partitions Under Replicated and In-Sync Replicas. Ini idealnya nol atau angka 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 Failed Fetch Requests dan Failed Producer Requests. Ini menunjukkan jumlah permintaan gagal untuk mengambil dan menghasilkan operasi, masing-masing. Tingkat kegagalan yang tinggi dapat mengindikasikan masalah dengan broker atau konektivitas jaringan yang memerlukan penyelidikan lebih lanjut.

Pantau kinerja produsen

Di bagian Ikhtisar Grup Produsen, temukan widget Rasio Permintaan Rata-Rata, Latensi Permintaan Rata-Rata, dan Rasio Pengiriman/Error Rate Rata-rata. Ini akan memberi Anda gambaran tentang bagaimana kinerja produsen dalam grup yang dipilih. Anda juga dapat menelusuri untuk melihat metrik untuk produsen dan topik tertentu di bagian Produsen.

Pantau kelambatan konsumen

Di bagian Ikhtisar Grup Konsumen, temukan widget Consumer Lag. Ini menunjukkan seberapa jauh di belakang konsumen dalam memproses pesan dari offset terbaru di partisi tempat mereka berlangganan. Idealnya, kelambatan konsumen harus rendah atau nol. Kelambatan 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 untuk melihat metrik untuk konsumen dan topik tertentu di bagian Konsumen.

Konfigurasikan agen untuk beberapa peran Kafka pada instance yang sama

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

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

    Jika Anda memilih opsi ini dan beberapa peran Kafka adalah bagian dari proses JVM yang sama, Anda harus menentukan titik akhir yang sama untuk setiap peran Kafka dalam konfigurasi agen. Jika beberapa peran Kafka merupakan 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, lihatBeberapa 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" } } ] } } }