Menggunakan Elastic Beanstalk dengan Amazon Logs CloudWatch - AWS Elastic Beanstalk

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

Menggunakan Elastic Beanstalk dengan Amazon Logs CloudWatch

Topik ini menjelaskan fitur pemantauan yang dapat disediakan oleh layanan Amazon CloudWatch Logs untuk Elastic Beanstalk. Ini juga memandu Anda melalui pengaturan konfigurasi dan mencantumkan lokasi log untuk setiap platform Elastic Beanstalk.

Menerapkan CloudWatch Log dapat memungkinkan Anda melakukan aktivitas pemantauan berikut:

  • Pantau dan arsipkan aplikasi Elastic Beanstalk, sistem, dan file log kustom Anda dari instance EC2 Amazon di lingkungan Anda.

  • Konfigurasikan alarm yang memudahkan Anda bereaksi terhadap peristiwa aliran log tertentu yang diekstrak oleh filter metrik Anda.

Agen CloudWatch Log yang diinstal pada setiap EC2 instans Amazon di lingkungan Anda menerbitkan titik data metrik ke CloudWatch layanan untuk setiap grup log yang Anda konfigurasikan. Setiap grup log menerapkan pola filternya sendiri untuk menentukan peristiwa aliran log apa yang akan dikirim CloudWatch sebagai titik data. Log stream yang dimiliki oleh grup log yang sama berbagi pengaturan kontrol penyimpanan, pemantauan, dan akses yang sama. Anda dapat mengonfigurasi Elastic Beanstalk untuk secara otomatis mengalirkan log CloudWatch ke layanan, seperti yang dijelaskan dalam. Streaming log instance ke CloudWatch Log Untuk informasi selengkapnya tentang CloudWatch Log, termasuk terminologi dan konsep, lihat Panduan Pengguna CloudWatch Log Amazon.

Selain log instans, jika Anda mengaktifkan peningkatan kesehatan untuk lingkungan Anda, Anda dapat mengonfigurasi lingkungan untuk mengalirkan informasi kesehatan ke CloudWatch Log. Lihat Streaming informasi kesehatan lingkungan Pohon Kacang Elastis ke Amazon Logs CloudWatch.

Prasyarat untuk melakukan streaming log ke Log CloudWatch

Untuk mengaktifkan streaming log dari EC2 instans Amazon lingkungan Anda ke CloudWatch Log, Anda harus memenuhi ketentuan berikut.

  • Platform – Karena fitur ini hanya tersedia dalam versi platform yang dirilis pada atau setelah rilis ini, jika Anda menggunakan versi platform sebelumnya, perbarui lingkungan Anda ke yang sekarang.

  • Jika Anda tidak memiliki kebijakan yang dikelola AWSElasticBeanstalkWorkerTierElastic Beanstalk AWSElasticBeanstalkWebTieratau Elastic Beanstalk di profil instans Elastic Beanstalk, Anda harus menambahkan yang berikut ini ke profil Anda untuk mengaktifkan fitur ini.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": [ "*" ] } ] }

Bagaimana Elastic Beanstalk mengatur Log CloudWatch

Elastic Beanstalk CloudWatch menginstal agen log dengan pengaturan konfigurasi default pada setiap instance yang dibuatnya. Pelajari lebih lanjut di Referensi Agen CloudWatch Log.

Saat Anda mengaktifkan streaming log instance ke CloudWatch Log, Elastic Beanstalk mengirimkan file log dari instance lingkungan Anda ke Log. CloudWatch Platform yang berbeda mengalirkan log yang berbeda. Tabel berikut mencantumkan log, berdasarkan platform.

Platform/Platform Cabang

Log

Docker/

Cabang Platform: Docker Berjalan di Amazon Linux 2 64bit

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/docker

  • /var/log/docker-events.log

  • eb-current-app/var/log/eb-docker/containers/ /stdouterr.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

Docker/

Cabang Platform: ECS Berjalan di 64bit Amazon Linux 2

  • /var/log/docker-events.log

  • /var/log/ eb-ecs-mgr .log

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/ecs/ecs-agent.log

  • /var/log/ecs/ecs-init.log

Go

. NETInti di Linux

Java /Platform Branch: Corretto berjalan di 64bit Amazon Linux 2

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/web.stdout.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

Node.js

Python

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/web.stdout.log

  • /var/log/httpd/access_log

  • /var/log/httpd/error_log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

Tomcat

PHP

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/httpd/access_log

  • /var/log/httpd/error_log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

. NETdi Windows Server

  • C:\inetpub\logs\\ W3 LogFilesSVC1\ u_ex*.log

  • C:\Program File\ Amazon\ElasticBeanstalk\ log\ AWSDeployment .log

  • C:\Program File\ Amazon\ElasticBeanstalk\ log\ Hooks.log

