Dokumen ini menjelaskan cara mengonfigurasi deployment Google Kubernetes Engine Anda sehingga Anda dapat menggunakan Google Cloud Managed Service for Prometheus untuk mengumpulkan metrik dari Istio. Dokumen ini menunjukkan cara melakukan hal berikut:
- Siapkan Istio untuk melaporkan metrik.
- Konfigurasi resource PodMonitoring untuk Managed Service for Prometheus guna mengumpulkan metrik yang diekspor.
- Akses dasbor di Cloud Monitoring untuk melihat metrik.
- Konfigurasi aturan pemberitahuan untuk memantau metrik.
Petunjuk ini hanya berlaku jika Anda menggunakan koleksi terkelola dengan Managed Service for Prometheus. Jika Anda menggunakan pengumpulan yang di-deploy sendiri, lihat repositori sumber untuk Istio guna mengetahui informasi penginstalan.
Petunjuk ini diberikan sebagai contoh dan diharapkan berfungsi di sebagian besar lingkungan Kubernetes. Jika Anda mengalami masalah saat menginstal aplikasi atau eksportir karena kebijakan keamanan atau organisasi yang ketat, sebaiknya lihat dokumentasi open source untuk mendapatkan dukungan.
Untuk mengetahui informasi tentang Istio, lihat Istio.
Prasyarat
Untuk mengumpulkan metrik dari Istio dengan menggunakan Managed Service for Prometheus dan pengumpulan terkelola, deployment Anda harus memenuhi persyaratan berikut:
- Cluster Anda harus menjalankan Google Kubernetes Engine versi 1.21.4-gke.300 atau yang lebih baru.
- Anda harus menjalankan Managed Service for Prometheus dengan koleksi terkelola yang diaktifkan. Untuk mengetahui informasi selengkapnya, lihat Mulai menggunakan koleksi terkelola.
Istio mengekspos metrik format Prometheus secara otomatis; Anda tidak perlu menginstalnya secara terpisah. Anda dapat menjalankan pemeriksaan berikut untuk memverifikasi bahwa Istio Proxy telah disuntikkan sebagai sidecar dan bahwa Istiod, bidang kontrol Istio, dan Istio Proxy memancarkan metrik di endpoint yang diharapkan.
Untuk menentukan apakah Istio Proxy disuntikkan sebagai sidecar, jalankan perintah berikut, yang mencantumkan container yang berjalan di pod aplikasi:
kubectl get pod -l app=APPLICATION_NAME -n NAMESPACE_NAME -o jsonpath='{.items[0].spec.containers[*].name}'
Jika Anda melihat bahwa pod berisi container sidecar
istio
, berarti exporter telah disuntikkan. Jika sidecar tidak disuntikkan, ikuti petunjuk di Istio: Menginstal sidecar.Untuk memverifikasi bahwa metrik dipancarkan oleh Istio Proxy, jalankan perintah berikut, yang memeriksa endpoint
/stats/prometheus
dariistio
pada pod yang ditentukan:kubectl exec POD_NAME -n NAMESPACE_NAME -c istio-proxy -- curl -sS 'localhost:15090/stats/prometheus'
Jika Anda melihat metrik Prometheus
istio_*
danenvoy_*
mentah, berarti metrik dipancarkan dengan benar.Untuk memverifikasi bahwa metrik dipancarkan dengan cara yang sama di Istiod, jalankan perintah berikut, yang memeriksa endpoint
/metrics
Istiod di salah satu pod dalam deploymentistiod
:kubectl exec -n istio-system deployment/istiod -- curl -sS 'localhost:15014/metrics'
Tentukan resource PodMonitoring
Untuk penemuan target, Managed Service for Prometheus Operator memerlukan resource PodMonitoring yang sesuai dengan Istio di namespace yang sama.
Anda dapat menggunakan konfigurasi PodMonitoring berikut:
Istio memerlukan dua resource PodMonitoring terpisah: Satu untuk memantau Istiod dan satu lagi untuk memantau sidecar Istio Proxy serta gateway ingress dan egress. Untuk memantau metrik Istio Proxy di semua namespace dalam cluster sekaligus, terapkanistio-proxy
PodMonitoring ke setiap namespace atau siapkan resource ClusterPodMonitoring, bukan resource PodMonitoring per namespace.
Jika Anda berencana menggunakan dasbor Grafana yang disediakan Istio, selain resource PodMonitoring yang dijelaskan dalam dokumen ini, pastikan Anda juga mengonfigurasi pengambilan data cAdvisor dan Kubelet.
Untuk menerapkan perubahan konfigurasi dari file lokal, jalankan perintah berikut:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Anda juga dapat menggunakan Terraform untuk mengelola konfigurasi.
Menentukan aturan dan pemberitahuan
Anda dapat menggunakan konfigurasi Rules
berikut untuk menentukan
pemberitahuan pada metrik Istio Anda:
Untuk menerapkan perubahan konfigurasi dari file lokal, jalankan perintah berikut:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Anda juga dapat menggunakan Terraform untuk mengelola konfigurasi.
Untuk mengetahui informasi selengkapnya tentang penerapan aturan ke cluster Anda, lihat Evaluasi dan pemberitahuan aturan terkelola.
KonfigurasiRules
ini diadaptasi dari
aturan Istio yang disediakan oleh
Awesome Prometheus Alerts.
Anda dapat menyesuaikan batas pemberitahuan agar sesuai dengan aplikasi Anda.
Memverifikasi konfigurasi
Anda dapat menggunakan Penjelajah Metrik untuk memverifikasi bahwa Anda telah mengonfigurasi Istio dengan benar. Mungkin perlu waktu satu atau dua menit agar Cloud Monitoring dapat menyerap metrik Anda.
Untuk memverifikasi bahwa metrik telah di-ingest, lakukan hal berikut:
-
Di konsol Google Cloud , buka halaman leaderboard Metrics explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Di toolbar panel pembuat kueri, pilih tombol yang namanya code MQL atau code PromQL.
- Pastikan PromQL dipilih di tombol Language. Tombol bahasa ada di toolbar yang sama yang memungkinkan Anda memformat kueri.
- Masukkan dan jalankan kueri berikut:
sum(istio_build{cluster="CLUSTER_NAME"}) by (component)
Melihat dasbor
Integrasi Cloud Monitoring mencakup dasbor Istio Envoy Prometheus Overview. Dasbor akan otomatis diinstal saat Anda mengonfigurasi integrasi. Anda juga dapat melihat pratinjau statis dasbor tanpa menginstal integrasi.
Untuk melihat dasbor yang terinstal, lakukan tindakan berikut:
-
Di konsol Google Cloud , buka halaman
Dasbor:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Pilih tab Daftar Dasbor.
- Pilih kategori Integrasi.
- Klik nama dasbor, misalnya, Istio Envoy Prometheus Overview.
Untuk melihat pratinjau statis dasbor, lakukan tindakan berikut:
-
Di konsol Google Cloud , buka halaman
Integrations:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Klik filter platform deployment Kubernetes Engine.
- Temukan integrasi Istio, lalu klik Lihat Detail.
- Pilih tab Dasbor.
Pemecahan masalah
Untuk mengetahui informasi tentang cara memecahkan masalah penyerapan metrik, lihat Masalah pengumpulan dari eksportir di Memecahkan masalah sisi penyerapan.