

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

# OpenTelemetry Kolektor
<a name="CloudWatch-OTLPSimplesetup"></a>

 OpenTelemetry Kolektor adalah agen agnostik vendor-agnostik open source yang menerima, memproses, dan mengekspor data telemetri. Ini bertindak sebagai saluran pusat antara aplikasi Anda dan Amazon CloudWatch, mengumpulkan metrik, log, dan jejak dari berbagai sumber dan mengirimkannya ke CloudWatch menggunakan OpenTelemetry Protokol (OTLP).

Menggunakan OpenTelemetry Kolektor dengan CloudWatch memberikan manfaat sebagai berikut:
+ Kumpulkan telemetri dari beberapa aplikasi dan host melalui satu agen, mengurangi jumlah koneksi ke. CloudWatch
+ Memproses dan memfilter telemetri sebelum mengirimnya ke CloudWatch, termasuk menambahkan atau menghapus atribut, mengelompokkan data, dan jejak pengambilan sampel.
+ Gunakan konfigurasi kolektor yang sama di seluruh AWS, lokal, dan lingkungan cloud lainnya, menyediakan pipeline telemetri yang konsisten di mana pun aplikasi Anda berjalan.
+ Kirim metrik ke label kaya CloudWatch yang tersedia untuk kueri menggunakan Prometheus Query Language (PromQL) di Query Studio. CloudWatch 

## Penerima yang didukung
<a name="CloudWatch-OTLPSupportedReceivers"></a>

 OpenTelemetry Kolektor mendukung berbagai penerima untuk menelan data telemetri. Anda dapat menggunakan OpenTelemetry penerima seperti penerima OTLP untuk aplikasi yang diinstrumentasi dengan, OpenTelemetry SDKs atau penerima Prometheus untuk mengikis metrik dari eksportir Prometheus yang ada. Penerima Prometheus umum yang digunakan meliputi: CloudWatch 
+ Penerima Prometheus, untuk mengikis titik akhir yang kompatibel dengan Prometheus
+ Penerima Metrik Host, untuk mengumpulkan metrik tingkat sistem dari host
+ Penerima Kubernetes Cluster, untuk mengumpulkan metrik tingkat cluster dari server API Kubernetes

Anda dapat mengonfigurasi beberapa penerima dalam satu kolektor, memungkinkan Anda mengumpulkan metrik keduanya OpenTelemetry dan Prometheus dan mengirimkannya melalui pipa yang sama. CloudWatch Untuk daftar lengkap penerima yang tersedia, lihat [repositori OpenTelemetry ](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver) Kolektor.

## Memulai
<a name="CloudWatch-OTLPSimplesetupGettingStarted"></a>

Prasyarat — Jika menggunakan titik akhir OTLP untuk melacak, pastikan bahwa Pencarian Transaksi diaktifkan.

Langkah:

