Giriş
Açıklaması şöyle
Grafana is an open source solution for running data analytics, pulling up metrics that make sense of the massive amount of data & to monitor our apps with the help of cool customizable dashboards.
Grafana connects with every possible data source, commonly referred to as databases such as Graphite, Prometheus, Influx DB, ElasticSearch, MySQL, PostgreSQL etc
Açıklaması şöyle
Grafana is a tool that can inject various data sources and display them in a comprehensive graphical experience. It supports various data sources like ELK, Prometheus, Graphite. And It also supports sending alerts base on different conditions.
Prometheus
Grafana, Prometheus'un çıktısını dashboard tarzı daha okunaklı hale getirir. İlişkisi şeklen şöyle
Ekranları gösteren bir örnek burada
Data Source Ekleme
Data Source Ekleme yazısına taşıdım
grafana-server komutu
Grafana'yı başlatmak için "./bin/grafana-server" komutu çalıştırılır
Grafana Dashboard Genel Görünüm yazısına bakabilirsiniz
Grafana Dashboard Import yazısına bakabilirsiniz
Dashboard şöyle. Burada cluster için toplam CPU ve Memory kullanımı görülebilir
Container'lar için toplam CPU ve Memory kullanımı şöyle
Örnek - Create
create -> Add Panel ile panel eklenir. Her panel'in metrics browser alanına birer birer şunlar eklenir
jenkins_plugins_active{} jenkins_plugins_inactive{} jenkins_plugins_failed{} jenkins_plugins_withUpdate{}
Helm İle Kurulum
Şöyle yaparız
kubectl create ns prometheus kubectl create ns grafana helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo add grafana https://grafana.github.io/helm-charts # deploy/prometheus-server diye deployment yapar helm install prometheus prometheus-community/prometheus --namespace prometheus --set alertmanager.persistentVolume.storageClass="gp2" --set server.persistentVolume.storageClass="gp2" helm install grafana grafana/grafana --namespace grafana --set persistence.storageClassName="gp2" --set persistence.enabled=true --set adminPassword='EKS!sAWSome' --values ./grafana.yaml --set service.type=LoadBalancer #get the DNS of grafana load balancer. kubectl get svc -n grafana
Docker
Şöyle yaparız
docker pull grafana/grafana docker run -d -p 3000:3000 grafana/grafana
Docker Compose
Docker Compose yazısına taşıdım
Kubernetes
Grafana Kubernetes Deployment yazısına taşıdım
Loki
Açıklaması şöyle
Grafana Loki is logging aggregation system which allows high available and multi tenancy.In micro-service paradigm to read the logs from each micro-service is really hard when we do one by one. To identify one issue have to tail logs in multiple modules. But what loki does is support the log aggregation in single dashboard and will allow to query the results form dashboard.
Şeklen şöyle
promptail-config.yml şöyle. Logları loki'ye gönderir.
server: http_listen_address: 0.0.0.0 http_listen_port: 9080 positions: filename: /tmp/positions.yaml clients: - url: http://loki:3100/loki/api/v1/push scrape_configs: - job_name: docker entry_parser: raw pipeline_stages: - docker:{} static_configs: - labels: job: dockerlogs __path__: /var/lib/docker/containers/*/*log
promptail için docker plugin kurulmalı. Şöyle yaparız
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
loki-config.yml şöyle
auth_enabled: falseserver:http_listen_port: 3100grpc_listen_port: 9096common:path_prefix: /tmp/lokistorage:filesystem:chunks_directory: /tmp/loki/chunksrules_directory: /tmp/loki/rulesreplication_factor: 1ring:instance_addr: 127.0.0.1kvstore:store: inmemoryschema_config:configs:- from: 2020-10-24store: boltdb-shipperobject_store: filesystemschema: v11index:prefix: index_period: 24hruler:alertmanager_url: http://localhost:9093
Şöyle yaparız
version: "3" networks: loki: services: app: image: quiz-server:latest container_name: 'quiz-server' ports: - '8080:8080' loki: image: grafana/loki volumes: - /home/sajith/Documents/personal/blogs/grafana-loki/loki:/etc/loki ports: - "3100:3100" command: -config.file=/etc/loki/config.yaml networks: - loki promtail: image: grafana/promtail volumes: - /var/lib/docker/containers:/var/lib/docker/containers - /home/sajith/Documents/personal/blogs/grafana-loki/promtail/config.yml:/etc/promtail/config.yml command: -config.file=/etc/promtail/config.yml networks: - loki grafana: image: grafana/grafana:master ports: - "3000:3000" networks: - loki
Influx Veri Tabanı
Influx ile ilişkisi şeklen şöyle
Hiç yorum yok:
Yorum Gönder