Pelaporan dan pemantauan kondisi yang ditingkatkan - AWS Elastic Beanstalk

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

Pelaporan dan pemantauan kondisi yang ditingkatkan

Pelaporan kondisi yang ditingkatkan adalah fitur yang dapat Anda aktifkan di lingkungan Anda untuk mengizinkan AWS Elastic Beanstalk untuk mengumpulkan informasi tambahan tentang sumber daya di lingkungan Anda. Elastic Beanstalk menganalisis informasi yang dikumpulkan untuk memberikan gambaran yang lebih baik tentang kondisi lingkungan secara keseluruhan dan bantuan dalam identifikasi masalah yang dapat menyebabkan aplikasi Anda menjadi tidak tersedia.

Selain perubahan dalam cara kerja warna kondisi, kondisi yang ditingkatkan menambahkan deskriptor status yang menyediakan indikator kepelikan masalah yang diamati ketika lingkungan berwarna kuning atau merah. Ketika informasi lebih lanjut tersedia tentang status saat ini, Anda dapat memilih tombol Penyebab untuk melihat informasi kondisi yang detail pada halaman kondisi.

Halaman gambaran umum lingkungan Elastic Beanstalk dari konsol Elastic Beanstalk yang menunjukkan status kondisi yang ditingkatkan

Untuk memberikan informasi kondisi yang detail tentang instans Amazon EC2 yang berjalan di lingkungan Anda, Elastic Beanstalk memasukkan agen kondisi pada Amazon Machine Image (AMI) untuk setiap versi platform yang mendukung kondisi yang ditingkatkan. Agen kondisi memantau log server web dan metrik sistem dan menyampaikannya ke layanan Elastic Beanstalk. Elastic Beanstalk menganalisis metrik dan data ini dari Elastic Load Balancing dan Amazon EC2 Auto Scaling untuk memberikan gambaran keseluruhan tentang kondisi lingkungan.

Selain mengumpulkan dan menyajikan informasi tentang sumber daya lingkungan Anda, Elastic Beanstalk memantau sumber daya di lingkungan Anda untuk beberapa kondisi kesalahan dan memberikan notifikasi untuk membantu Anda menghindari kegagalan dan menyelesaikan masalah konfigurasi. Faktor-faktor yang mempengaruhi kondisi lingkungan Anda mencakup hasil dari setiap permintaan yang disajikan oleh aplikasi Anda, metrik dari sistem operasi instans Anda, dan status deployment yang terbaru.

Anda dapat melihat status kondisi secara waktu nyata dengan menggunakan halaman gambaran umum lingkungan dari konsol Elastic Beanstalk atau perintah kondisi eb di antarmuka baris Elastic Beanstalk (EB CLI). Untuk mencatat dan melacak kondisi lingkungan dan instans dari waktu ke waktu, Anda dapat mengonfigurasi lingkungan Anda untuk menerbitkan informasi yang dikumpulkan oleh Elastic Beanstalk untuk pelaporan kondisi yang ditingkatkan ke Amazon CloudWatch sebagai metrik khusus. CloudWatch biaya untuk metrik khusus berlaku untuk semua metrik selainEnvironmentHealth, yang gratis.

Pelaporan kondisi yang ditingkatkan memerlukan versi 2 atau versi platform yang lebih baru. Untuk memantau sumber daya dan menerbitkan metrik, lingkungan Anda harus memiliki peran profil instans dan layanan. Platform Multicontainer Docker tidak menyertakan server web secara default, namun dapat digunakan dengan pelaporan kondisi yang ditingkatkan jika Anda mengonfigurasi server web Anda ke menyediakan log dalam format yang tepat.

Catatan platform Windows
  • Fitur ini tidak tersedia di versi platform Server Windows yang lebih awal dari versi 2 (v2).

  • Ketika Anda mengaktifkan pelaporan kondisi yang ditingkatkan pada lingkungan Windows Server, jangan mengubah konfigurasi log IIS. Agar pemantauan kondisi yang ditingkatkan bekerja dengan benar, logging IIS harus dikonfigurasi dengan format W3C dan hanya peristiwa ETW atau kedua tujuan peristiwa berkas log dan peristiwa ETW.

    Selain itu, jangan nonaktifkan atau hentikan layanan Windows agen kondisi Elastic Beanstalk pada salah satu instans lingkungan Anda. Untuk mengumpulkan dan melaporkan informasi kondisi yang ditingkatkan pada instans, layanan ini harus diaktifkan dan berjalan.

