

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

# Contoh definisi tugas Amazon ECS: Rute log ke FireLens
<a name="firelens-taskdef"></a>

Untuk menggunakan perutean log kustom denganFireLens, Anda harus menentukan hal berikut dalam definisi tugas Anda:
+ Wadah router log yang berisi FireLens konfigurasi. Kami merekomendasikan bahwa kontainer ditandai sebagai `essential`.
+ Satu kontainer aplikasi atau lebih yang berisi konfigurasi log menentukan driver log `awsfirelens`.
+ Peran IAM tugas Nama Sumber Daya Amazon (ARN) yang berisi izin yang diperlukan untuk tugas untuk merutekan log.

Saat membuat definisi tugas baru menggunakan Konsol Manajemen AWS, ada bagian FireLens integrasi yang memudahkan untuk menambahkan wadah log router. Untuk informasi selengkapnya, lihat [Membuat definisi tugas Amazon ECS menggunakan konsol](create-task-definition.md).

Amazon ECS mengonversi konfigurasi log dan menghasilkan konfigurasi keluaran Fluentd atau Fluent Bit. Konfigurasi output dipasang dalam kontainer perutean log di `/fluent-bit/etc/fluent-bit.conf` untuk Fluent Bit dan `/fluentd/etc/fluent.conf` untuk Fluentd.

**penting**  
FireLensmendengarkan di pelabuhan`24224`. Oleh karena itu, untuk memastikan bahwa router FireLens log tidak dapat dijangkau di luar tugas, Anda tidak boleh mengizinkan lalu lintas masuk pada port `24224` dalam grup keamanan yang digunakan tugas Anda. Untuk tugas yang menggunakan mode `awsvpc` jaringan, ini adalah grup keamanan yang terkait dengan tugas. Untuk tugas yang menggunakan mode `host` jaringan, ini adalah grup keamanan yang terkait dengan instans Amazon EC2 yang menghosting tugas tersebut. Untuk tugas yang menggunakan mode `bridge` jaringan, jangan membuat pemetaan port apa pun yang menggunakan port. `24224`

Secara default, Amazon ECS menambahkan bidang tambahan dalam entri log Anda yang membantu mengidentifikasi sumber log. 
+ `ecs_cluster`— Nama cluster tempat tugas menjadi bagiannya.
+ `ecs_task_arn`— Nama Sumber Daya Amazon (ARN) lengkap dari tugas yang menjadi bagiannya wadah.
+ `ecs_task_definition`— Nama definisi tugas dan revisi yang digunakan tugas.
+ `ec2_instance_id`— ID instans Amazon EC2 tempat kontainer dihosting. Bidang ini hanya valid untuk tugas yang menggunakan jenis peluncuran EC2.

Anda dapat mengatur `enable-ecs-log-metadata` ke `false` jika Anda tidak menginginkan metadata.

Contoh definisi tugas berikut mendefinisikan wadah router log yang menggunakan Fluent Bit untuk merutekan lognya ke CloudWatch Log. Ini juga mendefinisikan wadah aplikasi yang menggunakan konfigurasi log untuk merutekan log ke Amazon Data Firehose dan mengatur memori yang digunakan untuk menyangga peristiwa ke 2 MiB.

