Mengirim data Prometheus ke Azure Monitor dengan menggunakan autentikasi identitas yang dikelola pod Microsoft Entra (pratinjau)
Artikel ini menjelaskan cara menyiapkan penulisan jarak jauh untuk layanan terkelola Azure Monitor untuk Prometheus dengan menggunakan autentikasi identitas yang dikelola pod Microsoft Entra (pratinjau).
Catatan
Kontainer sidecar tulis jarak jauh yang dijelaskan dalam artikel ini harus disiapkan hanya dengan menggunakan langkah-langkah berikut, dan hanya jika kluster Azure Kubernetes Service (AKS) sudah mengaktifkan pod Microsoft Entra. Identitas yang dikelola pod Microsoft Entra tidak digunakan lagi untuk digantikan oleh ID Beban Kerja Microsoft Entra. Kami menyarankan agar Anda menggunakan autentikasi ID Beban Kerja 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 yang dikelola pod Microsoft Entra
Proses untuk menyiapkan penulisan jarak jauh Prometheus untuk aplikasi dengan menggunakan autentikasi identitas yang dikelola pod Microsoft Entra melibatkan penyelesaian tugas-tugas berikut:
- Daftarkan identitas terkelola yang ditetapkan pengguna dengan ID Microsoft Entra.
- Tetapkan peran Operator Identitas Terkelola dan Kontributor Komputer Virtual ke identitas terkelola.
- Tetapkan peran Penerbit Metrik Pemantauan ke identitas terkelola yang ditetapkan pengguna.
- Membuat pengikatan identitas Azure.
- Tambahkan label aadpodidbinding ke pod Prometheus.
- Sebarkan kontainer sidecar untuk menyiapkan penulisan jarak jauh.
Tugas dijelaskan di bagian berikut.
Mendaftarkan identitas terkelola dengan ID Microsoft Entra
Buat identitas terkelola yang ditetapkan pengguna atau daftarkan identitas terkelola yang ditetapkan pengguna yang sudah ada.
Untuk informasi tentang membuat identitas terkelola, lihat Menyiapkan penulisan jarak jauh untuk layanan terkelola Azure Monitor untuk Prometheus dengan menggunakan autentikasi identitas terkelola.
Tetapkan peran Operator Identitas Terkelola dan Kontributor Komputer Virtual ke identitas terkelola
az role assignment create --role "Managed Identity Operator" --assignee <managed identity clientID> --scope <NodeResourceGroupResourceId>
az role assignment create --role "Virtual Machine Contributor" --assignee <managed identity clientID> --scope <Node ResourceGroup Id>
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.
Menetapkan peran Penerbit Metrik Pemantauan ke identitas terkelola
az role assignment create --role "Monitoring Metrics Publisher" --assignee <managed identity clientID> --scope <NodeResourceGroupResourceId>
Membuat pengikatan identitas Azure
Identitas terkelola yang ditetapkan pengguna memerlukan pengikatan identitas untuk identitas yang akan digunakan sebagai identitas yang dikelola pod.
Salin YAML berikut ke file aadpodidentitybinding.yaml :
apiVersion: "aadpodidentity.k8s.io/v1"
kind: AzureIdentityBinding
metadata:
name: demo1-azure-identity-binding
spec:
AzureIdentity: “<AzureIdentityName>”
Selector: “<AzureIdentityBindingSelector>”
Jalankan perintah berikut:
kubectl create -f aadpodidentitybinding.yaml
Tambahkan label aadpodidbinding ke pod Prometheus
Label aadpodidbinding
harus ditambahkan ke pod Prometheus agar identitas yang dikelola pod berlaku. Anda dapat menambahkan label dengan memperbarui file deployment.yaml atau dengan menyuntikkan label saat Anda menyebarkan kontainer sidecar seperti yang dijelaskan di bagian berikutnya.
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 nilai tersebut di YAML.
prometheus: prometheusSpec: podMetadata: labels: aadpodidbinding: <AzureIdentityBindingSelector> externalLabels: cluster: <AKS-CLUSTER-NAME> remoteWrite: - url: 'http://localhost:8081/api/v1/write' 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>
Gunakan Helm untuk menerapkan file YAML dan memperbarui konfigurasi Prometheus Anda:
# set the 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 identitas terkelola
- Mengirim data Prometheus ke Azure Monitor dengan menggunakan autentikasi ID Beban Kerja Microsoft Entra (pratinjau)