Memantau OpenSearch log dengan Amazon CloudWatch Logs - OpenSearch Layanan Amazon

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

Memantau OpenSearch log dengan Amazon CloudWatch Logs

OpenSearch Layanan Amazon mengekspos OpenSearch log berikut melalui Amazon CloudWatch Logs:

Cari log lambat pecahan, pengindeksan log lambat pecahan, dan log kesalahan berguna untuk memecahkan masalah kinerja dan stabilitas. Log audit melacak aktivitas pengguna untuk tujuan kepatuhan. Semua log bersifat nonaktif secara default. Jika diaktifkan, CloudWatch harga standar berlaku.

catatan

Log kesalahan hanya tersedia untuk OpenSearch dan Elasticsearch versi 5.1 dan yang lebih baru. Log lambat tersedia untuk semua OpenSearch dan versi Elasticsearch.

Untuk lognya, OpenSearch gunakan Apache Log4j 2 dan level log bawaannya (dari yang paling parah hingga yang paling parah) dariTRACE,,,DEBUG, INFOWARN, ERROR dan. FATAL

Jika Anda mengaktifkan log kesalahan, OpenSearch Layanan menerbitkan baris log dariWARN,ERROR, dan FATAL ke CloudWatch. OpenSearch Layanan juga menerbitkan beberapa pengecualian dari DEBUG tingkat, termasuk yang berikut:

  • org.opensearch.index.mapper.MapperParsingException

  • org.opensearch.index.query.QueryShardException

  • org.opensearch.action.search.SearchPhaseExecutionException

  • org.opensearch.common.util.concurrent.OpenSearchRejectedExecutionException

  • java.lang.IllegalArgumentException

Log kesalahan dapat membantu pemecahan masalah dalam banyak situasi, termasuk berikut ini:

  • Masalah kompilasi penulisan tanpa rasa sakit

  • Kueri tidak valid

  • Masalah pengindeksan

  • Kegagalan snapshot

  • Kegagalan migrasi Manajemen Negara Indeks

Mengaktifkan penerbitan log (konsol)

Konsol OpenSearch Layanan adalah cara paling sederhana untuk mengaktifkan penerbitan log ke CloudWatch.

Untuk mengaktifkan penerbitan log ke CloudWatch (konsol)
  1. Masuk ke https://aws.amazon.com, dan kemudian pilih Masuk ke Konsol.

  2. Di bawah Analytics, pilih OpenSearch Layanan Amazon.

  3. Pilih domain yang ingin Anda perbarui.

  4. Pada tab Log, pilih jenis log dan pilih Aktifkan.

  5. Buat grup CloudWatch log baru atau pilih yang sudah ada.

    catatan

    Jika Anda berencana untuk mengaktifkan beberapa log, sebaiknya penerbitan masing-masing dilakukan ke grup log sendiri. Pemisahan ini membuat log lebih mudah untuk dipindai.

  6. Pilih kebijakan akses yang berisi izin yang sesuai, atau buat kebijakan dengan menggunakan JSON yang disediakan oleh konsol:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": "cw_log_group_arn:*" } ] }

    Kami menyarankan Anda menambahkan kunci aws:SourceAccount dan aws:SourceArn kondisi ke kebijakan untuk melindungi diri Anda dari masalah wakil yang membingungkan. Akun sumber adalah pemilik domain dan sumber ARN adalah ARN dari domain. Domain Anda harus berada di perangkat lunak layanan R20211203 atau yang lebih baru untuk menambahkan kunci kondisi ini.

    Misalnya, Anda dapat menambahkan blok kondisi berikut ke kebijakan:

    "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:es:region:account-id:domain/domain-name" } }
    penting

    CloudWatch Log mendukung 10 kebijakan sumber daya per Wilayah. Jika Anda berencana untuk mengaktifkan log untuk beberapa domain OpenSearch Layanan, Anda harus membuat dan menggunakan kembali kebijakan yang lebih luas yang mencakup beberapa grup log untuk menghindari mencapai batas ini. Untuk langkah-langkah memperbarui kebijakan, lihat Mengaktifkan penerbitan log (AWS CLI).

  7. Pilih Aktifkan.

    Status domain Anda berubah dari Aktif ke Pemrosesan. Status harus kembali ke Aktif sebelum penerbitan log diaktifkan. Perubahan ini umumnya memakan waktu 30 menit, tetapi dapat lebih lama tergantung pada konfigurasi domain Anda.