Kondisi yang ditingkatkan membutuhkan lingkungan untuk memiliki profil instans. Profil instans harus memiliki peran yang memberikan izin untuk instans lingkungan Anda untuk mengumpulkan dan melaporkan informasi kondisi yang ditingkatkan. Saat pertama kali Anda membuat lingkungan dengan versi platform v2 di konsol Elastic Beanstalk, Elastic Beanstalk meminta Anda untuk membuat peran yang diperlukan dan memungkinkan pelaporan kondisi yang ditingkatkan secara default. Lanjutkan membaca untuk detail tentang cara kerja pelaporan kondisi yang ditingkatkan, atau lihat Mengaktifkan pelaporan kondisi yang ditingkatkan Elastic Beanstalk untuk mulai menggunakannya segera.

Platform Amazon Linux 2 memerlukan profil instans, sehingga dapat mendukung kondisi yang ditingkatkan tanpa syarat. Bila Anda membuat lingkungan menggunakan platform Amazon Linux 2, Elastic Beanstalk selalu memungkinkan kondisi yang ditingkatkan. Hal ini berlaku terlepas dari bagaimana Anda membuat lingkungan—menggunakan konsol Elastic Beanstalk, EB CLI, AWS CLI, atau API.

Agen kondisi Elastic Beanstalk

Agen kondisi Elastic Beanstalk adalah proses daemon (atau layanan, pada lingkungan Windows) yang berjalan pada setiap instans Amazon EC2 di lingkungan Anda, memantau sistem operasi dan metrik kondisi tingkat aplikasi dan melaporkan masalah ke Elastic Beanstalk. Agen kondisi termasuk dalam semua versi platform yang dimulai dengan versi 2.0 dari setiap platform.

Agen kondisi melaporkan metrik serupa dengan yang diterbitkan CloudWatch oleh Amazon EC2 Auto Scaling dan Elastic Load Balancing sebagai bagian dari pelaporan kondisi dasar, termasuk beban CPU, kode HTTP, dan latensi. Agen kondisi, bagaimanapun, melaporkan langsung ke Elastic Beanstalk, dengan granularitas yang lebih besar dan frekuensi dari pelaporan kondisi dasar.

Untuk kondisi dasar, metrik ini diterbitkan setiap lima menit dan dapat dipantau dengan grafik di konsol manajemen lingkungan. Dengan kondisi yang ditingkatkan, agen kondisi Elastic Beanstalk melaporkan metrik ke Elastic Beanstalk setiap 10 detik. Elastic Beanstalk menggunakan metrik yang disediakan oleh agen kondisi untuk menentukan status kondisi setiap instans di lingkungan dan, dikombinasikan dengan faktor, untuk menentukan kondisi lingkungan secara keseluruhan.

Kondisi lingkungan secara keseluruhan dapat dilihat secara waktu nyata di halaman gambaran umum lingkungan konsol Elastic Beanstalk, dan diterbitkan ke CloudWatch oleh Elastic Beanstalk setiap 60 detik. Anda dapat melihat metrik yang terperinci yang dilaporkan oleh agen kondisi secara waktu nyata dengan perintah eb health di EB CLI.

Dengan biaya tambahan, Anda dapat memilih untuk menerbitkan metrik tingkat instans individual dan lingkungan ke CloudWatch setiap 60 detik. Metrik yang diterbitkan ke kemudian CloudWatch dapat digunakan untuk membuat grafik pemantauan di konsol manajemen lingkungan.

Pelaporan kondisi yang ditingkatkan hanya dikenakan biaya jika Anda memilih untuk menerbitkan metrik kondisi yang ditingkatkan ke CloudWatch. Bila Anda menggunakan kondisi yang ditingkatkan, Anda tetap mendapatkan metrik kondisi dasar yang diterbitkan secara gratis, meskipun Anda tidak memilih untuk menerbitkan metrik kondisi yang ditingkatkan.

