# Minikube Installation: minikube kurulumu için bir driver gereklidir bunun için ya VM ya da docker kurmak gerekir. Powershell üzerinde minikube çalıştırmak için; - `$ choco install minikube` - `$ minikube start --driver=docker` ya da - `$ minikube start --driver=virtualbox` Powershell üzerinde helm indirmek; - `$ choco install kubernetes-helm` # Monitoring Tutorial: monitoring kubernetes üzerinde kurulu olan uygulamaları izlememizi ve herhangi bir problem olması durumunda alertlar yaratarak tarafımıza bildirimler vermemizi sağlar Helm ile kurulumu yapılacak olan bütün elentilerin bulunduğu github repository; - `https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack` helm ile kubernetes üzerinde prometheus stack kullanımı için; - **`$ helm repo add prometheus-community`** https://prometheus-community.github.io/helm-charts - **`$ helm repo update`** Kubernetes sisteminde yapılacak işlemlerin bir namespace altında gerçekleşmesi için; - **`$ kubectl create ns monitoring`** #monitoring namespace oluşturur - **`$ kubectl get namespaces`** #namespaceleri görüntüler - $ `$ helm list -n monitoring` #monitoring namespace için releaseleri görüntüler - **`$ kubectl get svc -n monitoring`** #monitoring namespace servislerini görüntüler Helm kube-prometheus-stack installation; github repositoryde bulunan values.yml dosyası indirilip herhangi bir editör ile updateleri yapılır. aşağıdaki dosya yapısında **value.yaml** desktop üzerinde bulunmaktadır. - **`$ helm install kube-prom-stack prometheus-community/kube-prometheus-stack -n monitoring -f .\values.yml`** bu kod ile helm sayesinde kube Prom Stack programı kurulur. Namespace *monitoring* olarak adlandırılan namespace üzerinde ayağa kalıdılır. bu ns birden fazla pod bulunmaktadır. detaylı biligi görmek için ***kubectl get pods -n monitoring*** - **`$ kubectl port-forward svc/kube-prom-stack-kube-prome-prometheus -n monitoring 9090`** #prometheus localhost:9090 portu üzerine yönlendirilir. - **`$ kubectl port-forward svc/kube-prom-stack-grafana -n monitoring 80** #grafana localhost:80` portu üzerine yönlendirilir. Blackbox exporter installation; - **`$ helm install prom-stack prometheus-community/prometheus-blackbox-exporter -n monitoring`** - **`$ kubectl port-forward svc/prom-stack-prometheus-blackbox-exporter -n monitoring 9115`** * prometheus'un bir kaynak scrape etmesini istediğimizde additionalScrapeConfigs altında tanımlamalıyız, bu senaryoda blackbox exporter için values.yml içinde yapılması gereken tanımlama; ``` additionalScrapeConfigs: - job_name: blackbox metrics_path: /probe params: module: [http_2xx] static_configs: # Add URLs as target parameter - targets: - https://google.com - https://github.com - https://muhammet-alarcin.com #alert üretme amacı ile eklenmiştir relabel_configs: - source_labels: [address] target_label: param_target - source_labels: [param_target] # Important! target_label: target # Ensure blackbox-exporter is reachable from Prometheus - target_label: address replacement: prom-stack-prometheus-blackbox-exporter.monitoring:9115 ``` #prom-stack-prometheus-blackbox-exporter monitoring namespace altında bu örnek için service ismimiz farklılık gösterecektir. #values.yml içerisindeki değişikliğin upgrade ile işlenmesi için - `$ helm upgrade kube-prom-stack prometheus-community/kube-prometheus-stack -n monitoring -f .\values.yml` - `$ helm repo add grafana https://grafana.github.io/helm-charts` - `$ helm repo update` - `$ helm install loki grafana/loki-stack -n monitoring` ### monitorig için kullanılan programlar - **prometheus** : Prometheus, enstrümante edilmiş işlerin oluşturduğu metrikleri direkt olarak ya da Short-Lived görevler için, Push Gateway yolu ile topar. Daha sonra bütün bu toparlanan datalar lokal olarak saklanır. Bu datalardan yeni time-serileri veya alarmlar oluşturmak için çeşitli kurallar uygulanır. - **Grafana** : açık kaynak kodlu gelişmiş bir raporlama platformu. Metrik datalarınızın nerede saklandığına bakmasızın bu metrikler için sorgulama, görselleştirme ve bildirim alabilmenizi sağlıyor. ![](https://i.imgur.com/rJp2ap8.png) # Kaynaklar ### prometheus nedir - https://cliexperiences.wordpress.com/2017/06/24/metriklerin-efendisi-prometheus-episode-1/ - https://www.mehmetcakmaz.com.tr/kubernetes-de-helm-ile-prometheus-kurulumu/