Jika Anda mengaktifkan salah satu log lambat pecahan, lihatMengatur ambang batas log lambat pecahan. Jika Anda mengaktifkan log audit, lihat Langkah 2: Aktifkan log audit di OpenSearch Dasbor. Jika Anda mengaktifkan log kesalahan saja, Anda tidak perlu melakukan langkah konfigurasi tambahan apa pun.

Mengaktifkan penerbitan log (AWS CLI)

Sebelum Anda dapat mengaktifkan penerbitan log, Anda memerlukan grup CloudWatch log. Jika Anda belum memilikinya, Anda dapat membuatnya dengan menggunakan perintah berikut:

aws logs create-log-group --log-group-name my-log-group

Masukkan perintah berikutnya untuk menemukan ARN grup log, lalu buat catatan tentang hal tersebut:

aws logs describe-log-groups --log-group-name my-log-group

Sekarang Anda dapat memberikan izin OpenSearch Layanan untuk menulis ke grup log. Anda harus memberikan ARN grup log dekat akhir perintah:

aws logs put-resource-policy \ --policy-name my-policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com"}, "Action":[ "logs:PutLogEvents","logs:CreateLogStream"],"Resource": "cw_log_group_arn:*"}]}'
penting

CloudWatch Log mendukung 10 kebijakan sumber daya per Wilayah. Jika Anda berencana untuk mengaktifkan log lambat pecahan untuk beberapa domain OpenSearch Layanan, Anda harus membuat dan menggunakan kembali kebijakan yang lebih luas yang mencakup beberapa grup log agar tidak mencapai batas ini.

Jika Anda perlu meninjau kebijakan ini di lain waktu, gunakan Perintah aws logs describe-resource-policies. Untuk memperbarui kebijakan, terbitkan perintah aws logs put-resource-policy yang sama dengan dokumen kebijakan baru.

Akhirnya, Anda dapat menggunakan opsi --log-publishing-options untuk mengaktifkan penerbitan. Sintaks untuk opsi tersebut sama-sama digunakan untuk perintah create-domain dan update-domain-config.

Parameter Nilai valid
--log-publishing-options SEARCH_SLOW_LOGS={CloudWatchLogsLogGroupArn=cw_log_group_arn,Enabled=true|false}
INDEX_SLOW_LOGS={CloudWatchLogsLogGroupArn=cw_log_group_arn,Enabled=true|false}
ES_APPLICATION_LOGS={CloudWatchLogsLogGroupArn=cw_log_group_arn,Enabled=true|false}
AUDIT_LOGS={CloudWatchLogsLogGroupArn=cw_log_group_arn,Enabled=true|false}
catatan

Jika Anda berencana untuk mengaktifkan beberapa log, sebaiknya penerbitan masing-masing dilakukan ke grup log sendiri. Pemisahan ini membuat log lebih mudah untuk dipindai.

Contoh

Contoh berikut memungkinkan penerbitan pencarian dan pengindeksan shard log lambat untuk domain tertentu:

aws opensearch update-domain-config \ --domain-name my-domain \ --log-publishing-options "SEARCH_SLOW_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-log-group,Enabled=true},INDEX_SLOW_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-other-log-group,Enabled=true}"

Untuk menonaktifkan penerbitan ke CloudWatch, jalankan perintah yang sama denganEnabled=false.

Jika Anda mengaktifkan salah satu log lambat pecahan, lihatMengatur ambang batas log lambat pecahan. Jika Anda mengaktifkan log audit, lihat Langkah 2: Aktifkan log audit di OpenSearch Dasbor. Jika Anda mengaktifkan log kesalahan saja, Anda tidak perlu melakukan langkah konfigurasi tambahan apa pun.

