

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

# Pencatatan dan pemantauan di Amazon ECS
<a name="amazon-ecs-logging-monitoring"></a>

Amazon Elastic Container Service (Amazon ECS) [menyediakan dua tipe peluncuran](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/launch_types.html) untuk menjalankan kontainer dan yang menentukan jenis infrastruktur yang menampung tugas dan layanan; jenis peluncuran ini adalah dan AWS Fargate Amazon EC2. Kedua jenis peluncuran terintegrasi dengan CloudWatch tetapi konfigurasi dan dukungan bervariasi. 

Bagian berikut membantu Anda memahami cara menggunakan CloudWatch untuk logging dan pemantauan di Amazon ECS.

**Topics**
+ [Mengkonfigurasi CloudWatch dengan tipe peluncuran EC2](configure-cloudwatch-ec2-launch-type.md)
+ [Log kontainer Amazon ECS untuk jenis peluncuran EC2 dan Fargate](ec2-fargate-logs.md)
+ [Menggunakan perutean log khusus FireLens untuk Amazon ECS](firelens-custom-log-routing.md)
+ [Metrik untuk Amazon ECS](ecs-metrics.md)

# Mengkonfigurasi CloudWatch dengan tipe peluncuran EC2
<a name="configure-cloudwatch-ec2-launch-type"></a>

Dengan tipe peluncuran EC2, Anda menyediakan kluster Amazon ECS dari instans EC2 yang menggunakan CloudWatch agen untuk pencatatan dan pemantauan. AMI Amazon ECS yang dioptimalkan telah diinstal sebelumnya dengan [agen kontainer Amazon ECS](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/ECS_agent.html) dan menyediakan CloudWatch metrik untuk cluster Amazon ECS. 

Metrik default ini termasuk dalam biaya Amazon ECS, tetapi konfigurasi default untuk Amazon ECS tidak memantau file log atau metrik tambahan (misalnya, ruang disk kosong). Anda dapat menggunakan Konsol Manajemen AWS untuk menyediakan kluster Amazon ECS dengan tipe peluncuran EC2, ini membuat CloudFormation tumpukan yang menyebarkan Amazon EC2 Auto Scaling grup dengan konfigurasi peluncuran. Namun, pendekatan ini berarti Anda tidak dapat memilih AMI khusus atau menyesuaikan konfigurasi peluncuran dengan pengaturan yang berbeda atau skrip boot up tambahan.

Untuk memantau log dan metrik tambahan, Anda harus menginstal CloudWatch agen di instans penampung Amazon ECS Anda. Anda dapat menggunakan pendekatan instalasi untuk instans EC2 dari [Instalasi CloudWatch agen menggunakan Systems Manager Distributor dan State Manager](install-cloudwatch-systems-manager.md) bagian panduan ini. Namun, Amazon ECS AMI tidak menyertakan agen Systems Manager yang diperlukan. Anda harus menggunakan konfigurasi peluncuran kustom dengan skrip data pengguna yang menginstal agen Systems Manager saat membuat klaster Amazon ECS. Hal ini memungkinkan instance container Anda untuk mendaftar dengan Systems Manager dan menerapkan asosiasi State Manager untuk menginstal, mengonfigurasi, dan memperbarui CloudWatch agen. Saat State Manager menjalankan dan memperbarui konfigurasi CloudWatch agen Anda, itu juga menerapkan konfigurasi tingkat sistem standar untuk CloudWatch Amazon EC2. Anda juga dapat menyimpan CloudWatch konfigurasi standar untuk Amazon ECS di bucket S3 untuk CloudWatch konfigurasi Anda dan menerapkannya secara otomatis dengan State Manager. 

Anda harus memastikan bahwa peran IAM atau profil instans yang diterapkan ke instans penampung Amazon ECS Anda menyertakan persyaratan dan kebijakan. `CloudWatchAgentServerPolicy` `AmazonSSMManagedInstanceCore` Anda dapat menggunakan template [ecs\$1cluster\$1with\$1cloudwatch\$1linux.yaml untuk menyediakan kluster Amazon ECS berbasis Linux](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/blob/main/examples/ecs/ecs_cluster_with_cloudwatch_linux.yaml) CloudFormation . Template ini membuat cluster Amazon ECS dengan konfigurasi peluncuran khusus yang menginstal Systems Manager dan menerapkan CloudWatch konfigurasi khusus untuk memantau file log khusus untuk Amazon ECS.

