Melihat log dari EC2 instans Amazon di lingkungan Elastic Beanstalk Anda - AWS Elastic Beanstalk

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

Melihat log dari EC2 instans Amazon di lingkungan Elastic Beanstalk Anda

Topik ini menjelaskan jenis log instance yang disediakan Elastic Beanstalk. Ini juga memberikan instruksi terperinci untuk retreiveing dan mengelolanya.

EC2Instans Amazon di lingkungan Elastic Beanstalk Anda menghasilkan log yang dapat Anda lihat untuk memecahkan masalah dengan aplikasi atau file konfigurasi Anda. Log yang dibuat oleh server web, server aplikasi, skrip platform Elastic Beanstalk AWS CloudFormation , dan disimpan secara lokal pada instance individual. Anda dapat dengan mudah mengambilnya dengan menggunakan konsol manajemen lingkungan atau CLI EB. Anda juga dapat mengonfigurasi lingkungan Anda untuk mengalirkan log ke Amazon CloudWatch Logs secara real time.

Log ekor adalah 100 baris terakhir dari berkas log yang paling umum digunakan—log operasional Elastic Beanstalk dan log dari server web atau server aplikasi. Ketika Anda meminta log ekor di konsol manajemen lingkungan atau dengan eb logs, instans di lingkungan Anda menggabungkan entri log terbaru ke dalam satu file teks dan mengunduhnya ke Amazon S3.

Log paket adalah log lengkap untuk berbagai berkas log yang lebih luas, termasuk log dari yum dan cron dan beberapa log dari AWS CloudFormation. Saat Anda meminta log bundel, instance di lingkungan Anda akan mengemas file log lengkap ke dalam ZIP arsip dan mengunggahnya ke Amazon S3.

catatan

Platform Elastic Beanstalk Windows Server tidak mendukung log paket.

Untuk mengunggah log yang dirotasi ke Amazon S3, instans di lingkungan Anda harus memiliki profil instans dengan izin untuk menulis ke bucket Elastic Beanstalk Amazon S3 Anda. Izin ini termasuk dalam profil instans default di mana Elastic Beanstalk meminta Anda untuk membuatnya ketika Anda meluncurkan lingkungan di konsol Elastic Beans untuk pertama kalinya.

Untuk mengambil log instans
  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. Pilih Log di panel navigasi.

  4. Pilih Log Permintaan, lalu pilih jenis log yang akan diambil. Untuk mendapatkan log ekor, pilih 100 Baris terakhir. Untuk mendapatkan log paket, pilih Log Lengkap.

  5. Ketika Elastic Beanstalk selesai mengambil log Anda, pilih Unduh.

Elastic Beanstalk menyimpan log ekor dan bundel dalam bucket Amazon S3, dan menghasilkan Amazon S3 yang telah ditetapkan sebelumnya yang dapat Anda gunakan untuk mengakses URL log Anda. Elastic Beanstalk menghapus file dari Amazon S3 setelah durasi 15 menit.

Awas

Siapa pun yang memiliki Amazon URL S3 yang telah ditetapkan sebelumnya dapat mengakses file sebelum dihapus. Buat yang URL tersedia hanya untuk pihak tepercaya.

catatan

Kebijakan pengguna Anda harus memiliki izin s3:DeleteObject. Elastic Beanstalk menggunakan izin pengguna Anda untuk menghapus log dari Amazon S3.

Untuk mempertahankan log, Anda dapat mengonfigurasi lingkungan Anda untuk menerbitkan log ke Amazon S3 secara otomatis setelah dirotasi. Untuk mengaktifkan rotasi log ke Amazon S3, ikuti prosedur di Mengonfigurasi tampilan log instans. Instans di lingkungan Anda akan mencoba mengunggah log yang telah dirotasi satu kali per jam.

Jika aplikasi Anda menghasilkan log di lokasi yang bukan merupakan bagian dari konfigurasi default untuk platform lingkungan Anda, Anda dapat memperpanjang konfigurasi default dengan menggunakan file konfigurasi (.ebextensions). Anda dapat menambahkan berkas log aplikasi Anda untuk log ekor, log paket, atau log rotasi.

Untuk streaming log real-time dan penyimpanan jangka panjang, konfigurasikan lingkungan Anda untuk mengalirkan log ke Amazon CloudWatch Logs.

Log lokasi di EC2 instans Amazon

Log disimpan di lokasi standar di EC2 instans Amazon di lingkungan Anda. Elastic Beanstalk menghasilkan log berikut.

Amazon Linux 2

  • /var/log/eb-engine.log

Amazon Linux AMI (AL1)

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

  • /var/log/eb-activity.log

  • /var/log/eb-commandprocessor.log

Windows Server

  • C:\Program Files\Amazon\ElasticBeanstalk\logs\

  • C:\cfn\log\cfn-init.log

Log ini berisi pesan tentang aktivitas deployment, termasuk pesan yang terkait dengan file konfigurasi (.ebextensions).