Mengaktifkan penerbitan log (AWS SDK)

Sebelum Anda dapat mengaktifkan penerbitan log, Anda harus terlebih dahulu membuat grup CloudWatch log, mendapatkan ARN, dan memberikan izin OpenSearch Layanan untuk menulis ke sana. Operasi yang relevan didokumentasikan dalam Referensi API Amazon CloudWatch Logs:

  • CreateLogGroup

  • DescribeLogGroup

  • PutResourcePolicy

Anda dapat mengakses operasi ini dengan menggunakan AWS SDK.

AWS SDK (kecuali SDK Android dan iOS) mendukung semua operasi yang ditentukan dalam Referensi API OpenSearch Layanan Amazon, termasuk --log-publishing-options opsi untuk CreateDomain dan. UpdateDomainConfig

Jika Anda mengaktifkan salah satu log lambat pecahan, lihatMengatur ambang batas log lambat pecahan. Jika Anda mengaktifkan log kesalahan saja, Anda tidak perlu melakukan langkah konfigurasi tambahan apa pun.

Mengaktifkan penerbitan log (CloudFormation)

Dalam contoh ini, kita gunakan CloudFormation untuk membuat grup log yang disebutopensearch-logs, menetapkan izin yang sesuai, dan kemudian membuat domain dengan penerbitan log diaktifkan untuk log aplikasi, mencari log lambat pecahan, dan mengindeks log lambat.

Sebelum Anda dapat mengaktifkan penerbitan log, Anda perlu membuat grup CloudWatch log:

Resources: OpenSearchLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: opensearch-logs Outputs: Arn: Value: 'Fn::GetAtt': - OpenSearchLogGroup - Arn

Template mengeluarkan ARN dari grup log. Dalam hal ini, ARN adalah. arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs

Menggunakan ARN, buat kebijakan sumber daya yang memberikan izin OpenSearch Layanan untuk menulis ke grup log:

Resources: OpenSearchLogPolicy: Type: AWS::Logs::ResourcePolicy Properties: PolicyName: my-policy PolicyDocument: "{ \"Version\": \"2012-10-17\", \"Statement\": [{ \"Sid\": \"\", \"Effect\": \"Allow\", \"Principal\": { \"Service\": \"es.amazonaws.com\"}, \"Action\":[ \"logs:PutLogEvents\",\"logs:CreateLogStream\"],\"Resource\": \"arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs:*\"}]}"

Terakhir, buat CloudFormation tumpukan berikut, yang menghasilkan domain OpenSearch Layanan dengan penerbitan log. Kebijakan akses memungkinkan pengguna Akun AWS untuk membuat semua permintaan HTTP ke domain.

Resources: OpenSearchServiceDomain: Type: "AWS::OpenSearchService::Domain" Properties: DomainName: my-domain EngineVersion: "OpenSearch_1.0" ClusterConfig: InstanceCount: 2 InstanceType: "r6g.xlarge.search" DedicatedMasterEnabled: true DedicatedMasterCount: 3 DedicatedMasterType: "r6g.xlarge.search" EBSOptions: EBSEnabled: true VolumeSize: 10 VolumeType: "gp2" AccessPolicies: Version: "2012-10-17" Statement: Effect: "Allow" Principal: AWS: "arn:aws:iam::123456789012:user/es-user" Action: "es:*" Resource: "arn:aws:es:us-east-1:123456789012:domain/my-domain/*" LogPublishingOptions: ES_APPLICATION_LOGS: CloudWatchLogsLogGroupArn: "arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs" Enabled: true SEARCH_SLOW_LOGS: CloudWatchLogsLogGroupArn: "arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs" Enabled: true INDEX_SLOW_LOGS: CloudWatchLogsLogGroupArn: "arn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs" Enabled: true

Untuk mengetahui detail informasi sintaks, lihat opsi penerbitan log dalam AWS CloudFormation Panduan Pengguna.

Mengatur ambang batas log lambat permintaan pencarian

