Terapkan Prometheus dan Grafana sebagai aplikasi

Terapkan Prometheus dan Grafana sebagai aplikasi
[ad_1]
Menginstal ArgoCD melalui Helm
Untuk menginstal ArgoCD melalui Helm di kluster Kubernetes, Anda harus:
Terakhir, verifikasi bahwa ArgoCD berjalan dengan memeriksa status podnya.
# Create a namespace
kubectl create namespace argocd
# Add the ArgoCD Helm Chart
helm repo add argo
# Install the ArgoCD
helm upgrade -i argocd --namespace argocd --set redis.exporter.enabled=true --set redis.metrics.enabled=true --set server.metrics.enabled=true --set controller.metrics.enabled=true argo/argo-cd
# Check the status of the pods
kubectl get pods -n argocd
Saat menginstal ArgoCD, kami mengaktifkan dua flag yang menampilkan dua kumpulan metrik ArgoCD:
Untuk mengakses ArgoCD yang terinstal, Anda perlu mendapatkan kredensialnya:
Username
: administratorPassword
:
kubectl -n argocd \
get secret \
argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 -d
Tautkan repositori utama ke ArgoCD
ArgoCD menggunakan Application CRD untuk mengelola dan menyebarkan aplikasi. Saat Anda membuat CRD aplikasi, Anda menentukan yang berikut ini:
Source
referensi ke keadaan yang diinginkan di Git.Destination
referensi ke cluster target dan namespace.
ArgoCD menggunakan informasi ini untuk terus memantau repositori Git untuk perubahan dan menyebarkannya ke lingkungan target.
Mari kita terapkan dengan menerapkan perubahan:
cat <<EOF | kubectl apply -f -
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: workshop
namespace: argocd
spec:
destination:
namespace: argocd
server:
project: default
source:
path: argoCD/
repoURL:
targetRevision: main
syncPolicy:
automated:
prune: true
selfHeal: true
EOF
Mari mengakses UI server menggunakan kubectl port forwarding:
kubectl port-forward service/argocd-server -n argocd 8080:443
Untuk terhubung ke ArgoCD.
Instal Prometheus melalui ArgoCD
Dengan menginstal Prometheus, Anda akan dapat memanfaatkannya satu paket utuh dan nikmati fitur-fiturnya.
Saat Anda menginstal tumpukan penuh, Anda akan memiliki akses ke yang berikut:
- Prometheus
- Dasbor Grafana, dan lainnya.
Dalam demo kami, kami akan menerapkan layanan berikut dari Kube Prometheus Stack:
Node-eksportir akan menambahkan secara terpisah dengan miliknya kartu bar sendiri ketika menonaktifkan pra-instal default yang disertakan dengan Kube Prometheus Stack.
Ada dua cara untuk menyebarkan Prometheus:
- Pilihan 1: Dengan menerapkan CRD.
- Pilihan 2: Dengan menggunakan penyebaran otomatis berdasarkan personalisasi.
Di blog kami, penginstalan Prometheus akan dilakukan secara otomatis, artinya pilihan 2 akan diterapkan secara otomatis.
Opsi 1 — Terapkan CRD
cat <<EOF | kubectl apply -f -
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: prometheus
namespace: argocd
spec:
destination:
name: in-cluster
namespace: argocd
project: default
source:
repoURL:
targetRevision: 45.6.0
chart: kube-prometheus-stack
EOF
Opsi 2 – Tentukan instalasi secara deklaratif
Opsi ini sudah diterapkan berdasarkan CRD yang kami gunakan sebelumnya di langkah ini tautkan repositori utama ke ArgoCD.
CRD bertanggung jawab atas sinkronisasi kami aplikasi.yaml file dengan konfigurasi yang ditentukan dalam kustomisasi.
Setelah Prometheus dikerahkan, itu memaparkan metriknya ke /metrik. Untuk menampilkan metrik ini di Grafana, kita perlu menentukan sumber data Prometheus.
Selain itu, kami juga memiliki metrik tambahan yang ingin kami tampilkan di Grafana, jadi kami perlu melakukannya gores mereka di Prometheus.
Akses UI Server Prometheus
Mari akses Prometheus menggunakan kubectl port forwarding:
kubectl port-forward service/kube-prometheus-stack-prometheus -n argocd 9090:9090
Untuk terhubung ke Prometheus.
Eksportir Node Prometheus
Untuk menginstal Node Exporter, kami menggunakan pendekatan deklaratif, yang juga terjadi di pilihan 2. Proses instalasi akan berlangsung secara otomatis, seperti yang terjadi pada pilihan 2setelah kami menautkan repositori utama ke ArgoCD.
Kami akan menentukan konfigurasi aplikasi Node Exporter menggunakan pendekatan deklaratif.
Prometheus Operator CRD
Karena masalah dengan definisi sumber daya khusus dari operator Prometheus, kami memutuskan untuk menerapkan CRD secara terpisah. Proses instalasi akan otomatis, mirip dengan Pilihan 2, yang mengandalkan penautan repositori master ke ArgoCD pada langkah sebelumnya.
Instal Grafana melalui ArgoCD
Kami menggunakan pendekatan deklaratif yang sama seperti pilihan 2 untuk menentukan instalasi Grafana. Proses instalasi akan terjadi secara otomatis, seperti halnya di pilihan 2mengikuti langkah sebelumnya untuk menautkan repositori utama ke ArgoCD.
Karena instalasi Grafana adalah bagian dari Tumpukan Prometheusitu diinstal secara otomatis saat menginstal tumpukan Prometheus.
Untuk mengakses Grafana yang terinstal, Anda harus mendapatkan kredensialnya:
Username
: administratorPassword
:
kubectl get secret \
-n argocd \
kube-prometheus-stack-grafana \
-o jsonpath="{.data.admin-password}" | base64 --decode ; echo
Mari mengakses Grafana menggunakan kubectl port forwarding:
kubectl port-forward service/kube-prometheus-stack-grafana -n argocd 9092:80
Untuk terhubung ke grafana.
Impor Dasbor Metrik ArgoCD ke Grafana
Kami menghasilkan a configMap untuk dasbor ArgoCD dan menerapkannya melalui kustomisasi.
Saat menerapkan Grafana, kami menautkan configMap untuk membuat dasbor, lalu jalankan Prometheus untuk mengekstrak Data metrik ArgoCD untuk mendapatkan wawasan berharga tentang kinerjanya.