Anda harus menangkap log berikut untuk instans penampung Amazon ECS Anda, serta log instans EC2 standar Anda:
+ **Output startup agen Amazon ECS** - `/var/log/ecs/ecs-init.log`
+ **Output agen Amazon ECS** - `/var/log/ecs/ecs-agent.log`
+ **Penyedia kredensi IAM meminta log** - `/var/log/ecs/audit.log`

Untuk informasi selengkapnya tentang tingkat keluaran, pemformatan, dan opsi konfigurasi tambahan, lihat [lokasi file log Amazon ECS](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/logs.html) di dokumentasi Amazon ECS.

**penting**  
 Instalasi atau konfigurasi agen tidak diperlukan untuk jenis peluncuran Fargate karena Anda tidak menjalankan atau mengelola instans kontainer EC2.

Instans kontainer Amazon ECS harus menggunakan agen penampung AMIs dan dioptimalkan Amazon ECS terbaru. AWS menyimpan parameter Penyimpanan Parameter Systems Manager publik dengan informasi AMI Amazon ECS yang dioptimalkan, termasuk ID AMI. Anda dapat mengambil AMI terbaru yang dioptimalkan dari Parameter Store dengan menggunakan [format parameter Parameter Store](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/retrieve-ecs-optimized_AMI.html) untuk Amazon ECS yang dioptimalkan. AMIs Anda dapat merujuk ke parameter Parameter Store publik yang mereferensikan AMI terbaru atau rilis AMI tertentu di CloudFormation template Anda.

AWS menyediakan parameter Parameter Store yang sama di setiap Wilayah yang didukung. Ini berarti bahwa CloudFormation template yang mereferensikan parameter ini dapat digunakan kembali di seluruh Wilayah dan akun tanpa AMI diperbarui. Anda dapat mengontrol penyebaran Amazon ECS yang lebih baru ke organisasi Anda dengan merujuk AMIs ke rilis tertentu, yang membantu Anda mencegah penggunaan AMI Amazon ECS baru yang dioptimalkan hingga Anda mengujinya. 

# Log kontainer Amazon ECS untuk jenis peluncuran EC2 dan Fargate
<a name="ec2-fargate-logs"></a>

Amazon ECS menggunakan definisi tugas untuk menyebarkan dan mengelola kontainer sebagai tugas dan layanan. Anda mengonfigurasi kontainer yang ingin Anda luncurkan ke cluster Amazon ECS Anda dalam definisi tugas. Logging dikonfigurasi dengan driver log di tingkat kontainer. Beberapa opsi driver log menyediakan kontainer Anda dengan sistem logging yang berbeda (misalnya`awslogs`,`fluentd`,`gelf`,`json-file`,`journald`,`logentries`,`splunk`,`syslog`, atau`awsfirelens`) tergantung pada apakah Anda menggunakan jenis peluncuran EC2 atau Fargate. Jenis peluncuran Fargate menyediakan subset dari opsi driver log berikut:`awslogs`,, `splunk` dan. `awsfirelens` AWS menyediakan driver `awslogs` log untuk menangkap dan mengirimkan output kontainer ke CloudWatch Log. Pengaturan driver log memungkinkan Anda untuk menyesuaikan grup log, Wilayah, dan awalan aliran log bersama dengan banyak opsi lainnya.

Penamaan default untuk grup log dan opsi yang digunakan oleh opsi **Konfigurasi Otomatis CloudWatch Log** Konsol Manajemen AWS adalah`/ecs/<task_name>`. Nama log stream yang digunakan oleh Amazon ECS memiliki `<awslogs-stream-prefix>/<container_name>/<task_id>` format. Kami menyarankan Anda menggunakan nama grup yang mengelompokkan log Anda berdasarkan persyaratan organisasi Anda. Dalam tabel berikut, `image_name` dan `image_tag` disertakan dalam nama log stream.


|  |  | 
| --- |--- |
| Nama grup log | /<Business unit>/<Project or application name>/<Environment>/<Cluster name>/<Task name> | 
| Awalan nama aliran log |  `/<image_name>/<image_tag>`  | 

Informasi ini juga tersedia dalam definisi tugas. Namun, tugas diperbarui secara berkala dengan revisi baru, yang berarti bahwa definisi tugas mungkin menggunakan yang berbeda `image_name` dan `image_tag` dari yang digunakan definisi tugas saat ini. Untuk informasi selengkapnya dan saran penamaan, lihat [Merencanakan CloudWatch penyebaran Anda](planning-cloudwatch-deployment.md) bagian panduan ini.

