Pencatatan log - Amazon Managed Streaming untuk Apache Kafka

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

Pencatatan log

Anda dapat mengirimkan log broker Apache Kafka ke satu atau lebih jenis tujuan berikut: Amazon CloudWatch Log, Amazon S3, Amazon Data Firehose. Anda juga dapat mencatat panggilan API MSK Amazon dengan AWS CloudTrail.

Log broker

Log broker memungkinkan Anda untuk memecahkan masalah aplikasi Apache Kafka Anda dan menganalisis komunikasi mereka dengan cluster MSK Anda. Anda dapat mengonfigurasi klaster MSK baru atau yang sudah ada untuk mengirimkan log broker tingkat Info ke satu atau beberapa jenis sumber daya tujuan berikut: grup CloudWatch log, bucket S3, aliran pengiriman Firehose. Melalui Firehose Anda kemudian dapat mengirimkan data log dari aliran pengiriman Anda ke OpenSearch Layanan. Anda harus membuat sumber daya tujuan sebelum mengonfigurasi klaster Anda untuk mengirimkan log broker ke sana. Amazon MSK tidak membuat sumber daya tujuan ini untuk Anda jika belum ada. Untuk informasi tentang ketiga jenis sumber daya tujuan ini dan cara membuatnya, lihat dokumentasi berikut:

Izin yang diperlukan

Untuk mengonfigurasi tujuan log broker MSK Amazon, identitas IAM yang Anda gunakan untuk tindakan MSK Amazon harus memiliki izin yang dijelaskan dalam kebijakan. AWS kebijakan terkelola: AmazonMSK FullAccess

Untuk melakukan streaming log broker ke bucket S3, Anda juga memerlukan s3:PutBucketPolicy izin. Untuk informasi tentang kebijakan bucket S3, lihat Bagaimana Cara Menambahkan Kebijakan Bucket S3? di Panduan Pengguna Amazon S3. Untuk informasi tentang kebijakan IAM secara umum, lihat Manajemen Akses di Panduan Pengguna IAM.

Kebijakan kunci KMS yang diperlukan untuk digunakan dengan bucket SSE-KMS

Jika Anda mengaktifkan enkripsi sisi server untuk bucket S3 menggunakan kunci AWS KMS-managed (SSE-KMS) dengan kunci yang dikelola pelanggan, tambahkan berikut ini ke kebijakan kunci untuk kunci KMS Anda sehingga Amazon MSK dapat menulis file broker ke bucket.

