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

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

Pencarian log lambat, indeks log lambat, dan log kesalahan berguna untuk memecahkan masalah performa dan stabilitas. Log audit melacak aktivitas pengguna untuk tujuan kepatuhan. Semua log bersifat nonaktif secara default. Jika diaktifkan, CloudWatchharga standar berlaku.

catatan

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

Untuk log-nya, OpenSearch menggunakan Apache Log4j 2 dan tingkat log bawaan (dari yang teringan sampai yang terparah) dariTRACE,,,,,,,DEBUG, INFOWARN, ERROR dan. FATAL

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

  • 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

  • Manajemen State State State State State State State State State State State Indeks

Mengaktifkan penerbitan log (konsol)

Konsol OpenSearch Layanan adalah cara termudah untuk mengaktifkan penerbitan log. 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 OpenSearchLayanan 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 grup 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 aws:SourceAccount dan kunci aws:SourceArn kondisi ke kebijakan untuk melindungi diri Anda dari masalah wakil yang bingung. Akun sumber adalah pemilik domain dan sumber ARN adalah ARN domain. Domain Anda harus menggunakan 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

    CloudWatchDukungan log 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 agar tidak 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, lihat Pengaturan ambang OpenSearch logging untuk log lambat. 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)

Agar 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 Service 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

CloudWatchDukungan log 10 kebijakan sumber daya per Wilayah. Jika Anda berencana untuk mengaktifkan log lambat 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 pengindeks 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 penerbitanCloudWatch, jalankan perintah yang sama denganEnabled=false.

Jika Anda mengaktifkan salah satu log lambat, lihat Pengaturan ambang OpenSearch logging untuk log lambat. 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)

Agar dapat mengaktifkan penerbitan log, Anda harus terlebih dahulu membuat grup CloudWatch log, mendapatkan ARN-nya, lalu memberikan izin OpenSearch Service untuk menuliskannya. Operasi yang relevan didokumentasikan dalam Referensi API Amazon CloudWatch Logs:

  • CreateLogGroup

  • DescribeLogGroup

  • PutResourcePolicy

Anda dapat mengakses operasi ini dengan menggunakan AWS SDK.

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

Jika Anda mengaktifkan salah satu log lambat, lihat Pengaturan ambang OpenSearch logging untuk log lambat. Jika Anda mengaktifkan log kesalahan saja, Anda tidak perlu melakukan langkah konfigurasi tambahan apa pun.

Mengaktifkan penerbitan log (CloudFormation)

Dalam contoh ini, kami menggunakan CloudFormation untuk membuat grup log yang disebutopensearch-logs, menetapkan izin yang sesuai, lalu membuat domain dengan penerbitan log yang diaktifkan untuk log aplikasi, pencarian log lambat, dan log lambat indeks.

Agar 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 menghasilkan ARN grup log. Dalam hal ini, ARN adalaharn:aws:logs:us-east-1:123456789012:log-group:opensearch-logs.

Menggunakan ARN, buat kebijakan sumber daya yang memberikan izin OpenSearch Service 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 Service dengan penerbitan log. Kebijakan akses mengizinkan pengguna untuk membuat semua permintaan HTTP ke domain. Akun AWS

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.

Pengaturan ambang OpenSearch logging untuk log lambat

OpenSearchmenonaktifkan log lambat secara default. Setelah Anda mengaktifkan penerbitan log lambatCloudWatch, 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.

Anda 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" }

Untuk menguji apakah log lambat berhasil melakukan penerbitan, cobalah untuk memulai dengan nilai yang sangat rendah guna memverifikasi bahwa log munculCloudWatch, lalu 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 melakukan penerbitan ke grup log? Periksa konsol OpenSearch Layanan, gunakan AWS CLI describe-domain-config opsi, atau hubungi DescribeDomainConfig menggunakan salah satu SDK.

  • Apakah ambang OpenSearch logging cukup rendah sehingga permintaan Anda melampauinya? Untuk meninjau ambang batas 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 dari menghasilkan log; itu hanya menghentikan penerbitan log tersebut. Pastikan untuk memeriksa pengaturan indeks jika Anda tidak lagi membutuhkan log lambat.

Melihat log

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

Berikut adalah beberapa pertimbangan untuk melihat log:

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

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