

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

# Menggunakan CloudWatch agen untuk mengirim log format metrik yang disematkan
<a name="CloudWatch_Embedded_Metric_Format_Generation_CloudWatch_Agent"></a>

 Bagian ini menjelaskan cara menginstal dan menggunakan CloudWatch agen. Bagian pertama dari bagian ini menjelaskan cara menginstal CloudWatch agen. Bagian kedua dari bagian ini menjelaskan cara menggunakan CloudWatch agen untuk mengirim log format metrik yang disematkan. Jika Anda ingin menggunakan metode ini, Anda harus menginstal CloudWatch agen untuk Layanan AWS Anda ingin mengirim log format metrik tertanam dari. Kemudian Anda dapat mulai mengirim acara. CloudWatch Agen harus versi 1.230621.0 atau yang lebih baru.

**catatan**  
Anda tidak perlu menginstal CloudWatch agen untuk mengirim log dari fungsi Lambda.  
Batas waktu fungsi Lambda tidak akan ditangani secara otomatis. Hal ini berarti bahwa jika fungsi Anda mengalami habis waktu sebelum metrik terkuras, maka metrik untuk invokasi tersebut tidak akan ditangkap.

## Instalasi CloudWatch agen
<a name="CloudWatch_Embedded_Metric_Format_Generation_Install_Agent"></a>

Instal CloudWatch agen untuk setiap layanan yang mengirim log format metrik tertanam.

### Memasang CloudWatch agen di EC2
<a name="CloudWatch_Embedded_Metric_Format_Generation_Install_Agent_EC2"></a>

Pertama, instal CloudWatch agen pada instance. Untuk informasi selengkapnya, lihat [Memasang CloudWatch agen](install-CloudWatch-Agent-on-EC2-Instance.md).

Setelah Anda selesai melakukan instalasi agen tersebut, konfigurasi agen untuk mendengarkan di port UDP atau TCP untuk log format metrik tersemat. Berikut ini adalah contoh konfigurasi yang mendengarkan pada soket bawaan `tcp:25888`. Untuk informasi selengkapnya tentang konfigurasi agen, silakan lihat [Buat atau edit file konfigurasi CloudWatch agen secara manual](CloudWatch-Agent-Configuration-File-Details.md).

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

### Menginstal CloudWatch agen di Amazon ECS
<a name="CloudWatch_Embedded_Metric_Format_Generation_Install_Agent_ECS"></a>

Cara termudah untuk menyebarkan CloudWatch agen di Amazon ECS adalah menjalankannya sebagai sespan, mendefinisikannya dalam definisi tugas yang sama dengan aplikasi Anda.

**Buat file konfigurasi agen**

Buat file konfigurasi CloudWatch agen Anda secara lokal. Dalam contoh ini, jalur file relatif adalah `amazon-cloudwatch-agent.json`.

Untuk informasi selengkapnya tentang konfigurasi agen, silakan lihat [Buat atau edit file konfigurasi CloudWatch agen secara manual](CloudWatch-Agent-Configuration-File-Details.md).

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

**Mendorong konfigurasi ke SSM Parameter Store**

Masukkan perintah berikut untuk mendorong file konfigurasi CloudWatch agen ke Parameter Store AWS Systems Manager (SSM).

```
aws ssm put-parameter \
    --name "cwagentconfig" \
    --type "String" \
    --value "`cat amazon-cloudwatch-agent.json`" \
    --region "{{region}}"
```

**Mengonfigurasi definisi tugas**

Konfigurasikan definisi tugas Anda untuk menggunakan CloudWatch Agen dan mengekspos port TCP atau UDP. Definisi tugas sampel sederhana yang harus Anda gunakan bergantung pada mode jaringan Anda.

Perhatikan bahwa `webapp` menentukan variabel lingkungan `AWS_EMF_AGENT_ENDPOINT`. Hal ini digunakan oleh pustaka dan harus menunjuk titik akhir yang didengar oleh agen. Selain itu, `cwagent` menentukan `CW_CONFIG_CONTENT` sebagai parameter "valueFrom" yang menunjuk ke konfigurasi SSM yang Anda buat pada langkah sebelumnya.