{ "Sid": "Allow Amazon MSK to use the key.", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

Mengkonfigurasi log broker menggunakan AWS Management Console

Jika Anda membuat cluster baru, cari judul pengiriman log Broker di bagian Monitoring. Anda dapat menentukan tujuan yang Anda inginkan Amazon MSK untuk mengirimkan log broker Anda.

Untuk cluster yang ada, pilih cluster dari daftar cluster Anda, lalu pilih tab Properties. Gulir ke bawah ke bagian pengiriman Log dan kemudian pilih tombol Edit. Anda dapat menentukan tujuan yang Anda inginkan Amazon MSK untuk mengirimkan log broker Anda.

Mengkonfigurasi log broker menggunakan AWS CLI

Bila Anda menggunakan create-cluster atau update-monitoring perintah, Anda dapat secara opsional menentukan logging-info parameter dan meneruskannya struktur JSON seperti contoh berikut. Dalam JSON ini, ketiga tipe tujuan adalah opsional.

{ "BrokerLogs": { "S3": { "Bucket": "ExampleBucketName", "Prefix": "ExamplePrefix", "Enabled": true }, "Firehose": { "DeliveryStream": "ExampleDeliveryStreamName", "Enabled": true }, "CloudWatchLogs": { "Enabled": true, "LogGroup": "ExampleLogGroupName" } } }

Mengkonfigurasi log broker menggunakan API

Anda dapat menentukan loggingInfo struktur opsional di JSON yang Anda berikan ke UpdateMonitoringoperasi CreateClusteratau.

catatan

Secara default, saat pencatatan broker diaktifkan, Amazon MSK mencatat log INFO level ke tujuan yang ditentukan. Namun, pengguna Apache Kafka 2.4.X dan yang lebih baru dapat secara dinamis mengatur level log broker ke salah satu level log log4j. Untuk informasi tentang pengaturan level log broker secara dinamis, lihat KIP-412: Memperluas Admin API untuk mendukung level log aplikasi dinamis. Jika Anda menyetel level log secara dinamis ke DEBUG atauTRACE, sebaiknya gunakan Amazon S3 atau Firehose sebagai tujuan log. Jika Anda menggunakan CloudWatch Log sebagai tujuan log dan Anda mengaktifkan DEBUG atau menaikkan TRACE level secara dinamis, MSK Amazon dapat terus mengirimkan sampel log. Ini dapat secara signifikan mempengaruhi kinerja broker dan hanya boleh digunakan ketika level INFO log tidak cukup bertele-tele untuk menentukan akar penyebab suatu masalah.

Logging panggilan API dengan AWS CloudTrail

catatan

AWS CloudTrail log tersedia untuk Amazon MSK hanya ketika Anda menggunakanKontrol akses IAM.

Amazon MSK terintegrasi dengan AWS CloudTrail, layanan yang menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau AWS layanan di Amazon MSK. CloudTrail menangkap panggilan API untuk sebagai acara. Panggilan yang diambil termasuk panggilan dari konsol MSK Amazon dan panggilan kode ke operasi Amazon MSK API. Ini juga menangkap tindakan Apache Kafka seperti membuat dan mengubah topik dan grup.

Jika Anda membuat jejak, Anda dapat mengaktifkan pengiriman CloudTrail acara secara berkelanjutan ke bucket Amazon S3, termasuk acara untuk Amazon MSK. Jika Anda tidak mengonfigurasi jejak, Anda masih dapat melihat peristiwa terbaru di CloudTrail konsol dalam Riwayat acara. Dengan menggunakan informasi yang dikumpulkan oleh CloudTrail, Anda dapat menentukan permintaan yang dibuat untuk Amazon MSK atau tindakan Apache Kafka, alamat IP dari mana permintaan dibuat, siapa yang membuat permintaan, kapan dibuat, dan detail tambahan.

Untuk mempelajari selengkapnya CloudTrail, termasuk cara mengonfigurasi dan mengaktifkannya, lihat Panduan AWS CloudTrail Pengguna.

Informasi MSK Amazon di CloudTrail

CloudTrail diaktifkan di akun Amazon Web Services Anda saat Anda membuat akun. Ketika aktivitas acara yang didukung terjadi di klaster MSK, aktivitas tersebut direkam dalam suatu CloudTrail peristiwa bersama dengan peristiwa AWS layanan lainnya dalam riwayat Acara. Anda dapat melihat, mencari, dan mengunduh kejadian terbaru di akun Amazon Web Services Anda. Untuk informasi selengkapnya, lihat Melihat Acara dengan Riwayat CloudTrail Acara.

Untuk catatan peristiwa yang sedang berlangsung di akun Amazon Web Services Anda, termasuk acara untuk Amazon MSK, buat jejak. Jejak memungkinkan CloudTrail untuk mengirimkan file log ke bucket Amazon S3. Secara default, ketika Anda membuat jejak di konsol, jejak diterapkan ke semua Region. Jejak mencatat peristiwa dari semua Wilayah di partisi AWS dan mengirimkan file log ke bucket Amazon S3 yang Anda tentukan. Selain itu, Anda dapat mengonfigurasi layanan Amazon lainnya untuk menganalisis lebih lanjut dan menindaklanjuti data peristiwa yang dikumpulkan dalam CloudTrail log. Untuk informasi selengkapnya, lihat berikut:

Amazon MSK mencatat semua operasi MSK Amazon sebagai peristiwa dalam file CloudTrail log. Selain itu, ia mencatat tindakan Apache Kafka berikut.

  • kafka-cluster: DescribeClusterDynamicConfiguration

  • kafka-cluster: AlterClusterDynamicConfiguration

  • kafka-cluster: CreateTopic

  • kafka-cluster: DescribeTopicDynamicConfiguration

  • kafka-cluster: AlterTopic

  • kafka-cluster: AlterTopicDynamicConfiguration

  • kafka-cluster: DeleteTopic

Setiap entri peristiwa atau log berisi informasi tentang siapa yang membuat permintaan tersebut. Informasi identitas membantu Anda menentukan berikut ini:

  • Apakah permintaan dibuat dengan pengguna root atau kredensyal pengguna AWS Identity and Access Management (IAM).

  • Apakah permintaan tersebut dibuat dengan kredensial keamanan sementara untuk satu peran atau pengguna terfederasi.

  • Apakah permintaan itu dibuat oleh AWS layanan lain.

Untuk informasi selengkapnya, lihat Elemen CloudTrail UserIdentity.

Contoh: Entri file log Amazon MSK

Trail adalah konfigurasi yang memungkinkan pengiriman peristiwa sebagai file log ke bucket Amazon S3 yang Anda tentukan. CloudTrail file log berisi satu atau lebih entri log. Peristiwa merepresentasikan satu permintaan dari sumber apa pun dan menyertakan informasi tentang tindakan yang diminta, tanggal dan waktu tindakan, parameter permintaan, dan sebagainya. CloudTrail file log bukanlah jejak tumpukan yang diurutkan dari panggilan API publik dan tindakan Apache Kafka, sehingga file tersebut tidak muncul dalam urutan tertentu.

Contoh berikut menunjukkan entri CloudTrail log yang menunjukkan tindakan MSK DescribeCluster dan DeleteCluster Amazon.

{ "Records": [ { "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "ABCDEF0123456789ABCDE", "arn": "arn:aws:iam::012345678901:user/Joe", "accountId": "012345678901", "accessKeyId": "AIDACKCEVSQ6C2EXAMPLE", "userName": "Joe" }, "eventTime": "2018-12-12T02:29:24Z", "eventSource": "kafka.amazonaws.com", "eventName": "DescribeCluster", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "aws-cli/1.14.67 Python/3.6.0 Windows/10 botocore/1.9.20", "requestParameters": { "clusterArn": "arn%3Aaws%3Akafka%3Aus-east-1%3A012345678901%3Acluster%2Fexamplecluster%2F01234567-abcd-0123-abcd-abcd0123efa-2" }, "responseElements": null, "requestID": "bd83f636-fdb5-abcd-0123-157e2fbf2bde", "eventID": "60052aba-0123-4511-bcde-3e18dbd42aa4", "readOnly": true, "eventType": "AwsApiCall", "recipientAccountId": "012345678901" }, { "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "ABCDEF0123456789ABCDE", "arn": "arn:aws:iam::012345678901:user/Joe", "accountId": "012345678901", "accessKeyId": "AIDACKCEVSQ6C2EXAMPLE", "userName": "Joe" }, "eventTime": "2018-12-12T02:29:40Z", "eventSource": "kafka.amazonaws.com", "eventName": "DeleteCluster", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "aws-cli/1.14.67 Python/3.6.0 Windows/10 botocore/1.9.20", "requestParameters": { "clusterArn": "arn%3Aaws%3Akafka%3Aus-east-1%3A012345678901%3Acluster%2Fexamplecluster%2F01234567-abcd-0123-abcd-abcd0123efa-2" }, "responseElements": { "clusterArn": "arn:aws:kafka:us-east-1:012345678901:cluster/examplecluster/01234567-abcd-0123-abcd-abcd0123efa-2", "state": "DELETING" }, "requestID": "c6bfb3f7-abcd-0123-afa5-293519897703", "eventID": "8a7f1fcf-0123-abcd-9bdb-1ebf0663a75c", "readOnly": false, "eventType": "AwsApiCall", "recipientAccountId": "012345678901" } ] }

