# 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.

# 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/