Bagian ini memuat satu contoh untuk mode jembatan dan satu contoh untuk mode host atau awsvpc. Untuk contoh selengkapnya tentang cara mengonfigurasi CloudWatch agen di Amazon ECS, lihat repositori sampel [Github](https://github.com/aws-samples/amazon-cloudwatch-container-insights/tree/master/ecs-task-definition-templates/deployment-mode/sidecar)

Berikut ini adalah contoh untuk mode jembatan. Ketika mengaktifkan jaringan mode jembatan, agen harus ditautkan ke aplikasi Anda dengan menggunakan parameter `links` dan harus ditangani dengan menggunakan nama kontainer.

```
{
  "containerDefinitions": [
          {
              "name": "webapp",
              "links": [ "cwagent" ],
              "image": "my-org/web-app:latest",
              "memory": 256,
              "cpu": 256,
              "environment": [{
                "name": "AWS_EMF_AGENT_ENDPOINT",
                "value": "tcp://cwagent:25888"
              }],
          },
          {
              "name": "cwagent",
              "mountPoints": [],
              "image": "public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest",
              "memory": 256,
              "cpu": 256,
              "portMappings": [{
                  "protocol": "tcp",
                  "containerPort": 25888
              }],
              "environment": [{
                "name": "CW_CONFIG_CONTENT",
                "valueFrom": "cwagentconfig"
              }],
          }
      ],
}
```

Berikut ini adalah contoh untuk mode host atau mode awsvpc. Ketika menjalankan mode jaringan ini, agen dapat dialamatkan ke `localhost`.

```
{
  "containerDefinitions": [
          {
              "name": "webapp",
              "image": "my-org/web-app:latest",
              "memory": 256,
              "cpu": 256,
              "environment": [{
                "name": "AWS_EMF_AGENT_ENDPOINT",
                "value": "tcp://127.0.0.1:25888"
              }],
          },
          {
              "name": "cwagent",
              "mountPoints": [],
              "image": "public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest",
              "memory": 256,
              "cpu": 256,
              "portMappings": [{
                  "protocol": "tcp",
                  "containerPort": 25888
              }],
              "environment": [{
                "name": "CW_CONFIG_CONTENT",
                "valueFrom": "cwagentconfig"
              }],
          }
      ],
}
```

**catatan**  
Dalam mode awsvpc, Anda harus memberikan alamat IP publik ke VPC (hanya Fargate), mengatur gateway NAT, atau mengatur titik akhir VPC Log. CloudWatch Untuk informasi selengkapnya tentang menyiapkan sebuah NAT, silakan lihat [NAT Gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html). Untuk informasi selengkapnya tentang menyiapkan titik akhir VPC CloudWatch Log, lihat [Menggunakan CloudWatch Log dengan Titik Akhir VPC Antarmuka](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch-logs-and-interface-VPC.html).  
Berikut ini adalah contoh tentang cara menetapkan alamat IP publik untuk sebuah tugas yang menggunakan jenis peluncuran Fargate.  

```
aws ecs run-task \ 
--cluster {{cluster-name}} \
--task-definition cwagent-fargate \
--region {{region}} \
--launch-type FARGATE \
--network-configuration "awsvpcConfiguration={subnets=[{{subnetId}}],securityGroups=[{{sgId}}],assignPublicIp=ENABLED}"
```

**Memastikan izin**

Memastikan peran IAM yang melaksanakan tugas Anda memiliki izin untuk membaca dari SSM Parameter Store. Anda dapat menambahkan izin ini dengan melampirkan SSMRead OnlyAccess kebijakan **Amazon**. Untuk melakukan hal itu, masukkan perintah berikut.

```
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess \
--role-name CWAgentECSExecutionRole
```

### Menginstal CloudWatch agen di Amazon EKS
<a name="CloudWatch_Embedded_Metric_Format_Generation_Install_Agent_EKS"></a>

Bagian dari proses ini dapat dilewati jika Anda sudah menginstal CloudWatch Wawasan Wadah pada kluster ini.

Izin

Jika Anda belum melakukan instalasi Wawasan Kontainer, maka pastikan terlebih dahulu bahwa simpul Amazon EKS Anda memiliki izin IAM yang sesuai. Mereka harus memiliki **CloudWatchAgentServerPolicy** terlampir. Untuk informasi selengkapnya, lihat [Memverifikasi prasyarat untuk Wawasan Kontainer di CloudWatch](Container-Insights-prerequisites.md).

**Buat ConfigMap**

Buat ConfigMap untuk agen. Mereka ConfigMap juga memberitahu agen untuk mendengarkan pada port TCP atau UDP. Gunakan yang berikut ini ConfigMap.

```
# cwagent-emf-configmap.yaml
apiVersion: v1
data:
  # Any changes here must not break the JSON format
  cwagentconfig.json: |
    {
      "agent": {
        "omit_hostname": true
      },
      "logs": {
        "metrics_collected": {
          "emf": { }
        }
      }
    }
kind: ConfigMap
metadata:
  name: cwagentemfconfig
  namespace: default
```

Jika Anda telah menginstal Wawasan Wadah, tambahkan berikut `"emf": { }` baris ke yang sudah ada ConfigMap.

**Terapkan ConfigMap**

Masukkan perintah berikut untuk menerapkan ConfigMap.

```
kubectl apply -f cwagent-emf-configmap.yaml
```

**Terapkan agen**

Untuk menerapkan CloudWatch agen sebagai sespan, tambahkan agen ke definisi pod Anda, seperti pada contoh berikut.

```
apiVersion: v1
kind: Pod
metadata:
  name: myapp
  namespace: default
spec:
  containers:
    # Your container definitions go here
    - name: web-app
      image: my-org/web-app:latest
    # CloudWatch Agent configuration
    - name: cloudwatch-agent
      image: public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest
      imagePullPolicy: Always
      resources:
        limits:
          cpu: 200m
          memory: 100Mi
        requests:
          cpu: 200m
          memory: 100Mi
      volumeMounts:
        - name: cwagentconfig
          mountPath: /etc/cwagentconfig
      ports:
  # this should match the port configured in the ConfigMap
        - protocol: TCP
          hostPort: 25888
          containerPort: 25888
  volumes:
    - name: cwagentconfig
      configMap:
        name: cwagentemfconfig
```

## Menggunakan CloudWatch agen untuk mengirim log format metrik yang disematkan
<a name="CloudWatch_Embedded_Metric_Format_Generation_CloudWatch_Agent_Send_Logs"></a>

Ketika Anda telah menginstal dan menjalankan CloudWatch agen, Anda dapat mengirim log format metrik yang disematkan melalui TCP atau UDP. Ada dua persyaratan ketika mengirimkan log melalui agen:
+ Log harus memuat sebuah kunci `LogGroupName` yang memberi tahu agen tentang grup log yang harus digunakan.
+ Setiap peristiwa log harus berada dalam satu baris. Dengan kata lain, sebuah peristiwa log tidak dapat berisi karakter baris baru (\\n).

Peristiwa log juga harus mematuhi spesifikasi format metrik tersemat. Untuk informasi selengkapnya, lihat [Spesifikasi: Format metrik tersemat](CloudWatch_Embedded_Metric_Format_Specification.md).

Jika Anda berencana untuk membuat alarm-alarm pada metrik yang telah dibuat dengan menggunakan format metrik tersemat, silakan lihat [Menyetel alarm pada metrik-metrik yang dibuat dengan format metrik tersemat](CloudWatch_Embedded_Metric_Format_Alarms.md) untuk rekomendasinya.

Berikut ini adalah contoh pengiriman peristiwa log secara manual dari bash shell Linux. Sebagai gantinya, Anda dapat menggunakan antarmuka soket UDP yang disediakan oleh bahasa pemrograman yang Anda kehendaki. 

```
echo '{"_aws":{"Timestamp":1574109732004,"LogGroupName":"Foo","CloudWatchMetrics":[{"Namespace":"MyApp","Dimensions":[["Operation"]],"Metrics":[{"Name":"ProcessingLatency","Unit":"Milliseconds","StorageResolution":60}]}]},"Operation":"Aggregator","ProcessingLatency":100}' \
> /dev/udp/0.0.0.0/25888
```

**catatan**  
 Dengan format metrik tersemat, Anda dapat melacak pemrosesan log EMF berdasarkan metrik yang diterbitkan di ruang nama `AWS/Logs` akun Anda. Hal ini dapat digunakan untuk melacak pembuatan metrik yang gagal dari EMF, serta apakah kegagalan terjadi diakibatkan oleh penguraian atau validasi. Untuk detail selengkapnya lihat [Pemantauan dengan CloudWatch metrik](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Monitoring-CloudWatch-Metrics.html). 