Metrik Dasbor ArgoCD tersedia mengikuti bagian sebelumnya dari entri blog:
--set server.metrics.enabled=true \
--set controller.metrics.enabled=true
Ini memungkinkan kami untuk dengan mudah melihat dan memantau metrik melalui dasbor.
Konfirmasi metrik ArgoCD:
# Verify if the services exist
kubectl get service -n argocd argocd-application-controller-metrics
kubectl get service -n argocd argocd-server-metrics
# Configure port forwarding to monitor Application Metrics
kubectl port-forward service/argocd-application-controller-metrics -n argocd 8082:8082
# Check the Application Metrics
# Configure port forwarding to monitor API Server Metrics
kubectl port-forward service/argocd-server-metrics -n argocd 8083:8083
# Check the API Server Metrics
Keluarkan peringatan
Jalankan skrip berikut untuk memicu peringatan:
curl -LO
chmod +x trigger_alert.sh
./trigger_alert.sh
Mari mengakses pengelola lansiran:
kubectl port-forward service/alertmanager-operated -n argocd 9093:9093
Untuk terhubung ke Manajer Peringatan.
Konfirmasikan bahwa bengkel peringatan telah dipicu:

Bersihkan lingkungan
Dengan menghapus meja kerja ApplicationsSet, semua dependensi yang diinstal sesuai dengan kustomisasi yang ditentukan akan dihapus.

Hapus instalasi ArgoCD dan semua dependensi terkait:
kubectl delete crd alertmanagerconfigs.monitoring.coreos.com
kubectl delete crd alertmanagers.monitoring.coreos.com
kubectl delete crd podmonitors.monitoring.coreos.com
kubectl delete crd probes.monitoring.coreos.com
kubectl delete crd prometheuses.monitoring.coreos.com
kubectl delete crd prometheusrules.monitoring.coreos.com
kubectl delete crd servicemonitors.monitoring.coreos.com
kubectl delete crd thanosrulers.monitoring.coreos.com
kubectl delete crd applications.argoproj.io
kubectl delete crd applicationsets.argoproj.io
kubectl delete crd appprojects.argoproj.io
helm del -n argocd argocd
Ringkasan
Melalui proses pembelajaran kami, kami telah mengembangkan keterampilan dalam mengotomatisasi manajemen infrastruktur dan menyinkronkan lingkungan kami dengan perubahan pada kode sumber kami. Secara khusus, kami mempelajari cara menerapkan ArgoCD dan menggunakan ApplicationSet untuk menerapkan tumpukan Prometheus. Selain itu, kami mendemonstrasikan proses menarik metrik layanan ke Prometheus dan memvisualisasikannya di Grafana, serta memicu peringatan di sistem pemantauan kami. Untuk pembelajaran lanjutan dan akses ke sumber daya yang berharga, kami mendorong Anda untuk menjelajahi contoh tutorial kami di GithubGenericName.
[ad_2]