Contoh berikut menunjukkan entri CloudTrail log yang menunjukkan kafka-cluster:CreateTopic tindakan.

{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "ABCDEFGH1IJKLMN2P34Q5", "arn": "arn:aws:iam::111122223333:user/Admin", "accountId": "111122223333", "accessKeyId": "CDEFAB1C2UUUUU3AB4TT", "userName": "Admin" }, "eventTime": "2021-03-01T12:51:19Z", "eventSource": "kafka-cluster.amazonaws.com", "eventName": "CreateTopic", "awsRegion": "us-east-1", "sourceIPAddress": "198.51.100.0/24", "userAgent": "aws-msk-iam-auth/unknown-version/aws-internal/3 aws-sdk-java/1.11.970 Linux/4.14.214-160.339.amzn2.x86_64 OpenJDK_64-Bit_Server_VM/25.272-b10 java/1.8.0_272 scala/2.12.8 vendor/Red_Hat,_Inc.", "requestParameters": { "kafkaAPI": "CreateTopics", "resourceARN": "arn:aws:kafka:us-east-1:111122223333:topic/IamAuthCluster/3ebafd8e-dae9-440d-85db-4ef52679674d-1/Topic9" }, "responseElements": null, "requestID": "e7c5e49f-6aac-4c9a-a1d1-c2c46599f5e4", "eventID": "be1f93fd-4f14-4634-ab02-b5a79cb833d2", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }