Memecahkan masalah error cluster Kafka

Halaman ini menunjukkan cara menyelesaikan masalah saat membuat atau mengonfigurasi cluster Managed Service untuk Apache Kafka.

Error pembuatan cluster Kafka

Bagian ini mencantumkan error yang mungkin Anda alami saat membuat cluster Kafka.

Layanan tidak memiliki izin untuk mengakses kunci Cloud KMS

Masalah berikut terjadi jika agen layanan Managed Service untuk Apache Kafka tidak memiliki izin yang diperlukan untuk mengakses kunci Cloud KMS.

Service agent service-${PROJECT_NUMBER}@gcp-sa-managedkafka.iam.gserviceaccount.com
has not been granted the required role cloudkms.cryptoKeyEncrypterDecrypter to
encrypt data using the KMS key.`

Untuk mengatasi masalah ini, berikan peran Cloud KMS CryptoKey Encrypter/Decrypter ke akun layanan pada kunci Cloud KMS. Untuk mengetahui informasi selengkapnya, lihat peran yang diperlukan untuk mengonfigurasi CMEK.

Layanan tidak memiliki izin untuk mengambil subnet

Masalah berikut terjadi jika agen layanan Managed Service untuk Apache Kafka tidak memiliki peran yang diperlukan untuk mengonfigurasi jaringan di jaringan VPC tempat klien Kafka berjalan.

Service does not have permission to retrieve subnet. Please grant
service-${PROJECT_NUMBER}@gcp-sa-managedkafka.iam.gserviceaccount.com the
managedkafka.serviceAgent role in the IAM policy of the project
${SUBNET_PROJECT} and ensure the Compute Engine API is enabled in project
${SUBNET_PROJECT}`

Untuk mengatasi masalah ini, berikan peran Managed Kafka Service Agent ke akun layanan. Untuk mengetahui informasi selengkapnya, lihat Menghubungkan cluster di seluruh project.

Error jaringan

Bagian ini mencantumkan error yang mungkin Anda alami saat mengonfigurasi jaringan untuk cluster Kafka.

Layanan gagal menyiapkan jaringan

Masalah berikut terjadi jika Managed Service untuk Apache Kafka tidak dapat menghubungkan cluster Kafka ke subnet Virtual Private Cloud Anda.

Managed Service for Apache Kafka failed to set up networking in VPC subnet.

Untuk mengatasi masalah ini, lakukan langkah-langkah berikut:

  • Aktifkan Compute Engine API dan Cloud DNS API di project induk jaringan VPC konsumen.

  • Jika cluster Managed Service untuk Apache Kafka dan jaringan VPC konsumen berada di project yang berbeda, konfigurasikan izin yang diperlukan. Lihat Menghubungkan cluster di seluruh project.

  • Pastikan tidak ada batasan kebijakan organisasi yang mencegah layanan membuat resource yang diperlukan dalam project jaringan VPC konsumen.

Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi jaringan untuk Managed Service untuk Apache Kafka.

Aplikasi klien tidak dapat terhubung

Jika aplikasi klien Anda tidak dapat terhubung ke cluster, periksa masalah berikut:

  • Pastikan klien menggunakan alamat bootstrap yang benar.

  • Pastikan klien Kafka berjalan di jaringan VPC yang dikonfigurasi untuk mengakses cluster Managed Service untuk Apache Kafka.

  • Jika menjalankan klien Kafka di komputer atau laptop, Anda dapat menyiapkan instance Compute Engine untuk digunakan sebagai proxy guna mengakses cluster Managed Service untuk Apache Kafka. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan mesin klien.

Error autentikasi

Bagian ini mencantumkan error yang mungkin Anda alami saat aplikasi klien melakukan autentikasi ke cluster Kafka Anda.

Autentikasi SASL gagal

Masalah berikut terjadi saat klien tidak dapat terhubung ke cluster menggunakan autentikasi SASL.

Exception in thread "main" java.util.concurrent.ExecutionException:
org.apache.kafka.common.errors.SaslAuthenticationException:
Authentication failed: Invalid username or password

Untuk mengatasi masalah ini, periksa penyebab berikut:

  • Sandi salah format, dan tidak mewakili blob JSON kunci akun layanan yang valid saat didekode base64, atau token akses yang valid.

  • Akun utama yang melakukan autentikasi tidak memiliki izin managedkafka.clusters.connect pada cluster.

  • Nama pengguna yang diberikan tidak cocok dengan akun utama kredensial.