Setiap aplikasi dan server web menyimpan log dalam foldernya sendiri:

  • Apache/var/log/httpd/

  • IISC:\inetpub\wwwroot\

  • Node.js/var/log/nodejs/

  • nginx/var/log/nginx/

  • Penumpang/var/app/support/logs/

  • Puma/var/log/puma/

  • Python/opt/python/log/

  • Tomcat/var/log/tomcat/

Lokasi log di Amazon S3

Ketika Anda meminta log ekor atau paket dari lingkungan Anda, atau ketika instans mengunggah log dirotasi, mereka disimpan dalam bucket Elastic Beanstalk Anda di Amazon S3. Elastic Beanstalk menciptakan elasticbeanstalk-region-account-id ember yang diberi nama AWS untuk setiap Wilayah tempat Anda membuat lingkungan. Dalam bucket ini, log disimpan di bawah jalur resources/environments/logs/logtype/environment-id/instance-id.

Misalnya, log dari instancei-0a1fd158, di AWS lingkungan Elastic e-mpcwnwheky Beanstalk us-west-2 di Region dalam akun, disimpan 123456789012 di lokasi berikut:

  • Log Ekor

    s3://elasticbeanstalk-us-west-2-123456789012/resources/environments/logs/tail/e-mpcwnwheky/i-0a1fd158

  • Log Paket

    s3://elasticbeanstalk-us-west-2-123456789012/resources/environments/logs/bundle/e-mpcwnwheky/i-0a1fd158

  • Log Dirotasi

    s3://elasticbeanstalk-us-west-2-123456789012/resources/environments/logs/publish/e-mpcwnwheky/i-0a1fd158

catatan

Anda dapat menemukan ID lingkungan Anda di konsol manajemen lingkungan.

Elastic Beanstalk menghapus log ekor dan paket dari Amazon S3 secara otomatis 15 menit setelah dibuat. Log yang dirotasi bertahan hingga Anda menghapusnya atau memindahkannya ke S3 Glacier.

Pengaturan rotasi log pada Linux

Pada platform Linux, Elastic Beanstalk menggunakan logrotate untuk merotasi log secara berkala. Jika dikonfigurasi, setelah log dirotasi secara lokal, tugas rotasi log mengambilnya dan mengunggahnya ke Amazon S3. Log yang dirotasi secara lokal tidak muncul di log ekor atau paket secara default.

Anda dapat menemukan file konfigurasi Elastic Beanstalk untuk logrotate di /etc/logrotate.elasticbeanstalk.hourly/. Pengaturan rotasi ini khusus untuk platform, dan mungkin berubah dalam versi platform yang akan datang. Untuk informasi selengkapnya tentang pengaturan yang tersedia dan konfigurasi contoh, jalankan man logrotate.

File-file konfigurasi dipanggil oleh tugas cron di /etc/cron.hourly/. Untuk informasi lebih lanjut tentang cron, lihat man cron.

Memperluas konfigurasi tugas log default

Elastic Beanstalk menggunakan file dalam /opt/elasticbeanstalk/tasks subfolder (LinuxC:\Program Files\Amazon\ElasticBeanstalk\config) atau (Windows Server) pada instans EC2 Amazon untuk mengonfigurasi tugas untuk log ekor, log bundel, dan rotasi log.

Di Amazon Linux:

  • Log Ekor

    /opt/elasticbeanstalk/tasks/taillogs.d/

  • Log Paket

    /opt/elasticbeanstalk/tasks/bundlelogs.d/

  • Log Dirotasi

    /opt/elasticbeanstalk/tasks/publishlogs.d/

Di Windows Server:

  • Log Ekor

    c:\Program Files\Amazon\ElasticBeanstalk\config\taillogs.d\

  • Log Dirotasi

    c:\Program Files\Amazon\ElasticBeanstalk\config\publogs.d\

Misalnya, file eb-activity.conf pada Linux menambahkan dua berkas log untuk tugas log ekor.

/opt/elasticbeanstalk/tasks/taillogs.d/eb-activity.conf

/var/log/eb-commandprocessor.log /var/log/eb-activity.log

Anda dapat menggunakan file konfigurasi lingkungan (.ebextensions) untuk menambahkan file .conf Anda sendiri ke folder ini. File .conf membuat daftar file log khusus untuk aplikasi Anda, di mana Elastic Beanstalk menambah tugas berkas log.

Gunakan bagian files untuk menambahkan file konfigurasi ke tugas yang ingin Anda ubah. Sebagai contoh, teks konfigurasi berikut menambahkan file konfigurasi log untuk setiap instans di lingkungan Anda. File konfigurasi log ini, cloud-init.conf, menambahkan /var/log/cloud-init.log untuk log ekor.

files: "/opt/elasticbeanstalk/tasks/taillogs.d/cloud-init.conf" : mode: "000755" owner: root group: root content: | /var/log/cloud-init.log

Tambahkan teks ini ke file dengan ekstensi nama file .config ke paket sumber Anda di bawah folder bernama .ebextensions.

~/workspace/my-app |-- .ebextensions | `-- tail-logs.config |-- index.php `-- styles.css

Pada platform Linux, Anda juga dapat menggunakan karakter wildcard dalam konfigurasi tugas log. File konfigurasi ini menambahkan semua file dengan ekstensi nama file .log folder log di akar aplikasi ke log paket.

