Azure Kubernetes Servisi Üzerinde Grafana-Prometheus Kurulumu
--
AKS-Grafana-Prometheus-Azure-Helm
Herkese merhaba,
Bu yazıda var olan Azure Kubernetes Servisimiz için grafana-prometheus stack ini nasıl kuracağımızı göstereceğim.
Öncelikle helm reposunu Azure DevOps repomuza import edelim; çünkü versiyonlar vs değiştiği için sonradan sorun yaşamamak adına var olan versiyonu kendi repomuza almak iyi bir pratiktir.
Import → https://github.com/prometheus-community/helm-charts/tree/main
Bu işlem biraz zaman alabilir.
Bu işlem bittikten sonra default olarak main branchi seçebilirsiniz; çünkü main branch üzerinden ilerleyeceğiz.
Şimdi azure-pipelines yaml dosyamızı oluşturma vakti!
Pipelines → Create Pipeline
Azure Repos Git →
Prometheus Community →
Starter Pipeline →
Şimdi pipeline ı düzenleyebiliriz. AKS için connection kurduğunuzdan emin olun.
Öncelikle monitoring adında bir namespace oluşturalım. Kubernetes taskı ile bunu ekleyelim.
- task: Kubernetes@1
inputs:
connectionType: 'Kubernetes Service Connection'
kubernetesServiceEndpoint: 'aks-connection'
command: 'create'
arguments: 'namespace monitoring'
Sıradaki adım ise helm ile chartımızı yüklemek olacak.
- task: HelmDeploy@0
inputs:
connectionType: 'Kubernetes Service Connection'
kubernetesServiceConnection: 'aks-connection'
namespace: 'monitoring'
command: 'install'
chartType: 'FilePath'
chartPath: 'charts/kube-prometheus-stack'
releaseName: 'prometheus'
arguments: '--dependency-update'
Burada “ — dependency-update” argümanı önemli; çünkü diğer bağımlılıkların da yüklenmesini sağlamaktadır.
Save&Run butonuna tıklayalım.
Grafana servisi default olarak ClusterIP kullanır. Bunu servisimizi dışarı açmak için repomuzdan değiştirelim.
charts/kube-prometheus-stack/values.yaml dosyasındaki 894. satırı aşağıdaki gibi değiştirip commitleyelim.
Pipeline ımıza upgrade taskını ekleyelim.
- task: HelmDeploy@0
inputs:
connectionType: 'Kubernetes Service Connection'
kubernetesServiceConnection: 'aks-connection'
namespace: 'monitoring'
command: 'upgrade'
chartType: 'FilePath'
chartPath: 'charts/kube-prometheus-stack'
releaseName: 'prometheus'
arguments: '--dependency-update'
Diğer 2 taskı disabled edip pipeline ı tekrar çalıştırabiliriz.
Gördüğünüz gibi upgrade edildi.
Burada isterseniz pipeline isterseniz de Azure Portal üzerinden Grafana için reserve edilen ip yi görebilirsiniz.
Grafana için default kullanıcı ve şifresi aşağıdaki gibidir:
kullanıcı : admin
şifre : prom-operator
İsterseniz chart üzerinden de değiştirebilirsiniz.
Giriş yaptıktan sonra Dashboard tabına baktığınızda hali hazırda birçok dashboard ile kurulmuş olduğunu görebilirsiniz.
YAML dosyamızın son hali:
trigger:
- none
pool:
vmImage: ubuntu-latest
steps:
- task: Kubernetes@1
enabled: false
inputs:
connectionType: 'Kubernetes Service Connection'
kubernetesServiceEndpoint: 'aks-connection'
command: 'create'
arguments: 'namespace monitoring'
- task: HelmDeploy@0
enabled: false
inputs:
connectionType: 'Kubernetes Service Connection'
kubernetesServiceConnection: 'aks-connection'
namespace: 'monitoring'
command: 'install'
chartType: 'FilePath'
chartPath: 'charts/kube-prometheus-stack'
releaseName: 'prometheus'
arguments: '--dependency-update'
- task: HelmDeploy@0
inputs:
connectionType: 'Kubernetes Service Connection'
kubernetesServiceConnection: 'aks-connection'
namespace: 'monitoring'
command: 'upgrade'
chartType: 'FilePath'
chartPath: 'charts/kube-prometheus-stack'
releaseName: 'prometheus'
arguments: '--dependency-update'
Umarım faydalı bir yazı olmuştur. Her türlü önerinizi ve sorunuzu bana bildirmekten ve sormaktan çekinmeyin lütfen.
Herkese iyi günler diliyorum!