Tutorial ini menunjukkan cara menyiapkan pemeriksaan keaktifan microservice aplikasi yang di-deploy ke Google Kubernetes Engine (GKE) menggunakan Prometheus open source.
Tutorial ini menggunakan Prometheus open source. Namun, setiap cluster Autopilot GKE secara otomatis men-deploy Layanan Terkelola untuk Prometheus, solusi lintas project multi-cloud yang terkelola sepenuhnya dari Google Cloud untuk metrik Prometheus. Layanan Terkelola untuk Prometheus memungkinkan Anda memantau dan membuat pemberitahuan secara global tentang workload Anda menggunakan Prometheus, tanpa harus mengelola dan mengoperasikan Prometheus secara manual dalam skala besar.
Anda juga dapat menggunakan alat open source seperti Grafana untuk memvisualisasikan metrik yang dikumpulkan oleh Prometheus.
Tujuan
- Membuat cluster.
- Men-deploy Prometheus.
- Men-deploy aplikasi contoh, Bank of Anthos.
- Mengonfigurasi pemeriksaan keaktifan Prometheus.
- Mengonfigurasi pemberitahuan Prometheus.
- Konfigurasikan Alertmanager untuk mendapatkan notifikasi di saluran Slack.
- Menyimulasikan pemadaman layanan untuk menguji Prometheus.
Biaya
Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Di konsol Google Cloud, pada halaman pemilih project, klik Buat project untuk mulai membuat project Google Cloud baru.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API GKE.
-
Di konsol Google Cloud, pada halaman pemilih project, klik Buat project untuk mulai membuat project Google Cloud baru.
-
Make sure that billing is enabled for your Google Cloud project.
-
Aktifkan API GKE.
- Menginstal Helm API
Menyiapkan lingkungan
Dalam tutorial ini, Anda akan menggunakan Cloud Shell untuk mengelola resource yang dihosting di Google Cloud.
Tetapkan variabel lingkungan default:
gcloud config set project PROJECT_ID gcloud config set compute/region COMPUTE_REGION
Ganti kode berikut:
PROJECT_ID
: project ID Google Cloud Anda.PROJECT_ID
: region Compute Engine untuk cluster. Untuk tutorial ini, region-nya adalahus-central1
. Biasanya, Anda ingin region yang dekat dengan Anda.
Clone contoh repositori yang digunakan dalam tutorial ini:
git clone https://github.com/GoogleCloudPlatform/bank-of-anthos.git cd bank-of-anthos/
Membuat cluster:
gcloud container clusters create-auto CLUSTER_NAME \ --release-channel=CHANNEL_NAME \ --region=COMPUTE_REGION
Ganti kode berikut:
CLUSTER_NAME
: nama untuk cluster baru.CHANNEL_NAME
: nama saluran rilis.
Men-deploy Prometheus
Instal Prometheus menggunakan contoh chart Helm:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install tutorial bitnami/kube-prometheus \
--version 8.2.2 \
--values extras/prometheus/oss/values.yaml \
--wait
Perintah ini menginstal Prometheus dengan komponen berikut:
- Operator Prometheus: cara yang populer untuk men-deploy dan mengonfigurasi Prometheus open source.
- Alertmanager: menangani pemberitahuan yang dikirim oleh server Prometheus dan mengarahkannya ke aplikasi, seperti Slack.
- Blackbox exporter: memungkinkan Prometheus memeriksa endpoint menggunakan HTTP, HTTPS, DNS, TCP, ICMP, dan gRPC.
Men-deploy Bank of Anthos
Men-deploy aplikasi contoh Bank of Anthos:
kubectl apply -f extras/jwt/jwt-secret.yaml
kubectl apply -f kubernetes-manifests
Notifikasi Slack
Untuk menyiapkan notifikasi Slack, Anda harus membuat aplikasi Slack, mengaktifkan Webhook Masuk untuk aplikasi, dan menginstal aplikasi ke ruang kerja Slack.
Membuat aplikasi Slack
Bergabung ke ruang kerja Slack, dengan mendaftar menggunakan email Anda atau menggunakan undangan yang dikirim oleh Admin Workspace.
Login ke Slack menggunakan nama ruang kerja dan kredensial akun Slack Anda.
-
- Dalam dialog Create an app(Buat aplikasi), klik From scratch (Mulai dari langkah awal).
- Tentukan App Name dan pilih ruang kerja Slack Anda.
- Klik Create App.
- Di bagian Tambahkan fitur dan fungsi, klik Webhook Masuk.
- Klik tombol Aktifkan Webhook Masuk.
- Di bagian Webhook URLs for Your Workspace, klik Add New Webhook to Workspace .
- Di halaman otorisasi yang terbuka, pilih saluran yang akan menerima notifikasi.
- Klik Izinkan.
- Webhook untuk aplikasi Slack Anda akan ditampilkan di bagian URL Webhook untuk Ruang Kerja Anda. Simpan URL untuk nanti.
Mengonfigurasi Alertmanager
Membuat Secret Kubernetes untuk menyimpan URL webhook:
kubectl create secret generic alertmanager-slack-webhook --from-literal webhookURL=SLACK_WEBHOOK_URL
kubectl apply -f extras/prometheus/oss/alertmanagerconfig.yaml
Ganti SLACK_WEBHOOK_URL
dengan URL webhook dari bagian sebelumnya.
Mengonfigurasi Prometheus
Tinjau manifes berikut:
Manifes ini menjelaskan pemeriksaan keaktifan Prometheus dan mencakup kolom berikut:
spec.jobName
: Nama tugas yang ditetapkan untuk metrik yang di-scrap.spec.prober.url
: URL Layanan dari pengekspor blackbox. Hal ini mencakup port default untuk pengekspor blackbox, yang ditentukan dalam chart Helm.spec.prober.path
: jalur pengumpulan metrik.spec.targets.staticConfig.labels
: label yang ditetapkan ke semua metrik yang di-scrap dari target.spec.targets.staticConfig.static
: daftar host yang akan diperiksa.
Terapkan manifes ke cluster Anda:
kubectl apply -f extras/prometheus/oss/probes.yaml
Tinjau manifes berikut:
Manifes ini menjelaskan
PrometheusRule
dan mencakup kolom berikut:spec.groups.[*].name
: nama grup aturan.spec.groups.[*].interval
: seberapa sering aturan dalam grup dievaluasi.spec.groups.[*].rules[*].alert
: nama pemberitahuan.spec.groups.[*].rules[*].expr
: ekspresi PromQL yang akan dievaluasi.spec.groups.[*].rules[*].for
: jumlah waktu yang harus ditampilkan melalui pemberitahuan sebelum dianggap diaktifkan.spec.groups.[*].rules[*].annotations
: daftar anotasi yang akan ditambahkan ke setiap pemberitahuan. Ini hanya valid untuk aturan pemberitahuan.spec.groups.[*].rules[*].labels
: label yang akan ditambahkan atau ditimpa.
Terapkan manifes ke cluster Anda:
kubectl apply -f extras/prometheus/oss/rules.yaml
Menyimulasikan pemadaman layanan
Simulasikan pemadaman layanan dengan menskalakan Deployment
contacts
ke nol:kubectl scale deployment contacts --replicas 0
Anda akan melihat pesan pemberitahuan di saluran ruang kerja Slack. GKE mungkin memerlukan waktu hingga 5 menit untuk menskalakan Deployment.
Memulihkan Deployment
contacts
:kubectl scale deployment contacts --replicas 1
Anda akan melihat pesan pemberitahuan resolusi pemberitahuan di saluran ruang kerja Slack. GKE mungkin membutuhkan waktu hingga 5 menit untuk menskalakan Deployment.
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus project
Menghapus project Google Cloud:
gcloud projects delete PROJECT_ID
Menghapus setiap resource
Menghapus resource Kubernetes:
kubectl delete -f kubernetes-manifests
Menguninstal Prometheus:
helm uninstall tutorial
Menghapus cluster GKE:
gcloud container clusters delete CLUSTER_NAME --quiet
Langkah berikutnya
- Pelajari Google Cloud Managed Service for Prometheus, solusi metrik global yang terkelola sepenuhnya, berdasarkan Prometheus, yang di-deploy secara default di semua cluster Autopilot.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.