Lihat Metrik instans untuk detail metrik yang dilaporkan oleh agen kondisi. Untuk detail tentang penerbitan metrik kondisi yang ditingkatkan CloudWatch, lihatMenerbitkan metrik CloudWatch kustom Amazon untuk suatu lingkungan.

Faktor dalam menentukan kondisi instans dan lingkungan

Selain pemeriksaan sistem pelaporan kondisi dasar, termasuk Pemeriksaan kondisi Elastic Load Balancing dan pemantauan sumber daya, pelaporan kondisi yang ditingkatkan Elastic Beanstalk mengumpulkan data tambahan tentang keadaan instans di lingkungan Anda. Ini termasuk metrik sistem operasi, log server, dan keadaan operasi lingkungan yang sedang berlangsung seperti deployment dan pembaruan. Layanan pelaporan kondisi Elastic Beanstalk menggabungkan informasi dari semua sumber yang tersedia dan menganalisanya untuk menentukan kondisi lingkungan secara keseluruhan.

Operasi dan perintah

Ketika Anda melakukan operasi pada lingkungan Anda, seperti men-deploy versi baru dari aplikasi, Elastic Beanstalk membuat beberapa perubahan yang mempengaruhi status kondisi lingkungan.

Misalnya, ketika Anda men-deploy versi baru aplikasi untuk lingkungan yang menjalankan beberapa instans, Anda mungkin melihat pesan yang mirip dengan berikut ini saat Anda memantau kondisi lingkungan dengan EB CLI.

id status cause Overall Info Command is executing on 3 out of 5 instances i-bb65c145 Pending 91 % of CPU is in use. 24 % in I/O wait Performing application deployment (running for 31 seconds) i-ba65c144 Pending Performing initialization (running for 12 seconds) i-f6a2d525 Ok Application deployment completed 23 seconds ago and took 26 seconds i-e8a2d53b Pending 94 % of CPU is in use. 52 % in I/O wait Performing application deployment (running for 33 seconds) i-e81cca40 Ok

Dalam contoh ini, status keseluruhan lingkungan adalah Ok dan penyebab status ini adalah bahwa Perintah mengeksekusi 3 dari 5 instans. Tiga instans di lingkungan memiliki status Tertunda, menunjukkan bahwa operasi sedang berlangsung.

Saat operasi selesai, Elastic Beanstalk melaporkan informasi tambahan tentang operasi tersebut. Sebagai contoh, Elastic Beanstalk menampilkan informasi berikut tentang instans yang telah diperbarui dengan versi baru dari aplikasi:

i-f6a2d525 Ok Application deployment completed 23 seconds ago and took 26 seconds

Informasi kondisi instans juga mencakup detail tentang deployment terbaru untuk setiap instans di lingkungan Anda. Setiap instans melaporkan ID deployment dan status. ID deployment adalah integer yang meningkat satu setiap kali Anda men-deploy versi baru dari aplikasi Anda atau mengubah pengaturan untuk opsi konfigurasi pada instans, seperti variabel lingkungan. Anda dapat menggunakan informasi deployment untuk mengidentifikasi instans yang menjalankan versi yang salah dari aplikasi Anda setelah deployment bergulir yang gagal.

Di kolom penyebab, Elastic Beanstalk mencakup pesan informasi tentang keberhasilan operasi dan kondisi sehat lainnya di beberapa pemeriksaan kondisi, tetapi mereka tidak bertahan tanpa batas waktu. Penyebab status lingkungan yang tidak sehat bertahan sampai lingkungan kembali ke status yang sehat.

Waktu perintah habis

Elastic Beanstalk memberlakukan waktu perintah habis dari waktu operasi dimulai untuk mengizinkan sebuah instans melakukan transisi ke keadaan yang sehat. Waktu perintah habis ini diatur dalam pembaruan lingkungan Anda dan konfigurasi deployment (di namespace aws:elasticbeanstalk:command) dan secara default ke 10 menit.