Ruby

  • /var/log/eb-engine.log

  • /var/log/eb-hooks.log

  • /var/log/puma/puma.log

  • /var/log/web.stdout.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

catatan

Pada tanggal 18 Juli 2022, Elastic Beanstalk menetapkan status semua cabang platform berbasis Amazon Linux () untuk pensiun. AMI AL1 Untuk informasi selengkapnya tentang migrasi ke cabang platform Amazon Linux 2023 saat ini dan didukung penuh, lihat. Memigrasi aplikasi Elastic Beanstalk Linux Anda ke Amazon Linux 2023 atau Amazon Linux 2

Tabel berikut mencantumkan file log yang dialirkan dari instance di cabang platform berbasis Amazon Linux AMI (sebelumnya Amazon Linux 2), berdasarkan platform.

Platform/Platform Cabang

Log

Docker/

Cabang Platform: Docker Berjalan di Amazon Linux 64bit

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/docker-events.log

  • /var/log/docker

  • /var/log/nginx/access.log

  • eb-current-app/var/log/eb-docker/containers/ /stdouterr.log

Docker/

Cabang Platform: Multicontainer Docker Berjalan di Amazon Linux 64bit

  • /var/log/eb-activity.log

  • /var/log/ecs/ecs-init.log

  • /var/log/ eb-ecs-mgr .log

  • /var/log/ecs/ecs-agent.log

  • /var/log/docker-events.log

Glassfish (Docker yang telah dikonfigurasi)

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/docker-events.log

  • /var/log/docker

  • /var/log/nginx/access.log

Go

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/nginx/access.log

Jawa/

Cabang Platform: Java 8 berjalan di Amazon Linux 64bit

Cabang Platform: Java 7 berjalan di Amazon Linux 64bit

  • /var/log/eb-activity.log

  • /var/log/nginx/access.log

  • /var/log/nginx/error.log

  • /var/log/web-1.error.log

  • /var/log/web-1.log

Tomcat

  • /var/log/eb-activity.log

  • /var/log/httpd/error_log

  • /var/log/httpd/access_log

  • /var/log/nginx/error_log

  • /var/log/nginx/access_log

Node.js

  • /var/log/eb-activity.log

  • /var/log/nodejs/nodejs.log

  • /var/log/nginx/error.log

  • /var/log/nginx/access.log

  • /var/log/httpd/error.log

  • /var/log/httpd/access.log

PHP

  • /var/log/eb-activity.log

  • /var/log/httpd/error_log

  • /var/log/httpd/access_log

Python

  • /var/log/eb-activity.log

  • /var/log/httpd/error_log

  • /var/log/httpd/access_log

  • /opt/python/log/supervisord.log

Ruby/

Cabang Platform: Puma dengan Ruby berjalan di 64bit Amazon Linux

  • /var/log/eb-activity.log

  • /var/log/nginx/error.log

  • /var/log/puma/puma.log

  • /var/log/nginx/access.log

Ruby/

Cabang Platform: Penumpang dengan Ruby berjalan di Amazon Linux 64bit

  • /var/log/eb-activity.log

  • /var/app/support/logs/passenger.log

  • /var/app/support/logs/access.log

  • /var/app/support/logs/error.log

Elastic Beanstalk mengonfigurasi CloudWatch grup log di Log untuk berbagai file log yang dialirkannya. Untuk mengambil file log tertentu dari CloudWatch Log, Anda harus mengetahui nama grup log yang sesuai. Skema penamaan grup log tergantung pada sistem operasi platform.

Untuk platform Linux, prefiks lokasi berkas log pada instans dengan /aws/elasticbeanstalk/environment_name untuk mendapatkan nama grup log. Misalnya, untuk mengambil file /var/log/nginx/error.log, tentukan grup log /aws/elasticbeanstalk/environment_name/var/log/nginx/error.log.

Untuk Windows platform, lihat tabel berikut untuk grup log yang sesuai untuk setiap berkas log.

Berkas log pada instans

Grup log

C:\Program Files\Amazon\ElasticBeanstalk\logs\AWSDeployment.log

/aws/elasticbeanstalk/<environment-name>/EBDeploy-Log

C:\Program Files\Amazon\ElasticBeanstalk\logs\Hooks.log

/aws/elasticbeanstalk/<environment-name>/EBHooks-Log

C:\inetpub\logs\LogFiles (seluruh direktori)

/aws/elasticbeanstalk/<environment-name>/IIS-Log

Streaming log instance ke CloudWatch Log