files: "/opt/elasticbeanstalk/tasks/bundlelogs.d/applogs.conf" : mode: "000755" owner: root group: root content: | /var/app/current/log/*.log

Konfigurasi tugas log tidak mendukung karakter wildcard pada platform Windows.

catatan

Untuk membantu membiasakan diri dengan prosedur penyesuaian log, Anda dapat menggunakan aplikasi sampel menggunakan CLIEB. Untuk ini, EB CLI membuat direktori aplikasi lokal yang berisi .ebextentions subdirektori dengan konfigurasi sampel. Anda juga dapat menggunakan berkas log aplikasi sampel untuk menjelajahi fitur pengambilan log yang dijelaskan dalam topik ini. Untuk informasi selengkapnya tentang cara membuat contoh aplikasi dengan EBCLI, lihat dasar-dasar EB CLI.

Untuk informasi selengkapnya tentang penggunaan file konfigurasi, lihat Penyesuaian lingkungan lanjutan dengan file konfigurasi (.ebextensions).

Sama seperti memperluas log ekor dan log paket, Anda dapat memperpanjang rotasi log menggunakan file konfigurasi. Setiap kali Elastic Beanstalk merotasi log-nya sendiri dan mengunggahnya ke Amazon S3, itu juga akan berotasi dan mengunggah log tambahan Anda. Ekstensi rotasi log berperilaku berbeda tergantung pada sistem operasi platform. Bagian berikut menjelaskan dua kasus.

Memperluas rotasi log di Linux

Seperti yang dijelaskan di Pengaturan rotasi log pada Linux, Elastic Beanstalk menggunakan logrotate untuk merotasi log pada platform Linux. Ketika Anda mengonfigurasi berkas log aplikasi Anda untuk rotasi log, aplikasi tidak perlu membuat salinan berkas log. Elastic Beanstalk mengonfigurasi logrotate untuk membuat salinan berkas log aplikasi Anda untuk setiap rotasi. Oleh karena itu, aplikasi harus tetap membuka berkas log ketika aplikasi tidak secara aktif menulis kepada mereka.

Memperluas rotasi log pada server Windows

Pada Server Windows, ketika Anda mengonfigurasi berkas log aplikasi Anda untuk rotasi log, aplikasi harus merotasi berkas log secara berkala. Elastic Beanstalk mencari file dengan nama dimulai dengan pola yang Anda dikonfigurasi, dan mengambilnya untuk mengunduh ke Amazon S3. Selain itu, tanda baca titik dalam nama file diabaikan, dan Elastic Beanstalk menganggap nama hingga tanda baca titik sebagai nama berkas log dasar.

Elastic Beanstalk mengunggah semua versi berkas log dasar kecuali yang terbaru, karena menganggap bahwa salah satu berkas log aplikasi aktif, yang berpotensi dapat terkunci. Aplikasi Anda, oleh karena itu, dapat menjaga berkas log aktif tetap terkunci selama rotasi.

Misalnya, aplikasi Anda menulis ke berkas log bernama my_log.log, dan Anda menentukan nama ini di file .conf Anda. Aplikasi secara berkala merotasi file. Selama siklus rotasi Elastic Beanstalk,file-file berikut ditemukan dalam folder file log: my_log.log, my_log.0800.log, my_log.0830.log. Elastic Beanstalk menganggap semuanya sebagai versi dari nama dasar my_log. File my_log.log memiliki waktu modifikasi terbaru, sehingga Elastic Beanstalk hanya mengunggah dua file lainnya, my_log.0800.log dan my_log.0830.log.

Streaming file log ke Amazon CloudWatch Logs

Anda dapat mengonfigurasi lingkungan Anda untuk mengalirkan log ke Amazon CloudWatch Logs di konsol Elastic Beanstalk atau dengan menggunakan opsi konfigurasi. Dengan CloudWatch Log, setiap instance di lingkungan Anda mengalirkan log ke grup log yang dapat Anda konfigurasikan untuk disimpan selama berminggu-minggu atau bertahun-tahun, bahkan setelah lingkungan Anda dihentikan.

Set pengaliran log bervariasi per lingkungan, tetapi selalu memasukkan eb-engine.log dan akses log dari nginx atau server proksi Apache yang berjalan di depan aplikasi Anda.

Anda dapat mengonfigurasi streaming log di konsol Elastic Beanstalk selama pembuatan lingkungan atau untuk lingkungan yang ada. Anda dapat mengatur opsi berikut dari konsol: aktifkan /nonaktifkan streaming CloudWatch log ke Log, atur jumlah hari retensi, dan pilih dari opsi Lifecyle. Dalam contoh berikut, log disimpan hingga tujuh hari, bahkan ketika lingkungan diakhiri.

Gambar layar pengaturan CloudWatch Log di konsol Elastic Beanstalk.

file konfigurasi berikut mengaktifkan streaming log dengan retensi 180 hari, meskipun lingkungan diakhiri.

contoh .ebextensions/log-streaming.config
option_settings: aws:elasticbeanstalk:cloudwatch:logs: StreamLogs: true DeleteOnTerminate: false RetentionInDays: 180