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 saat 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 saat 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 dalam project yang berbeda, konfigurasi izin yang diperlukan. Lihat Menghubungkan cluster di seluruh project.

  • Pastikan tidak ada batasan kebijakan organisasi yang mencegah layanan membuat resource yang diperlukan di 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 bentuk, dan tidak merepresentasikan blob JSON kunci akun layanan yang valid saat didekodekan base64, atau token akses yang valid.

  • Akun utama yang mengautentikasi tidak memiliki izin managedkafka.clusters.connect di cluster.

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

Jika klien sering mengalami pemutusan koneksi setiap 30 menit, hal ini dapat disebabkan karena klien tidak mendukung autentikasi ulang berkala. Broker Managed Service untuk Apache Kafka mewajibkan klien melakukan autentikasi ulang setiap 30 menit, yang diterapkan oleh properti broker connections.max.reauth.ms. Verifikasi bahwa 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 sedang berjalan.

Error kehabisan disk

Jika ruang disk broker habis, broker tidak dapat menggulirkan segmen aktif atau menulis segmen baru, yang mencegah klien membuat atau menggunakan pesan. Gejalanya meliputi:

  • Performa klien menurun secara tiba-tiba. Misalnya, produsen mengalami error waktu tunggu dan jeda terus meningkat di konsumen.

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

  • Jumlah replika dalam sinkronisasi (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 ruang disk, tingkatkan ukuran disk broker. Pertimbangkan juga menskalakan 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 penggunaan disk broker akan meningkat seiring dengan jumlah kunci unik.

Klien mengalami pemutusan koneksi sementara

Managed Service untuk Apache Kafka dapat melakukan update yang memerlukan restart bertahap pada broker. Selama proses ini, permintaan ke setiap broker 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 melakukan failover ke broker lain.

  • Menyeimbangkan kembali grup konsumen, menghentikan sementara konsumsi.

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

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

  • Lonjakan pada metrik Partisi di Bawah MinISR (broker/under_min_isr_partitions). Lonjakan ini kemungkinan sesuai dengan topik pemantauan internal yang tidak direplikasi, dan merupakan perilaku yang diharapkan selama jumlahnya adalah 1 untuk setiap broker. Nilai yang lebih besar dari 1 mungkin menunjukkan masalah pada topik data atau metadata.

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

Langkah berikutnya