Flazzo memiliki fokus utama untuk menambah nilai bisnis Anda.

Blog

Terapkan Prometheus dan Grafana sebagai aplikasi

16793724-thumb.jpg
Blog

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: administrator
  • Password:
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: administrator
  • Password:
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.

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:

Manajer Peringatan

Bersihkan lingkungan

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

Hapus aplikasi

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]