Mengirim data Prometheus ke Azure Monitor dengan menggunakan autentikasi identitas terkelola
Artikel ini menjelaskan cara menyiapkan penulisan jarak jauh untuk mengirim data dari server Prometheus yang dikelola sendiri yang berjalan di kluster Azure Kubernetes Service (AKS) atau kluster Kubernetes dengan dukungan Azure Arc dengan menggunakan autentikasi identitas terkelola dan kontainer mobil samping yang disediakan oleh Azure Monitor. Anda dapat menggunakan identitas yang sudah ada yang dibuat oleh AKS atau membuat identitas Anda sendiri. Kedua opsi dijelaskan di sini.
Catatan
Jika Anda menggunakan identitas terkelola yang ditetapkan pengguna, kami sarankan Anda langsung mengonfigurasi Prometheus yang berjalan di kluster Kubernetes untuk menulis jarak jauh ke Ruang Kerja Azure Monitor. Lihat Mengirim data Prometheus ke Azure Monitor menggunakan identitas terkelola yang ditetapkan pengguna untuk mempelajari selengkapnya. Langkah-langkah di bawah ini menggunakan kontainer mobil samping Azure Monitor.
Konfigurasi klaster
Artikel ini berlaku untuk konfigurasi kluster berikut:
- Kluster Azure Kubernetes Service
- Kluster Kubernetes yang didukung Azure Arc
Catatan
Untuk informasi tentang menyiapkan penulisan jarak jauh untuk kluster Kubernetes yang berjalan di cloud atau lokal yang berbeda, lihat Mengirim data Prometheus ke Azure Monitor dengan menggunakan autentikasi Microsoft Entra.
Prasyarat
Versi yang didukung
Versi Prometheus yang lebih besar dari v2.45 diperlukan untuk autentikasi identitas terkelola.
Ruang kerja Azure Monitor
Artikel ini membahas pengiriman metrik Prometheus ke ruang kerja Azure Monitor. Untuk membuat ruang kerja azure monitor, lihat Mengelola ruang kerja Azure Monitor.
Izin
Izin administrator untuk kluster atau sumber daya diperlukan untuk menyelesaikan langkah-langkah dalam artikel ini.
Menyiapkan aplikasi untuk identitas terkelola
Proses untuk menyiapkan penulisan jarak jauh Prometheus untuk aplikasi dengan menggunakan autentikasi identitas terkelola melibatkan penyelesaian tugas berikut:
- Dapatkan nama grup sumber daya simpul AKS.
- Dapatkan ID klien dari identitas terkelola yang ditetapkan pengguna.
- Tetapkan peran Penerbit Metrik Pemantauan pada aturan pengumpulan data ruang kerja ke identitas terkelola.
- Berikan akses kluster AKS ke identitas terkelola.
- Sebarkan kontainer sidecar untuk menyiapkan penulisan jarak jauh.
Tugas dijelaskan di bagian berikut.
Mendapatkan nama grup sumber daya simpul AKS
Grup sumber daya simpul kluster AKS berisi sumber daya yang Anda gunakan di langkah lain dalam proses ini. Grup sumber daya ini memiliki nama MC_<AKS-RESOURCE-GROUP>_<AKS-CLUSTER-NAME>_<REGION>
. Anda dapat menemukan nama grup sumber daya dengan menggunakan menu Grup sumber daya di portal Azure.
Mendapatkan ID klien dari identitas terkelola yang ditetapkan pengguna
Anda harus mendapatkan ID klien identitas yang akan Anda gunakan. Salin ID klien untuk digunakan nanti dalam proses.
Alih-alih membuat ID klien Anda sendiri, Anda dapat menggunakan salah satu identitas yang dibuat oleh AKS. Untuk mempelajari selengkapnya tentang identitas, lihat Menggunakan identitas terkelola di Azure Kubernetes Service.
Artikel ini menggunakan identitas kubelet. Nama identitas ini adalah <AKS-CLUSTER-NAME>-agentpool
, dan berada di grup sumber daya simpul kluster AKS.
Pilih identitas terkelola <AKS-CLUSTER-NAME>-agentpool
. Pada halaman Gambaran Umum , salin nilai untuk ID Klien. Untuk informasi selengkapnya, lihat Mengelola identitas terkelola yang ditetapkan pengguna.
Tetapkan peran Penerbit Metrik Pemantauan pada aturan pengumpulan data ruang kerja ke identitas terkelola
Identitas terkelola harus diberi peran Penerbit Metrik Pemantauan pada aturan pengumpulan data yang terkait dengan ruang kerja Azure Monitor Anda.
Pada menu sumber daya untuk ruang kerja Azure Monitor Anda, pilih Gambaran Umum. Untuk Aturan pengumpulan data, pilih tautan .
Pada menu sumber daya untuk aturan pengumpulan data, pilih Kontrol akses (IAM).
Pilih Tambahkan, lalu pilih Tambahkan penetapan peran.
Pilih peran Penerbit Metrik Pemantauan, lalu pilih Berikutnya.
Pilih Identitas Terkelola, lalu pilih Pilih anggota. Pilih langganan yang berisi identitas yang ditetapkan pengguna, lalu pilih Identitas terkelola yang ditetapkan pengguna. Pilih identitas yang ditetapkan pengguna yang ingin Anda gunakan, lalu pilih Pilih.
Untuk menyelesaikan penetapan peran, pilih Tinjau + tetapkan.
Memberikan akses kluster AKS ke identitas terkelola
Langkah ini tidak diperlukan jika Anda menggunakan identitas AKS. Identitas AKS sudah memiliki akses ke kluster.
Penting
Untuk menyelesaikan langkah-langkah di bagian ini, Anda harus memiliki izin administrator akses pemilik atau pengguna untuk kluster.
Identifikasi set skala komputer virtual di grup sumber daya simpul untuk kluster AKS Anda.
Untuk setiap set skala komputer virtual, jalankan perintah berikut di Azure CLI:
az vmss identity assign -g <AKS-NODE-RESOURCE-GROUP> -n <AKS-VMSS-NAME> --identities <USER-ASSIGNED-IDENTITY-RESOURCE-ID>
Menyebarkan kontainer sidecar untuk menyiapkan penulisan jarak jauh
Salin YAML berikut dan simpan ke file. YAML menggunakan port 8081 sebagai port mendengarkan. Jika Anda menggunakan port yang berbeda, ubah port di YAML.
prometheus: prometheusSpec: externalLabels: cluster: <AKS-CLUSTER-NAME> ## https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write remoteWrite: - url: 'http://localhost:8081/api/v1/write' ## Azure Managed Prometheus currently exports some default mixins in Grafana. ## These mixins are compatible with Azure Monitor agent on your Azure Kubernetes Service cluster. ## However, these mixins aren't compatible with Prometheus metrics scraped by the Kube Prometheus stack. ## In order to make these mixins compatible, uncomment remote write relabel configuration below: ## writeRelabelConfigs: ## - sourceLabels: [metrics_path] ## regex: /metrics/cadvisor ## targetLabel: job ## replacement: cadvisor ## action: replace ## - sourceLabels: [job] ## regex: 'node-exporter' ## targetLabel: job ## replacement: node ## action: replace containers: - name: prom-remotewrite image: <CONTAINER-IMAGE-VERSION> imagePullPolicy: Always ports: - name: rw-port containerPort: 8081 livenessProbe: httpGet: path: /health port: rw-port initialDelaySeconds: 10 timeoutSeconds: 10 readinessProbe: httpGet: path: /ready port: rw-port initialDelaySeconds: 10 timeoutSeconds: 10 env: - name: INGESTION_URL value: <INGESTION_URL> - name: LISTENING_PORT value: '8081' - name: IDENTITY_TYPE value: userAssigned - name: AZURE_CLIENT_ID value: <MANAGED-IDENTITY-CLIENT-ID> # Optional parameter - name: CLUSTER value: <CLUSTER-NAME>
Ganti nilai berikut di YAML:
Nilai Deskripsi <AKS-CLUSTER-NAME>
Nama kluster AKS Anda. <CONTAINER-IMAGE-VERSION>
mcr.microsoft.com/azuremonitor/containerinsights/ciprod/prometheus-remote-write/images:prom-remotewrite-20240617.1
Versi gambar kontainer tulis jarak jauh.<INGESTION-URL>
Nilai untuk titik akhir penyerapan Metrik dari halaman Gambaran Umum untuk ruang kerja Azure Monitor. <MANAGED-IDENTITY-CLIENT-ID>
Nilai untuk ID Klien dari halaman Gambaran Umum untuk identitas terkelola. <CLUSTER-NAME>
Nama kluster tempat Prometheus berjalan. Penting
Untuk cloud Azure Government, tambahkan variabel lingkungan berikut di bagian
env
file YAML:- name: INGESTION_AAD_AUDIENCE value: https://monitor.azure.us/
Buka Azure Cloud Shell dan unggah file YAML.
Gunakan Helm untuk menerapkan file YAML dan memperbarui konfigurasi Prometheus Anda:
# set context to your cluster az aks get-credentials -g <aks-rg-name> -n <aks-cluster-name> # use Helm to update your remote write config helm upgrade -f <YAML-FILENAME>.yml prometheus prometheus-community/kube-prometheus-stack --namespace <namespace where Prometheus pod resides>
Verifikasi dan pemecahan masalah
Untuk informasi verifikasi dan pemecahan masalah, lihat Pemecahan masalah penulisan jarak jauh dan layanan terkelola Azure Monitor untuk penulisan jarak jauh Prometheus.
Langkah berikutnya
- Mengumpulkan metrik Prometheus dari kluster AKS
- Pelajari selengkapnya tentang layanan terkelola Azure Monitor untuk Prometheus
- Penulisan jarak jauh di layanan terkelola Azure Monitor untuk Prometheus
- Mengirim data Prometheus ke Azure Monitor dengan menggunakan autentikasi Microsoft Entra
- Mengirim data Prometheus ke Azure Monitor dengan menggunakan autentikasi ID Beban Kerja Microsoft Entra (pratinjau)
- Mengirim data Prometheus ke Azure Monitor dengan menggunakan autentikasi identitas yang dikelola pod Microsoft Entra (pratinjau)