Jika klien sering mengalami pemutusan koneksi setiap 30 menit, hal ini dapat disebabkan oleh klien yang tidak mendukung autentikasi ulang berkala. Broker Managed Service untuk Apache Kafka mengharuskan klien untuk melakukan autentikasi ulang setiap 30 menit, yang diterapkan oleh properti broker connections.max.reauth.ms. Pastikan versi library klien Kafka Anda adalah 2.2.0 atau yang lebih baru, dan mendukung autentikasi ulang.

Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi autentikasi SASL.

Error operasional

Bagian ini mencantumkan error yang mungkin terjadi saat workload Kafka Anda berjalan.

Error kehabisan disk

Jika broker kehabisan kapasitas disk, broker tidak dapat menggulirkan segmen aktif atau menulis segmen baru, sehingga mencegah klien memproduksi atau menggunakan pesan. Gejalanya meliputi:

  • Performa klien menurun secara tidak terduga. Misalnya, produsen mengalami error waktu tunggu dan jeda terus meningkat pada konsumen.

  • Penggunaan disk broker sangat tinggi (>85%).

  • Jumlah replika yang disinkronkan (ISR) turun di bawah faktor replikasi.

  • Log cluster menampilkan error seperti berikut:

    Error processing append operation on partition PARTITION_ID.
    org.apache.kafka.common.errors.NotEnoughReplicasException: The size of the current ISR Set(10)
    is insufficient to satisfy the min.isr requirement of 2 for partition PARTITION_ID
    

Untuk menghindari error kehabisan disk, pantau kapasitas cluster dan replikasi partisi. Untuk mengetahui informasi selengkapnya, lihat Memantau keandalan cluster Kafka.

Jika broker kehabisan kapasitas disk, tingkatkan ukuran disk broker. Pertimbangkan juga untuk meningkatkan skala cluster untuk menambahkan broker baru.

Pemadatan log yang dikombinasikan dengan ruang kunci yang sangat besar dapat menyebabkan error kehabisan disk. Jika pemadatan log diaktifkan, Kafka akan menyimpan pesan terbaru untuk setiap kunci di penyimpanan lokal, sehingga pemakaian disk broker bertambah seiring dengan jumlah kunci unik.

Klien mengalami pemutusan koneksi sementara

Managed Service untuk Apache Kafka mungkin melakukan update yang memerlukan mulai ulang berkelanjutan pada broker. Selama proses ini, permintaan ke broker individual mungkin gagal, tetapi kegagalan ini bersifat sementara. Untuk mengetahui informasi selengkapnya, lihat Upgrade dan patch.

Anda tidak perlu melakukan tindakan apa pun selama broker dimulai ulang. Namun, Anda mungkin mengamati hal berikut:

  • Jeda dalam pemrosesan saat pemimpin partisi dan koordinator grup konsumen gagal beralih ke broker lain.

  • Penyeimbangan ulang grup konsumen, yang menjeda konsumsi untuk sementara.

  • Error koneksi sementara atau waktu tunggu habis saat melakukan commit offset. Library klien yang umum digunakan akan otomatis menangani error ini.

  • Lonjakan sementara dalam jumlah partisi yang kurang direplikasi (broker/under_replicated_partitions) pada broker yang tersisa saat broker dimulai ulang.

  • Nilai sementara 1 dalam metrik Offline Partitions (offline_partitions) saat broker tidak aktif. Nilai ini sesuai dengan topik pemantauan internal yang memiliki satu replika pada broker yang dimulai ulang, dan merupakan perilaku yang diharapkan. Nilai yang lebih besar dari 1 mungkin menunjukkan masalah pada topik data atau metadata.

    Metrik Under-MinISR Partitions (broker/under_min_isr_partitions) tidak terpengaruh oleh topik pemantauan internal dan tetap di angka 0 selama mulai ulang berkelanjutan jika topik Anda menggunakan faktor replikasi default 3 dan min.insync.replicas 2. Nilai yang lebih besar dari 0 berarti lebih dari satu replika partisi tidak tersedia, yang mungkin mengindikasikan adanya masalah.

Memperbarui properti cluster tertentu secara manual, seperti jumlah vCPU dan memori, juga dapat menyebabkan layanan melakukan mulai ulang berkelanjutan. Lihat Memperbarui cluster Managed Service untuk Apache Kafka.

Langkah berikutnya

Apache Kafka® adalah merek dagang terdaftar dari Apache Software Foundation atau afiliasinya di Amerika Serikat dan/atau negara lainnya.