Log lambat permintaan pencarian tersedia untuk pencarian di domain OpenSearch Layanan yang berjalan pada versi 2.13 dan yang lebih baru. Permintaan pencarian ambang log lambat dikonfigurasi untuk permintaan total memakan waktu. Ini berbeda dari log lambat permintaan shard, yang dikonfigurasi untuk pecahan individu membutuhkan waktu.

Anda dapat menentukan log lambat permintaan pencarian dengan pengaturan cluster. Ini berbeda dari shard slow logs, yang Anda aktifkan dengan pengaturan indeks. Misalnya, Anda dapat menentukan pengaturan berikut melalui OpenSearch REST API:

PUT domain-endpoint/_cluster/settings { "transient": { "cluster.search.request.slowlog.threshold.warn": "5s", "cluster.search.request.slowlog.threshold.info": "2s" } }

Mengatur ambang batas log lambat pecahan

OpenSearch menonaktifkan shard slow log secara default. Setelah Anda mengaktifkan penerbitan log lambat shard ke CloudWatch, Anda masih harus menentukan ambang logging untuk setiap indeks. OpenSearch Ambang batas ini menentukan dengan tepat apa yang harus dicatat dalam log dan tingkat log-nya.

Misalnya, Anda dapat menentukan pengaturan ini melalui OpenSearch REST API:

PUT domain-endpoint/index/_settings { "index.search.slowlog.threshold.query.warn": "5s", "index.search.slowlog.threshold.query.info": "2s" }

Menguji log lambat

Untuk menguji apakah permintaan pencarian dan log lambat pecahan berhasil diterbitkan, pertimbangkan untuk memulai dengan nilai yang sangat rendah untuk memverifikasi bahwa log muncul CloudWatch, dan kemudian tingkatkan ambang batas ke tingkat yang lebih berguna.

Jika log tidak muncul, periksa hal berikut ini:

  • Apakah grup CloudWatch log ada? Periksa CloudWatch konsol.

  • Apakah OpenSearch Layanan memiliki izin untuk menulis ke grup log? Periksa konsol OpenSearch Layanan.

  • Apakah domain OpenSearch Layanan dikonfigurasi untuk dipublikasikan ke grup log? Periksa konsol OpenSearch Layanan, gunakan AWS CLI describe-domain-config opsi, atau panggil DescribeDomainConfig menggunakan salah satu SDK.

  • Apakah ambang batas OpenSearch logging cukup rendah sehingga permintaan Anda melebihi mereka?

    Untuk meninjau ambang batas log lambat permintaan pencarian untuk domain, gunakan perintah berikut:

    GET domain-endpoint/_cluster/settings?flat_settings

    Untuk meninjau ambang batas log lambat pecahan Anda untuk indeks, gunakan perintah berikut:

    GET domain-endpoint/index/_settings?pretty

Jika ingin menonaktifkan log lambat untuk indeks, kembalikan setiap ambang yang Anda ubah ke nilai default mereka yaitu -1.

Menonaktifkan penerbitan untuk CloudWatch menggunakan konsol OpenSearch Layanan atau AWS CLI tidak berhenti OpenSearch membuat log; itu hanya menghentikan penerbitan log tersebut. Pastikan untuk memeriksa pengaturan indeks Anda jika Anda tidak lagi memerlukan log lambat pecahan, dan pengaturan domain Anda jika Anda tidak lagi memerlukan log lambat permintaan pencarian.

Melihat log

Melihat aplikasi dan log masuk CloudWatch lambat sama seperti melihat CloudWatch log lainnya. Untuk informasi selengkapnya, lihat Melihat Data Log di Panduan Pengguna CloudWatch Log Amazon.

Berikut adalah beberapa pertimbangan untuk melihat log:

  • OpenSearch Layanan hanya menerbitkan 255.000 karakter pertama dari setiap baris ke. CloudWatch Konten yang tersisa dipotong. Untuk log audit, tersedia 10.000 karakter per pesan.

  • Di CloudWatch, nama aliran log memiliki sufiks-index-slow-logs,, -search-slow-logs-application-logs, dan -audit-logs untuk membantu mengidentifikasi isinya.