1. Unduh rilis terbaru dari distribusi OpenTelemetry Kolektor. Untuk informasi selengkapnya, lihat [rilis OpenTelemetry ](https://github.com/open-telemetry/opentelemetry-collector-releases/releases) Kolektor.

1. Instal OpenTelemetry Kolektor di host Anda. Kolektor berjalan pada sistem operasi dan platform apa pun. Untuk informasi selengkapnya, lihat [Menginstal Kolektor](https://opentelemetry.io/docs/collector/installation/).

1. Konfigurasikan AWS kredensional di Amazon EC2 atau host lokal. Kolektor menggunakan kredensil ini untuk mengautentikasi CloudWatch saat mengirim data telemetri. Lihat di bawah untuk detailnya.

------
#### [ Setup IAM permissions for Amazon EC2 ]

**Ikuti prosedur di bawah ini untuk melampirkan kebijakan `CloudWatchAgentServerPolicy` IAM ke peran IAM instans Amazon EC2 Anda.**

   1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Pilih **Peran** dan temukan dan pilih peran yang digunakan oleh instans Amazon EC2 Anda.

   1. Di bawah tab **Izin**, pilih **Tambahkan izin**, **Lampirkan** kebijakan.

   1. Menggunakan kotak pencarian, cari `CloudWatchAgentServerPolicy` kebijakan.

   1. Pilih **CloudWatchAgentServerPolicy**kebijakan dan pilih **Tambahkan izin**.

------
#### [ Setup IAM permissions for on-premise hosts ]

**Anda dapat membuat pengguna IAM yang dapat digunakan untuk memberikan izin ke host lokal Anda.**

   1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Pilih **Pengguna**, **Buat Pengguna**.

   1. Di bawah **Rincian pengguna****, untuk nama Pengguna**, masukkan nama untuk pengguna IAM baru. Ini adalah nama masuk untuk AWS yang akan digunakan untuk mengautentikasi host Anda.

   1. Pilih **Berikutnya**.

   1. Pada halaman **Setel izin**, di bawah **opsi Izin**, pilih **Lampirkan kebijakan** secara langsung.

   1. Dari daftar **Kebijakan izin**, pilih **CloudWatchAgentServerPolicy**kebijakan yang akan ditambahkan ke pengguna Anda.

   1. Pilih **Berikutnya**.

   1. Pada halaman **Tinjau dan buat**, pastikan bahwa Anda puas dengan nama pengguna dan **CloudWatchAgentServerPolicy**kebijakan tersebut berada di bawah **ringkasan Izin**.

   1. Pilih **Create user** (Buat pengguna).

   1. **Buat dan ambil kunci AWS akses dan kunci rahasia Anda** — Di panel navigasi di konsol IAM, pilih **Pengguna** lalu pilih nama pengguna pengguna yang Anda buat di langkah sebelumnya.

   1. Pada halaman pengguna, pilih tab **Security credentials.**

   1. Di bawah bagian **tombol Akses**, pilih **Buat kunci akses**.

   1. Untuk **Buat tombol akses Langkah 1**, pilih **Antarmuka Baris Perintah (CLI)**.

   1. Untuk **Buat kunci akses Langkah 2**, secara opsional masukkan tag dan kemudian pilih **Berikutnya**.

   1. Untuk **Buat kunci akses Langkah 3,** pilih **Unduh file.csv untuk menyimpan file.csv** dengan kunci akses pengguna IAM dan kunci akses rahasia Anda. Anda memerlukan informasi ini untuk langkah selanjutnya.

   1. Pilih **Selesai**.

   1. Konfigurasikan AWS kredensional Anda di host lokal Anda dengan memasukkan perintah berikut. Ganti *ACCESS\$1KEY\$1ID* dan *SECRET\$1ACCESS\$1ID* dengan kunci akses yang baru dibuat dan kunci akses rahasia dari file.csv yang Anda unduh pada langkah sebelumnya.

      ```
      $ aws configure
      AWS Access Key ID [None]: ACCESS_KEY_ID
      AWS Secret Access Key [None]: SECRET_ACCESS_ID
      Default region name [None]: MY_REGION
      Default output format [None]: json
      ```

------

1. Siapkan AWS kredensil untuk kluster Amazon EKS atau Kubernetes Anda. Cara termudah untuk memulai dengan Amazon EKS adalah dengan menggunakan add-on EKS OTel Container Insights. Jika Anda lebih suka menggunakan OpenTelemetry Collector secara langsung, ikuti prosedur di bawah ini untuk menyiapkan AWS kredensil untuk kluster Amazon EKS atau Kubernetes Anda untuk mengirim telemetri. CloudWatch

------
#### [ Setup IAM permissions for Amazon EKS ]

   1. Buat penyedia identitas IAM OIDC untuk klaster Anda menggunakan perintah berikut. 

      ```
      eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} --region ${REGION} --approve
      ```

   1. Tetapkan peran IAM ke akun layanan Kubernetes untuk OTel Collector menggunakan perintah berikut.

      ```
      eksctl create iamserviceaccount \
      --name ${COLLECTOR_SERVICE_ACCOUNT}\
      --namespace ${NAMESPACE} \
      --cluster ${CLUSTER_NAME} \
      --region ${REGION} \
      --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
      --approve \
      --override-existing-serviceaccounts
      ```

------
#### [ Setup IAM permissions for Kubernetes ]

   1. Konfigurasikan AWS kredensional Anda di host lokal Anda dengan memasukkan perintah berikut. Ganti *ACCESS\$1KEY\$1ID* dan *SECRET\$1ACCESS\$1ID* dengan kunci akses yang baru dibuat dan kunci akses rahasia dari file.csv yang Anda unduh di langkah sebelumnya. Secara default, file kredensi disimpan di bawah*/home/user/.aws/credentials*. .

      ```
      aws configure
      AWS Access Key ID [None]: ACCESS_KEY_ID 
      AWS Secret Access Key [None]: SECRET_ACCESS_ID 
      Default region name [None]: MY_REGION 
      Default output format [None]: json
      ```

   1. Edit sumber daya OpenTelemetry Kolektor untuk menambahkan rahasia kredensi AWS yang baru dibuat dengan menggunakan perintah: `kubectl edit OpenTelemetryCollector otel_collector` 

   1. Menggunakan editor file, tambahkan AWS kredensil ke dalam OpenTelemetryCollector wadah dengan menambahkan konfigurasi berikut ke bagian atas penerapan. Ganti jalur */home/user/.aws/credentials* dengan lokasi file AWS kredensial lokal Anda. 

      ```
                           spec:
                          volumeMounts:
                          - mountPath: /rootfs
                          volumeMounts:
                          - name: aws-credentials
                          mountPath: /root/.aws
                          readOnly: true
                          volumes:
                          - hostPath:
                          path: /home/user/.aws/credentials
                          name: aws-credentials
      ```

------

1. Konfigurasikan eksportir OTLP dalam konfigurasi kolektor Anda untuk mengirim telemetri ke titik akhir. CloudWatch Lihat contoh di bawah ini.

## Contoh konfigurasi kolektor
<a name="CloudWatch-OTLPSimplesetupConfigureCollector"></a>

Salin dan tempel konten di bawah ini untuk mengonfigurasi kolektor Anda untuk mengirim log dan jejak ke titik akhir OTLP.

```
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

exporters:
  otlphttp/logs:
    compression: gzip
    logs_endpoint: logs_otlp_endpoint
    headers: 
      x-aws-log-group: ency_log_group
      x-aws-log-stream: default
    auth:
      authenticator: sigv4auth/logs
      
  otlphttp/traces:
    compression: gzip
    traces_endpoint: traces_otlp_endpoint
    auth:
      authenticator: sigv4auth/traces

extensions:
  sigv4auth/logs:
    region: "region"
    service: "logs"
  sigv4auth/traces:
    region: "region"
    service: "xray"

service:
  telemetry:
  extensions: [sigv4auth/logs, sigv4auth/traces]
  pipelines:
    logs:
      receivers: [otlp]
      exporters: [otlphttp/logs]
    traces:
      receivers: [otlp]
      exporters: [otlphttp/traces]
```

Berikut ini adalah contoh untuk mengirim log dan jejak menggunakan sigv4 ke us-east-1.

```
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

exporters:
  otlphttp/logs:
    compression: gzip
    logs_endpoint: https://logs.us-east-1.amazonaws.com/v1/logs
    headers: 
      x-aws-log-group: MyApplicationLogs
      x-aws-log-stream: default
    auth:
      authenticator: sigv4auth/logs
      
  otlphttp/traces:
    compression: gzip
    traces_endpoint: https://xray.us-east-1.amazonaws.com/v1/traces
    auth:
      authenticator: sigv4auth/traces

extensions:
  sigv4auth/logs:
    region: "us-east-1"
    service: "logs"
  sigv4auth/traces:
    region: "us-east-1"
    service: "xray"

service:
  telemetry:
  extensions: [sigv4auth/logs, sigv4auth/traces]
  pipelines:
    logs:
     receivers: [otlp]
      exporters: [otlphttp/logs]
    traces:
      receivers: [otlp]
      exporters: [otlphttp/traces]
```

**catatan**  
Konfigurasikan konfigurasi sampling Anda OpenTelemetry SDKs ke *always\$1on* untuk merekam rentang 100% dengan andal dan mendapatkan visibilitas penuh ke aplikasi penting Anda dengan Sinyal Aplikasi. CloudWatch Untuk informasi selengkapnya, lihat contoh [konfigurasi sampler SDK OpenTelemetry Java](https://opentelemetry.io/docs/languages/java/sdk/#sampler). Untuk contoh pengaturan OpenTelemetry Kolektor dengan titik akhir X-Ray OTLP, lihat repositori demo [sinyal aplikasi](https://github.com/aws-observability/application-signals-demo/blob/main/scripts/opentelemetry/otel_simple_setup/opentelemetry.yaml).

Salin dan tempel konten di bawah ini untuk mengonfigurasi kolektor Anda untuk mengirim metrik ke titik akhir OTLP.

```
receivers:
  otlp:
    protocols:
      http:
        endpoint: "0.0.0.0:4318"

processors:
  batch:
    send_batch_size: 200
    timeout: 10s

exporters:
  otlphttp:
    tls:
      insecure: false
    endpoint: metrics_otlp_endpoint
    auth:
      authenticator: sigv4auth

extensions:
  sigv4auth:
    service: "monitoring"
    region: "region"

service:
  extensions: [sigv4auth]
  pipelines:
    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlphttp]
```

Berikut ini adalah contoh untuk mengirim metrik menggunakan sigv4 ke us-east-1.

```
receivers:
  otlp:
    protocols:
      http:
        endpoint: "0.0.0.0:4318"

processors:
  batch:
    send_batch_size: 200
    timeout: 10s

exporters:
  otlphttp:
    tls:
      insecure: false
    endpoint: "https://monitoring.us-east-1.amazonaws.com/v1/metrics:443"
    auth:
      authenticator: sigv4auth

extensions:
  sigv4auth:
    service: "monitoring"
    region: "us-east-1"

service:
  extensions: [sigv4auth]
  pipelines:
    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlphttp]
```