**catatan**  
Untuk contoh definisi tugas lainnya, lihat FireLens contoh [ Amazon ECS ](https://github.com/aws-samples/amazon-ecs-firelens-examples) di GitHub.

```
{
  "family": "firelens-example-firehose",
  "taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role",
  "containerDefinitions": [
    {
            "name": "log_router",
            "image": "public.ecr.aws/aws-observability/aws-for-fluent-bit:3",
            "cpu": 0,
            "memoryReservation": 51,
            "portMappings": [],
            "essential": true,
            "environment": [],
            "mountPoints": [],
            "volumesFrom": [],
            "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-group": "/ecs/ecs-aws-firelens-sidecar-container",
                    "mode": "non-blocking",
                    "awslogs-create-group": "true",
                    "max-buffer-size": "25m",
                    "awslogs-region": "us-east-1",
                    "awslogs-stream-prefix": "firelens"
                },
                "secretOptions": []
            },
            "systemControls": [],
            "firelensConfiguration": {
                "type": "fluentbit"
            }
        },
    {
      "essential": true,
      "image": "public.ecr.aws/docker/library/httpd:latest",
      "name": "app",
      "logConfiguration": {
        "logDriver": "awsfirelens",
        "options": {
          "Name": "firehose",
          "region": "us-west-2",
          "delivery_stream": "my-stream",
          "log-driver-buffer-limit": "1048576"
        }
      },
      "memoryReservation": 100
    }
  ]
}
```

Pasangan kunci-nilai yang ditentukan sebagai opsi dalam `logConfiguration` objek digunakan untuk menghasilkan konfigurasi Fluent Bit output Fluentd atau. Berikut ini adalah contoh kode dari definisi Fluent Bit keluaran.

```
[OUTPUT]
    Name   firehose
    Match  app-firelens*
    region {{us-west-2}}
    delivery_stream {{my-stream}}
```

**catatan**  
FireLens mengelola `match` konfigurasi. Anda tidak menentukan `match` konfigurasi dalam definisi tugas Anda. 

## Gunakan file konfigurasi khusus
<a name="firelens-taskdef-customconfig"></a>

Anda dapat menentukan file konfigurasi khusus. Format file konfigurasi adalah format asli untuk router log yang Anda gunakan. Untuk informasi selengkapnya, lihat Sintaks File Konfigurasi [ Fluentd ](https://docs.fluentd.org/configuration/config-file) dan Konfigurasi [ YAML. ](https://docs.fluentbit.io/manual/administration/configuring-fluent-bit/yaml)

Dalam file konfigurasi kustom Anda, untuk tugas yang menggunakan mode `awsvpc` jaringan `bridge` atau, jangan atur input maju Fluentd atau Fluent Bit melalui TCP karena menambahkannya FireLens ke konfigurasi input.

FireLensKonfigurasi Anda harus berisi opsi berikut untuk menentukan file konfigurasi khusus:

`config-file-type`  
Lokasi sumber file konfigurasi kustom. Opsi yang tersedia adalah `s3` atau `file`.  
Tugas yang dihosting AWS Fargate hanya mendukung jenis file `file` konfigurasi. Namun, Anda dapat menggunakan file konfigurasi yang dihosting di Amazon S3 di AWS Fargate dengan menggunakan wadah AWS for Fluent Bit init. Untuk informasi lebih lanjut, lihat Proses [ Init untuk Fluent Bit di ECS, dukungan ](https://github.com/aws/aws-for-fluent-bit/blob/mainline/use_cases/init-process-for-fluent-bit/README.md) multi-konfigurasi aktif. GitHub

`config-file-value`  
Sumber untuk file konfigurasi kustom. Jika jenis file `s3` konfigurasi digunakan, nilai file konfigurasi adalah ARN penuh dari bucket dan file Amazon S3. Jika jenis file `file` konfigurasi digunakan, nilai file konfigurasi adalah jalur lengkap dari file konfigurasi yang ada baik di image wadah atau pada volume yang dipasang di wadah.  
Saat menggunakan file konfigurasi khusus, Anda harus menentukan jalur yang berbeda dari yang FireLens digunakan. Amazon ECS menyimpan jalur file untuk Fluent Bit `/fluent-bit/etc/fluent-bit.conf` dan `/fluentd/etc/fluent.conf` untuk Fluentd.

Contoh berikut menunjukkan sintaksis yang diperlukan saat menentukan konfigurasi kustom.

**penting**  
Untuk menentukan file konfigurasi khusus yang dihosting di Amazon S3, pastikan Anda telah membuat peran IAM eksekusi tugas dengan izin yang tepat. 

Berikut ini menunjukkan sintaks yang diperlukan saat menentukan konfigurasi kustom.

```
{
  "containerDefinitions": [
    {
      "essential": true,
      "image": "906394416424.dkr.ecr.{{us-west-2}}.amazonaws.com/aws-for-fluent-bit:3",
      "name": "log_router",
      "firelensConfiguration": {
        "type": "fluentbit",
        "options": {
          "config-file-type": "{{s3}} | {{file}}",
          "config-file-value": "{{arn:aws:s3:::{{amzn-s3-demo-bucket}}/fluent.conf}} | {{filepath}}"
        }
      }
    }
  ]
}
```

**catatan**  
Tugas yang AWS Fargate dihosting hanya mendukung jenis file `file` konfigurasi. Namun, Anda dapat menggunakan file konfigurasi yang dihosting di Amazon S3 di AWS Fargate dengan menggunakan wadah AWS for Fluent Bit init. Untuk informasi lebih lanjut, lihat Proses [ Init untuk Fluent Bit di ECS, dukungan ](https://github.com/aws/aws-for-fluent-bit/blob/mainline/use_cases/init-process-for-fluent-bit/README.md) multi-konfigurasi aktif. GitHub