View a markdown version of this page

Siapkan Amazon Managed Service untuk Prometheus dengan Observability Accelerator AWS - Amazon Managed Service for Prometheus

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

Siapkan Amazon Managed Service untuk Prometheus dengan Observability Accelerator AWS

AWS menyediakan alat observabilitas, termasuk pemantauan, pencatatan, peringatan, dan dasbor, untuk proyek Amazon Elastic Kubernetes Service (Amazon EKS) Anda. Ini termasuk Layanan Terkelola Amazon untuk Prometheus, Grafana Terkelola Amazon, Distro untuk, dan alat AWS lainnya. OpenTelemetry Untuk membantu Anda menggunakan alat ini bersama-sama, AWS sediakan modul Terraform yang mengonfigurasi observabilitas dengan layanan ini, yang disebut Observability Accelerator.AWS

AWS Observability Accelerator menyediakan dua profil kolektor untuk Amazon Managed Service untuk Prometheus:

  • Metrik terkelola (tanpa agen) — Menggunakan Layanan Terkelola Amazon untuk kolektor Prometheus, scraper tanpa agen yang dikelola sepenuhnya yang berjalan di luar klaster Anda. Tidak ada pod kolektor untuk dikelola. Hanya metrik.

  • Dikelola sendiri — Menyebarkan OpenTelemetry Kolektor melalui Helm di cluster Anda. Mendukung metrik, jejak (AWS X-Ray), dan log (Amazon CloudWatch).

Bagian ini membahas kedua opsi, dimulai dengan pendekatan tanpa agen yang direkomendasikan.

Template Terraform dan instruksi terperinci dapat ditemukan di halaman AWS Observability Accelerator for Terraform. GitHub

Prasyarat

Untuk menggunakan AWS Observability Accelerator, Anda harus memiliki kluster Amazon EKS yang sudah ada, dan prasyarat berikut:

  • AWS CLI— digunakan untuk memanggil AWS fungsionalitas dari baris perintah.

  • kubectl — digunakan untuk mengontrol kluster EKS Anda dari baris perintah.

  • Terraform (>= 1.5.0) — digunakan untuk mengotomatiskan pembuatan sumber daya untuk solusi ini. Anda harus menyiapkan AWS penyedia dengan peran IAM yang memiliki akses untuk membuat dan mengelola Layanan Terkelola Amazon untuk Prometheus, Grafana Terkelola Amazon, dan IAM dalam akun Anda. AWS Untuk informasi selengkapnya tentang cara mengonfigurasi AWS penyedia untuk Terraform, lihat AWS penyedia di dokumentasi Terraform.

Menggunakan contoh metrik terkelola (tanpa agen)

Contoh ini menggunakan Amazon Managed Service untuk kolektor Prometheus untuk mengikis metrik Prometheus dari klaster Amazon EKS Anda tanpa menerapkan pod kolektor apa pun. Kolektor membutuhkan setidaknya dua subnet dalam dua Availability Zone yang berbeda. Untuk detail selengkapnya, lihat eks-amp-managedcontoh di GitHub.

Untuk menggunakan modul Terraform pemantauan infrastruktur tanpa agen
  1. Dari folder tempat Anda ingin membuat proyek, kloning repo menggunakan perintah berikut.

    git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git
  2. Inisialisasi Terraform dengan perintah berikut.

    cd examples/eks-amp-managed terraform init
  3. Buat terraform.tfvars file baru, seperti pada contoh berikut. Gunakan detail jaringan AWS Wilayah, ID klaster, dan VPC untuk klaster Amazon EKS Anda. Kolektor membutuhkan setidaknya dua subnet dalam dua Availability Zone yang berbeda.

    # (mandatory) AWS Region where your resources will be located aws_region = "eu-west-1" # (mandatory) EKS Cluster name eks_cluster_id = "my-eks-cluster" # (mandatory) Subnets for the managed scraper (>= 2 AZs) scraper_subnet_ids = ["subnet-aaa", "subnet-bbb"] # (mandatory) Security group allowing scraper access to the EKS API scraper_security_group_ids = ["sg-xxx"]
  4. Buat ruang kerja Grafana Terkelola Amazon, jika Anda belum memilikinya yang ingin Anda gunakan. Untuk informasi tentang cara membuat ruang kerja baru, lihat Membuat ruang kerja pertama Anda di Panduan Pengguna Grafana Terkelola Amazon.

  5. Buat dua variabel untuk Terraform untuk menggunakan ruang kerja Grafana Anda dengan menjalankan perintah berikut di baris perintah. Anda harus mengganti grafana-workspace-id dengan ID dari ruang kerja Grafana Anda.

    export TF_VAR_managed_grafana_workspace_id=grafana-workspace-id export TF_VAR_grafana_api_key=`aws grafana create-workspace-api-key --key-name "observability-accelerator-$(date +%s)" --key-role ADMIN --seconds-to-live 1200 --workspace-id $TF_VAR_managed_grafana_workspace_id --query key --output text`
  6. [Opsional] Untuk menggunakan Layanan Terkelola Amazon yang ada untuk ruang kerja Prometheus, tambahkan ID ke terraform.tfvars file, seperti pada contoh berikut, ganti dengan ID ruang kerja Prometheus Anda. prometheus-workspace-id Jika Anda tidak menentukan ruang kerja yang ada, maka ruang kerja Prometheus baru akan dibuat untuk Anda.

    # (optional) Leave it empty for a new workspace to be created managed_prometheus_workspace_id = "prometheus-workspace-id"
  7. Terapkan solusi dengan perintah berikut.

    terraform apply -var-file=terraform.tfvars