Anda dapat mengaktifkan streaming log instance ke CloudWatch Log menggunakan konsol Elastic Beanstalk, EB, CLI atau opsi konfigurasi.

Sebelum Anda mengaktifkannya, siapkan IAM izin untuk digunakan dengan agen CloudWatch Log. Anda dapat melampirkan kebijakan kustom berikut untuk profil instans yang Anda tetapkan ke lingkungan Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "*" ] } ] }

Streaming log instans menggunakan konsol Elastic Beanstalk

Untuk mengalirkan log instance ke CloudWatch Log
  1. Buka konsol Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic Beanstalk. Wilayah AWS

  2. Di panel navigasi, pilih Lingkungan, dan kemudian pilih nama lingkungan Anda dari daftar.

    catatan

    Jika Anda memiliki banyak lingkungan, gunakan bilah pencarian untuk memfilter daftar lingkungan.

  3. Di panel navigasi, pilih Konfigurasi.

  4. Dalam kategori konfigurasi Pembaruan, pemantauan, dan pencatatan, pilih Edit.

  5. Di bawah Streaming log Instance ke CloudWatch Log:

    • Mengaktifkan Streaming log.

    • Mengatur Retensi untuk jumlah hari untuk menyimpan log.

    • Pilih pengaturan Siklus Hidup yang menentukan apakah log disimpan setelah lingkungan dihentikan.

  6. Untuk menyimpan perubahan pilih Terapkan di bagian bawah halaman.

Setelah Anda mengaktifkan streaming log, Anda dapat kembali ke kategori atau halaman konfigurasi Perangkat Lunak dan menemukan tautan Grup Log. Klik tautan ini untuk melihat log Anda di CloudWatch konsol.

Streaming log instans menggunakan EB CLI

Untuk mengaktifkan streaming log instance ke CloudWatch Log menggunakan EBCLI, gunakan eb logs perintah.

$ eb logs --cloudwatch-logs enable

Anda juga dapat menggunakan eb logs untuk mengambil log dari CloudWatch Log. Anda dapat mengambil semua log instans lingkungan, atau menggunakan banyak pilihan perintah untuk menentukan himpunan bagian dari log untuk mengambil. Sebagai contoh, perintah berikut mengambil set lengkap dari log instans untuk lingkungan Anda, dan menyimpannya ke direktori di bawah .elasticbeanstalk/logs.

$ eb logs --all

Khususnya, opsi --log-group memungkinkan Anda untuk mengambil log instans dari grup log tertentu, sesuai dengan berkas log instans tertentu. Untuk melakukannya, Anda perlu tahu nama grup log yang sesuai dengan berkas log yang ingin Anda ambil. Anda dapat menemukan informasi ini di Bagaimana Elastic Beanstalk mengatur Log CloudWatch .

Streaming log instans menggunakan file konfigurasi

Saat membuat atau memperbarui lingkungan, Anda dapat menggunakan file konfigurasi untuk mengatur dan mengonfigurasi streaming log instance ke CloudWatch Log. File konfigurasi contoh berikut memungkinkan streaming log instans default. Elastic Beanstalk mengalirkan set default berkas log untuk platform lingkungan Anda. Untuk menggunakan contoh, salin teks ke dalam file dengan ekstensi .config di direktori .ebextensions di tingkat atas paket sumber aplikasi Anda.

option_settings: - namespace: aws:elasticbeanstalk:cloudwatch:logs option_name: StreamLogs value: true

Streaming berkas log kustom

CloudWatch Integrasi Elastic Beanstalk dengan Log tidak secara langsung mendukung streaming file log kustom yang dihasilkan aplikasi Anda. Untuk melakukan streaming log kustom, gunakan file konfigurasi untuk langsung menginstal CloudWatch agen dan untuk mengkonfigurasi file yang akan didorong. Untuk file konfigurasi contoh, lihat logs-streamtocloudwatch-linux.config.

catatan

Contoh tidak bekerja pada platform Windows.

Untuk informasi selengkapnya tentang mengonfigurasi CloudWatch Log, lihat referensi file konfigurasi CloudWatch agen di Panduan CloudWatch Pengguna Amazon.

Pemecahan Masalah integrasi Log CloudWatch

Jika Anda tidak dapat menemukan beberapa log instans lingkungan yang Anda harapkan di CloudWatch Log, Anda dapat menyelidiki masalah umum berikut:

  • IAMPeran Anda tidak memiliki IAM izin yang diperlukan.

  • Anda meluncurkan lingkungan Anda di sebuah Wilayah AWS yang tidak mendukung CloudWatch Log.

  • Salah satu berkas log kustom Anda tidak ada di jalur yang Anda tentukan.