Selama pembaruan bergulir, Elastic Beanstalk menerapkan batas waktu terpisah untuk setiap batch dalam operasi tersebut. Waktu habis ini ditetapkan sebagai bagian dari konfigurasi pembaruan bergulir lingkungan (di namespace aws:autoscaling:updatepolicy:rollingupdate). Jika semua instans dalam batch sehat dalam waktu pembaruan habis, operasi terus berlanjut ke batch berikutnya. Jika tidak, operasi gagal.

catatan

Jika aplikasi Anda tidak lolos pemeriksaan kondisi dengan status OK tetapi stabil pada tingkat yang berbeda, Anda dapat mengatur pilihan HealthCheckSuccessThreshold pada pilihan aws:elasticbeanstalk:command namespace untuk mengubah tingkat di mana Elastic Beanstalk menganggap sebuah instans sehat.

Agar lingkungan web server dianggap sehat, setiap instans di lingkungan atau batch harus lolos 12 pemeriksaan kondisi berturut-turut selama dua menit. Untuk lingkungan tingkat pekerja, setiap instans harus lolos 18 pemeriksaan kondisi. Sebelum perintah berakhir, Elastic Beanstalk tidak menurunkan status kondisi lingkungan ketika pemeriksaan kondisi gagal. Jika instans di lingkungan menjadi sehat selama waktu perintah habis, operasi berhasil.

Permintaan HTTP

Ketika tidak ada operasi yang berlangsung pada lingkungan, sumber utama informasi tentang instans dan kondisi lingkungan adalah log web server untuk setiap instans. Untuk menentukan kondisi suatu instans dan kondisi lingkungan secara keseluruhan, Elastic Beanstalk mempertimbangkan jumlah permintaan, hasil dari setiap permintaan, dan kecepatan di mana setiap permintaan diselesaikan.

Pada platform berbasis Linux, Elastic Beanstalk membaca dan mengurai log server web untuk mendapatkan informasi tentang permintaan HTTP. Pada platform Windows Server, Elastic Beanstalk menerima informasi ini langsung dari server web IIS.

Lingkungan Anda mungkin tidak memiliki server web yang aktif. Sebagai contoh, platform Multicontainer Docker tidak memasukkan server web. Platform lain memasukkan server web, dan aplikasi Anda mungkin menonaktifkannya. Dalam kasus ini, lingkungan Anda memerlukan konfigurasi tambahan untuk menyediakan agen kondisi Elastic Beanstalk dengan log dalam format yang dibutuhkan untuk menyampaikan informasi kondisi ke layanan Elastic Beanstalk. Lihat Format log kondisi yang ditingkatkan untuk detail selengkapnya.

Metrik sistem operasi

Elastic Beanstalk memantau metrik sistem operasi yang dilaporkan oleh agen kondisi untuk mengidentifikasi instans yang secara konsisten rendah pada sumber daya sistem.

Lihat Metrik instans untuk detail metrik yang dilaporkan oleh agen kondisi.

Penyesuaian aturan pemeriksaan kondisi

Pelaporan kondisi yang ditingkatkan Elastic Beanstalk bergantung pada seperangkat aturan untuk menentukan kondisi lingkungan Anda. Beberapa aturan ini mungkin tidak sesuai untuk aplikasi tertentu Anda. Kasus umum adalah aplikasi yang mengembalikan kesalahan HTTP 4xx oleh desain yang sering terjadi. Elastic Beanstalk, menggunakan salah satu aturan default, menyimpulkan bahwa ada sesuatu yang salah, dan mengubah status kondisi lingkungan Anda dari OK ke Peringatan, Terdegradasi, atau Pelik, tergantung pada tingkat kesalahan. Untuk menangani kasus ini dengan benar, Elastic Beanstalk mengizinkan Anda untuk mengonfigurasi aturan ini dan mengabaikan kesalahan HTTP 4xx aplikasi. Untuk detail selengkapnya, lihat Mengonfigurasi aturan kondisi yang ditingkatkan untuk lingkungan.

Peran kondisi yang ditingkatkan