Jika Anda menggunakan integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) pipeline or automated process, you can create a new task definition revision for your application with each new Docker image build. For example, you can include the Docker image name, image tag, GitHub revision, or other important information in your task definition revision and logging configuration as a part of your CI/CDproses.

# Menggunakan perutean log khusus FireLens untuk Amazon ECS
<a name="firelens-custom-log-routing"></a>

FireLens untuk Amazon ECS membantu Anda merutekan log ke [Fluentd](https://www.fluentd.org/) atau [Fluent Bit](https://docs.fluentbit.io/manual) sehingga Anda dapat langsung mengirim log kontainer ke AWS layanan dan tujuan Jaringan AWS Mitra (APN) serta mendukung pengiriman log ke Log. CloudWatch 

AWS menyediakan [image Docker untuk Fluent Bit](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/firelens-using-fluentbit.html) dengan plugin pra-instal untuk Amazon Kinesis Data Streams, Amazon Data Firehose, dan Log. CloudWatch Anda dapat menggunakan driver FireLens log alih-alih driver `awslogs` log untuk penyesuaian dan kontrol lebih lanjut atas log yang dikirim ke CloudWatch Log. 

Misalnya, Anda dapat menggunakan driver FireLens log untuk mengontrol output format log. Ini berarti bahwa CloudWatch log penampung Amazon ECS secara otomatis diformat sebagai objek JSON dan menyertakan properti berformat JSON untuk`ecs_cluster`,,,,, dan. `ecs_task_arn` `ecs_task_definition` `container_id` `container_name` `ec2_instance_id` Host fasih diekspos ke container Anda melalui variabel `FLUENT_HOST` and `FLUENT_PORT` environment saat Anda menentukan `awsfirelens` driver. Ini berarti Anda dapat langsung masuk ke router log dari kode Anda dengan menggunakan pustaka logger yang lancar. Misalnya, aplikasi Anda mungkin menyertakan `fluent-logger-python` library untuk log ke Fluent Bit dengan menggunakan nilai yang tersedia dari variabel lingkungan.

Jika Anda memilih FireLens untuk menggunakan Amazon ECS, Anda dapat mengonfigurasi pengaturan yang sama dengan driver `awslogs` log [dan menggunakan pengaturan lain juga](https://github.com/aws/amazon-cloudwatch-logs-for-fluent-bit). Misalnya, Anda dapat menggunakan definisi [ecs-task-nginx-firelensetugas.json Amazon](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/blob/main/examples/ecs/ecs-task-nginx-firelense.json) ECS yang meluncurkan server NGINX yang dikonfigurasi untuk digunakan untuk masuk. FireLens CloudWatch Ini juga meluncurkan wadah FireLens Fluent Bit sebagai sespan untuk logging. 

# Metrik untuk Amazon ECS
<a name="ecs-metrics"></a>

[Amazon ECS menyediakan CloudWatch metrik standar](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/cloudwatch-metrics.html) (misalnya, pemanfaatan CPU dan memori) untuk jenis peluncuran EC2 dan Fargate di tingkat cluster dan layanan dengan agen kontainer Amazon ECS. Anda juga dapat menangkap metrik untuk layanan, tugas, dan kontainer menggunakan Wawasan CloudWatch Kontainer, atau menangkap metrik penampung kustom Anda sendiri dengan menggunakan format metrik yang disematkan.

Container Insights adalah CloudWatch fitur yang menyediakan metrik seperti pemanfaatan CPU, pemanfaatan memori, lalu lintas jaringan, dan penyimpanan di cluster, instance container, layanan, dan tingkat tugas. Container Insights juga membuat dasbor otomatis yang membantu Anda menganalisis layanan dan tugas, dan melihat rata-rata memori atau pemanfaatan CPU di tingkat kontainer. Container Insights menerbitkan metrik kustom ke [namespace `ECS/ContainerInsights` kustom](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/cloudwatch-metrics.html) yang dapat Anda gunakan untuk membuat grafik, mengkhawatirkan, dan dasbor.

Anda dapat mengaktifkan metrik Container Insight dengan mengaktifkan Container Insights untuk setiap cluster Amazon ECS individual. Jika Anda juga ingin melihat metrik di tingkat instans penampung, Anda dapat [meluncurkan CloudWatch agen sebagai wadah daemon di cluster Amazon ECS Anda](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/deploy-container-insights-ECS-instancelevel.html). Anda dapat menggunakan CloudFormation template [cwagent-ecs-instance-metric-cfn.yaml](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/blob/main/examples/ecs/cwagent-ecs-instance-metric-cfn.yaml) untuk menyebarkan agen CloudWatch sebagai layanan Amazon ECS. Yang penting, contoh ini mengasumsikan bahwa Anda membuat konfigurasi CloudWatch agen kustom yang sesuai dan menyimpannya di Parameter Store dengan kunci`ecs-cwagent-daemon-service`. 

[CloudWatchAgen](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html) yang digunakan sebagai wadah daemon untuk CloudWatch Container Insights mencakup disk tambahan, memori, dan metrik CPU seperti `instance_cpu_reserved_capacity` dan `instance_memory_reserved_capacity` dengan, dimensi. `ClusterName` `ContainerInstanceId` `InstanceId` Metrik pada tingkat instance container diimplementasikan oleh Container Insights dengan menggunakan format metrik yang CloudWatch disematkan. Anda dapat mengonfigurasi metrik tingkat sistem tambahan untuk instans penampung Amazon ECS Anda dengan menggunakan pendekatan dari bagian panduan ini[Menyiapkan State Manager dan Distributor untuk penyebaran dan konfigurasi CloudWatch agen](install-cloudwatch-systems-manager.md#set-up-systems-manager-distributor). 

## Membuat metrik aplikasi khusus di Amazon ECS
<a name="ecs-metrics-applications"></a>

Anda dapat membuat metrik khusus untuk aplikasi Anda dengan menggunakan [format metrik yang CloudWatch disematkan](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html). Driver `awslogs` log dapat menafsirkan pernyataan format metrik yang CloudWatch disematkan.

Variabel `CW_CONFIG_CONTENT` lingkungan dalam contoh berikut diatur ke isi parameter `cwagentconfig` Systems Manager Parameter Store. Anda dapat menjalankan agen dengan konfigurasi dasar ini untuk mengonfigurasinya sebagai titik akhir format metrik tertanam. Namun, itu tidak lagi diperlukan.

```
  {
  "logs": {
    "metrics_collected": {
      "emf": { }
    }
  }
}
```

Jika Anda memiliki penerapan Amazon ECS di beberapa akun dan Wilayah, Anda dapat menggunakan AWS Secrets Manager rahasia untuk menyimpan CloudWatch konfigurasi dan mengonfigurasi kebijakan rahasia untuk membagikannya dengan organisasi Anda. Anda dapat menggunakan opsi rahasia dalam definisi tugas Anda untuk mengatur `CW_CONFIG_CONTENT` variabel. 

Anda dapat menggunakan [pustaka format metrik tertanam sumber terbuka](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format_Libraries.html) yang AWS disediakan di aplikasi Anda dan menentukan variabel `AWS_EMF_AGENT_ENDPOINT` lingkungan untuk terhubung ke wadah sespan CloudWatch agen Anda yang bertindak sebagai titik akhir format metrik tertanam. Misalnya, Anda dapat menggunakan contoh aplikasi Python [ecs\$1cw\$1emf\$1example](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/tree/main/examples/ecs/ecs_cw_emf_example) untuk mengirim metrik dalam format metrik tertanam ke wadah sespan agen yang dikonfigurasi sebagai titik akhir format metrik tertanam. CloudWatch 

[Plugin Fluent Bit](https://github.com/aws/amazon-cloudwatch-logs-for-fluent-bit) untuk juga CloudWatch dapat digunakan untuk mengirim pesan format metrik yang disematkan. Anda juga dapat menggunakan contoh aplikasi Python [ecs\$1firelense\$1emf\$1example](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/tree/main/examples/ecs/ecs_firelense_emf_example) untuk mengirim metrik dalam format metrik tertanam ke wadah sidecar Firelens untuk Amazon ECS.

Jika Anda tidak ingin menggunakan format metrik tertanam, Anda dapat membuat dan memperbarui CloudWatch metrik melalui [AWS API](https://docs.aws.amazon.com//AmazonCloudWatch/latest/APIReference/Welcome.html) atau [AWS SDK](https://aws.amazon.com/developer/tools/). Kami tidak merekomendasikan pendekatan ini kecuali Anda memiliki kasus penggunaan tertentu, karena ini menambahkan overhead pemeliharaan dan manajemen ke kode Anda.