Pemecahan Masalah MSK Sebagai Sumber - Amazon Data Firehose

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

Pemecahan Masalah MSK Sebagai Sumber

Bagian ini menjelaskan langkah-langkah pemecahan masalah umum saat menggunakan MSK Sebagai Sumber

catatan

Untuk mengatasi masalah pemrosesan, transformasi, atau pengiriman S3, silakan lihat bagian sebelumnya

Pembuatan selang gagal

Periksa hal berikut jika selang Anda dengan MSK As Source gagal dibuat:

Selang Ditangguhkan

Periksa hal berikut jika selang Anda dalam keadaan SUSPEND

  • Periksa apakah cluster MSK sumber dalam keadaan aktif.

  • Periksa apakah topik sumber ada. Jika topik telah dihapus dan dibuat ulang, Anda harus menghapus dan membuat ulang aliran Firehose juga.

Selang Backpresurred

Nilai DataReadFromSource .Backpressured akan menjadi 1 ketika BytesPerSecondLimit per partisi terlampaui atau bahwa aliran pengiriman normal lambat atau berhenti.

  • Jika Anda menekan BytesPerSecondLimit silakan periksa metrik DataReadFromSource .Bytes dan minta kenaikan batas.

  • Periksa CloudWatch log, metrik tujuan, metrik Transformasi Data, dan metrik Konversi Format untuk mengidentifikasi kemacetan.

Kesegaran Data Salah

Kesegaran data tampaknya salah

  • Firehose menghitung kesegaran data berdasarkan stempel waktu dari catatan yang dikonsumsi. Untuk memastikan bahwa stempel waktu ini direkam dengan benar ketika catatan produser disimpan di log broker Kafka, atur konfigurasi tipe stempel waktu topik Kafka menjadi. message.timestamp.type=LogAppendTime

Masalah koneksi kluster MSK

Prosedur berikut menjelaskan bagaimana Anda dapat memvalidasi konektivitas ke kluster MSK. Untuk detail tentang pengaturan klien MSK Amazon, lihat Memulai menggunakan MSK Amazon di Panduan Pengembang Amazon Managed Streaming for Apache Kafka.

Untuk memvalidasi konektivitas ke kluster MSK
  1. Buat instance AL2 Amazon EC2 berbasis Unix (lebih disukai). Jika Anda hanya mengaktifkan konektivitas VPC di cluster Anda, pastikan EC2 instance Anda berjalan di VPC yang sama. SSH ke dalam instance setelah tersedia. Untuk informasi lebih lanjut, lihat tutorial ini di Panduan EC2 Pengguna Amazon.

  2. Instal Java menggunakan manajer paket Yum dengan menjalankan perintah berikut. Untuk informasi selengkapnya, lihat petunjuk penginstalan di Panduan Pengguna Amazon Corretto 8.

    sudo yum install java-1.8.0
  3. Instal AWS klien dengan menjalankan perintah berikut.

    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
  4. Unduh versi Apache Kafka client 2.6* dengan menjalankan perintah berikut.

    wget https://archive.apache.org/dist/kafka/2.6.2/kafka_2.12-2.6.2.tgz tar -xzf kafka_2.12-2.6.2.tgz
  5. Buka kafka_2.12-2.6.2/libs direktori, lalu jalankan perintah berikut untuk mengunduh file Amazon MSK IAM JAR.

    wget https://github.com/aws/aws-msk-iam-auth/releases/download/v1.1.3/aws-msk-iam-auth-1.1.3-all.jar
  6. Buat client.properties file di folder bin Kafka.

  7. Ganti awsRoleArn dengan peran ARN yang telah Anda gunakan di Firehose Anda SourceConfiguration dan verifikasi lokasi sertifikat. Izinkan pengguna AWS klien Anda untuk mengambil peranawsRoleArn. AWS pengguna klien akan mencoba untuk mengambil peran yang Anda tentukan di sini.

    [ec2-user@ip-xx-xx-xx-xx bin]$ cat client.properties security.protocol=SASL_SSL sasl.mechanism=AWS_MSK_IAM sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required awsRoleArn="<role arn>" awsStsRegion="<region name>"; sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler awsDebugCreds=true ssl.truststore.location=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.amzn2.0.1.x86_64/jre/lib/security/cacerts ssl.truststore.password=changeit
  8. Jalankan perintah Kafka berikut untuk membuat daftar topik. Jika koneksi Anda bersifat publik, gunakan server Bootstrap titik akhir publik. Jika koneksi Anda bersifat pribadi, gunakan server Bootstrap endpoint pribadi.

    bin/kafka-topics.sh --list --bootstrap-server <bootstrap servers> --command-config bin/client.properties

    Jika permintaan berhasil, Anda akan melihat output yang mirip dengan contoh berikut.

    [ec2-user@ip-xx-xx-xx-xx kafka_2.12-2.6.2]$ bin/kafka-topics.sh --list --bootstrap-server <bootstrap servers> --command-config bin/client.properties [xxxx-xx-xx 05:49:50,877] WARN The configuration 'awsDebugCreds' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:49:50,878] WARN The configuration 'ssl.truststore.location' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:49:50,878] WARN The configuration 'sasl.jaas.config' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:49:50,878] WARN The configuration 'sasl.client.callback.handler.class' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:49:50,878] WARN The configuration 'ssl.truststore.password' was supplied but isn't a known config. (org.apache.kafka.clients.admin.AdminClientConfig) [xxxx-xx-xx 05:50:21,629] WARN [AdminClient clientId=adminclient-1] Connection to node... __amazon_msk_canary __consumer_offsets
  9. Jika Anda memiliki masalah dalam menjalankan skrip sebelumnya, verifikasi bahwa server bootstrap yang Anda berikan dapat dijangkau pada port yang ditentukan. Untuk melakukan ini, Anda dapat mengunduh dan menggunakan telnet atau utilitas serupa seperti yang ditunjukkan pada perintah berikut.

    sudo yum install telnet telnet <bootstrap servers><port>

    Jika permintaan berhasil, Anda akan mendapatkan output berikut. Ini berarti bahwa Anda dapat terhubung ke cluster MSK Anda dalam VPC lokal Anda dan server bootstrap sehat pada port yang ditentukan.

    Connected to ..
  10. Jika permintaan tidak berhasil, periksa aturan masuk pada grup keamanan VPC Anda. Sebagai contoh, Anda dapat menggunakan properti berikut pada aturan masuk.

    Type: All traffic Port: Port used by the bootstrap server (e.g. 14001) Source: 0.0.0.0/0

    Coba lagi koneksi telnet seperti yang ditunjukkan pada langkah sebelumnya. Jika Anda masih tidak dapat terhubung atau koneksi Firehose Anda masih gagal, hubungi dukungan.AWS