Pelaporan kondisi yang ditingkatkan memerlukan dua peran—peran layanan untuk Elastic Beanstalk dan profil instans untuk lingkungan. Peran layanan mengizinkan Elastic Beanstalk untuk berinteraksi dengan layanan AWS yang lainnya atas nama Anda untuk mengumpulkan informasi tentang sumber daya di lingkungan Anda. Profil instans mengizinkan instans di lingkungan Anda untuk menuliskan log ke Amazon S3 dan untuk mengomunikasikan informasi kondisi yang ditingkatkan ke layanan Elastic Beanstalk.

Ketika Anda membuat lingkungan Elastic Beanstalk menggunakan konsol Elastic Beanstalk atau EB CLI, Elastic Beanstalk membuat peran layanan default dan melampirkan kebijakan terkelola yang diperlukan untuk profil instans default untuk lingkungan Anda.

Jika Anda menggunakan API, SDK, atau AWS CLI untuk membuat lingkungan, Anda harus membuat peran ini terlebih dahulu, dan menentukan peran tersebut selama pembuatan lingkungan untuk menggunakan kondisi yang ditingkatkan. Untuk petunjuk tentang cara membuat peran yang sesuai untuk lingkungan Anda, lihat Peran layanan, profil instans, dan kebijakan pengguna.

Kami menyarankan agar Anda menggunakan kebijakan terkelola untuk profil instans dan peran layanan Anda. Kebijakan terkelola merupakan kebijakan AWS Identity and Access Management (IAM) dipertahankan oleh Elastic Beanstalk. Menggunakan kebijakan terkelola menjamin bahwa lingkungan Anda memiliki semua izin yang diperlukan untuk berfungsi dengan baik.

Untuk profil instans, Anda dapat menggunakan AWSElasticBeanstalkWebTier atau kebijakan terkelola AWSElasticBeanstalkWorkerTier, untuk lingkungan tingkat server web atau tingkat pekerja, masing-masing. Untuk detail tentang dua kebijakan profil instans terkelola ini, lihat Mengelola profil instans Elastic Beanstalk.

Otorisasi kondisi yang ditingkatkan

Kebijakan terkelola profil instans Elastic Beanstalk berisi izin untukelasticbeanstalk:PutInstanceStatistics tindakan tersebut. Tindakan ini bukan bagian dari API Elastic Beanstalk. Ini adalah bagian dari API yang berbeda yang digunakan instans lingkungan secara internal untuk mengomunikasikan informasi kondisi yang ditingkatkan ke layanan Elastic Beanstalk. Anda tidak menyebut API ini secara langsung.

Bila Anda membuat lingkungan baru, otorisasi untukelasticbeanstalk:PutInstanceStatistics tindakan diaktifkan secara default. Untuk meningkatkan keamanan lingkungan Anda dan membantu mencegah pemalsuan data kondisi atas nama Anda, kami merekomendasikan Anda untuk mengaktifkan otorisasi untuk tindakan ini. Jika Anda menggunakan kebijakan terkelola untuk profil instans, fitur ini tersedia untuk lingkungan baru Anda tanpa konfigurasi lebih lanjut. Namun, Jika Anda menggunakan profil instans kustom alih-alih kebijakan terkelola, lingkungan Anda mungkin menampilkan status kesehatan Tanpa Data. Hal ini terjadi karena instans tidak diizinkan untuk tindakan yang mengomunikasikan data kondisi yang ditingkatkan ke layanan.

Untuk mengotorisasi tindakan, sertakan pernyataan berikut dalam profil instans Anda.

{ "Sid": "ElasticBeanstalkHealthAccess", "Action": [ "elasticbeanstalk:PutInstanceStatistics" ], "Effect": "Allow", "Resource": [ "arn:aws:elasticbeanstalk:*:*:application/*", "arn:aws:elasticbeanstalk:*:*:environment/*" ] }

Jika Anda tidak ingin menggunakan otorisasi kesehatan yang disempurnakan saat ini, nonaktifkan dengan menyetelEnhancedHealthAuthEnabled opsi diaws:elasticbeanstalk:healthreporting:system namespace kefalse. Jika opsi ini dinonaktifkan, izin yang dijelaskan sebelumnya tidak diperlukan. Anda dapat menghapusnya dari profil instans untuk akses hak istimewa ke aplikasi dan lingkungan Anda.