Ini akan membuat sumber daya di AWS akun Anda, termasuk yang berikut:

  • Layanan Terkelola Amazon baru untuk ruang kerja Prometheus (kecuali Anda memilih untuk menggunakan ruang kerja yang ada).

  • Layanan Terkelola Amazon untuk kolektor Prometheus (pengikis tanpa agen) yang dikonfigurasi untuk mengikis metrik Prometheus dari cluster Amazon EKS Anda.

  • Aturan perekaman dan peringatan Prometheus di ruang kerja Layanan Terkelola Amazon untuk Prometheus.

  • kube-state-metrics dan eksportir simpul diterapkan di klaster Amazon EKS Anda untuk metrik infrastruktur.

  • Sumber data Grafana yang Dikelola Amazon baru dan dasbor di ruang kerja Anda saat ini. Dasbor akan terdaftar di bawah Pemantauan EKS.

Alternatif: Kolektor yang dikelola sendiri OpenTelemetry

Jika Anda memerlukan jejak, log, atau kontrol penuh atas pipeline koleksi, gunakan profil yang dikelola sendiri. Ini menerapkan OpenTelemetry Kolektor melalui Helm di kluster Amazon EKS Anda, dikonfigurasi untuk mengikis metrik Prometheus dan menulis jarak jauh ke Layanan Terkelola Amazon untuk Prometheus. Ini juga mendukung jejak (AWS X-Ray) dan log (Amazon CloudWatch). Untuk detail selengkapnya, lihat eks-amp-otelcontoh di GitHub.

Untuk menggunakan modul Terraform yang dikelola sendiri
  1. Kloning repo dan inisialisasi Terraform.

    git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git cd examples/eks-amp-otel terraform init
  2. Buat terraform.tfvars file baru, seperti pada contoh berikut.

    # (mandatory) AWS Region where your resources will be located aws_region = "eu-west-1" # (mandatory) EKS Cluster name eks_cluster_id = "my-eks-cluster"
  3. Siapkan ruang kerja Grafana Terkelola Amazon dan kunci API menggunakan langkah yang sama seperti contoh metrik terkelola (langkah 4—6 di atas).

  4. Terapkan solusi dengan perintah berikut.

    terraform apply -var-file=terraform.tfvars

Ini akan membuat sumber daya berikut di AWS akun Anda (tidak seperti pendekatan tanpa agen, kolektor berjalan di dalam klaster Anda):

  • Layanan Terkelola Amazon untuk ruang kerja Prometheus (jika tidak disediakan).

  • Ruang kerja Grafana yang Dikelola Amazon dengan sumber data dan dasbor.

  • OpenTelemetry Kolektor yang digunakan melalui Helm di kluster Amazon EKS Anda, dikonfigurasi untuk mengikis metrik Prometheus dan menulis jarak jauh ke Layanan Terkelola Amazon untuk Prometheus.

  • Peran IAM untuk akun layanan (IRSA) untuk Kolektor. OpenTelemetry

  • Menelusuri pipa ke AWS X-Ray (diaktifkan secara default).

  • Log pipeline ke Amazon CloudWatch (diaktifkan secara default).

Melihat dasbor

Untuk melihat dasbor baru Anda, buka dasbor tertentu di ruang kerja Grafana Terkelola Amazon Anda. Dasbor infrastruktur disediakan secara otomatis oleh Terraform. Untuk informasi selengkapnya tentang menggunakan Grafana Terkelola Amazon, lihat Bekerja di ruang kerja Grafana Anda, di Panduan Pengguna Grafana Terkelola Amazon.