catatan

Sebelumnya pengaturan default untukEnhancedHealthAuthEnabled adalahfalse, yang mengakibatkan otorisasi untukelasticbeanstalk:PutInstanceStatistics tindakan juga dinonaktifkan secara default. Untuk mengaktifkan tindakan ini untuk lingkungan yang ada, aturEnhancedHealthAuthEnabled opsi diaws:elasticbeanstalk:healthreporting:system namespace ketrue. Anda dapat mengonfigurasi pilihan ini dengan menggunakan pengaturan pilihan dalam file konfigurasi.

Peristiwa kondisi yang ditingkatkan

Sistem kondisi yang ditingkatkan menghasilkan peristiwa ketika lingkungan melakukan transisi antara statusnya. Contoh berikut menunjukkan peristiwa output oleh transisi lingkungan antara status Info, OK, dan Pelik.

Halaman gambaran umum lingkungan Elastic Beanstalk dari konsol Elastic Beanstalk yang menunjukkan kondisi yang ditingkatkan baru-baru ini

Ketika terjadi transisi ke keadaan yang lebih buruk, peristiwa kondisi yang ditingkatkan mencakup pesan yang menunjukkan penyebab transisi.

Tidak semua perubahan status pada tingkat instans menyebabkan Elastic Beanstalk memancarkan sebuah peristiwa. Untuk mencegah alarm palsu, Elastic Beanstalk menghasilkan peristiwa yang berhubungan dengan kondisi hanya jika masalah berlanjut di beberapa pemeriksaan.

Informasi kondisi tingkat lingkungan secara waktu nyata, termasuk status, warna, dan sebab, tersedia di gambaran umum lingkungan dari konsol Elastic Beanstalk dan EB CLI. Dengan melampirkan CLI EB untuk lingkungan Anda dan menjalankan perintah eb health, Anda juga dapat melihat status secara waktu nyata dari masing-masing instans di lingkungan Anda.

Perilaku pelaporan kondisi yang ditingkatkan selama pembaruan, deployment, dan penskalaan

Mengaktifkan pelaporan kondisi yang ditingkatkan dapat mempengaruhi perilaku lingkungan Anda selama pembaruan konfigurasi dan deployment. Elastic Beanstalk tidak akan menyelesaikan satu batch pembaruan sampai semua instans lolos pemeriksaan kondisi secara konsisten. Selain itu, karena pelaporan kondisi yang ditingkatkan menerapkan standar yang lebih tinggi untuk kondisi dan memantau lebih banyak faktor, instans yang melewati Pemeriksaan kondisi ELB tidak akan selalu lolos dengan pelaporan kondisi yang ditingkatkan. Lihat topik di pembaruan konfigurasi bergulir dan penerapan bergulir untuk detail tentang bagaimana pemeriksaan kondisi mempengaruhi proses pembaruan.

Pelaporan kondisi yang ditinkatkan juga dapat menyoroti kebutuhan untuk menetapkan URL pemeriksaan kondisi untuk Elastic Load Balancing. Ketika lingkungan Anda menaikkan skala untuk memenuhi permintaan, instans baru akan mulai mengambil permintaan segera setelah mereka lulus cukup pemeriksaan kondisi ELB. Jika URL pemeriksaan kondisi tidak dikonfigurasi, ini dapat sesedikit 20 detik setelah instans baru dapat menerima sambungan TCP.

Jika aplikasi Anda belum selesai memulai pada saat penyeimbang beban menyatakannya cukup sehat untuk menerima lalu lintas, Anda akan melihat banyaknya permintaan yang gagal, dan lingkungan Anda akan mulai gagal pemeriksaan kondisi. URL pemeriksaan kondisi yang menyentuh jalur yang dilayani oleh aplikasi Anda dapat mencegah masalah ini. Pemeriksaan kondisi ELB tidak akan lolos sampai permintaan GET ke URL pemeriksaan kondisi mengembalikan kode status 200.