Skip to content

Latest commit

 

History

History
97 lines (76 loc) · 5.03 KB

File metadata and controls

97 lines (76 loc) · 5.03 KB

Observability Modülü

İngilizce dokümantasyon için: README.md

Genel Bakış

Bu modül, Kafka altyapısı için eksiksiz bir gözlemlenebilirlik (observability) çözümü sunar. Prometheus, Alertmanager ve Grafana bileşenlerini otomatik olarak kurar, yapılandırır ve merkezi bir sunucuda devreye alır. Tüm host ve servis bilgileri, Terraform ile yönetilen altyapıdan S3 üzerinden dinamik olarak çekilir ve envanterler otomatik oluşturulur.


Özellikler

  • Tam Otomatik Kurulum: Tüm gözlemlenebilirlik bileşenleri (Prometheus, Alertmanager, Grafana) tek komutla kurulur.
  • Dinamik Envanter ve Konfigürasyon: Sunucu ve servis bilgileri S3'teki Terraform state dosyasından otomatik çekilir, Prometheus ve Ansible envanterleri dinamik oluşturulur.
  • Prometheus İzleme: Kafka Broker, Controller, Connect node'ları ve altyapı sunucuları için metrikler otomatik olarak toplanır.
  • Alertmanager ile Uyarı Yönetimi: Kritik durumlar için özelleştirilebilir Prometheus uyarıları ve Alertmanager entegrasyonu.
  • Grafana ile Görselleştirme: İlk kurulumda otomatik olarak güçlü bir admin şifresi belirlenir ve iki hazır dashboard (Kafka Broker & Kafka Connect) otomatik yüklenir.
  • Node Exporter Otomasyonu: Tüm Kafka, Controller ve Connect node'larına node_exporter otomatik kurulur ve altyapı metrikleri Prometheus tarafından izlenir.
  • GitHub Actions ile CI/CD: Tüm kurulum ve güncellemeler GitHub Actions üzerinden otomatikleştirilebilir.

Ansible ile Tam Otomatik Kurulum

Bu modülde, tüm gözlemlenebilirlik (observability) bileşenleri (Prometheus, Alertmanager, Grafana, Node Exporter) Ansible playbook'ları ve scriptleri ile tamamen otomatik olarak kurulur ve yapılandırılır. Kullanıcıdan manuel bir kurulum adımı beklenmez; tek komutla tüm altyapı hazır hale gelir.


Dizin Yapısı

  • observability.yml — Ansible playbook: Prometheus, Alertmanager, Grafana kurulumu
  • deploy.sh — Tüm süreci başlatan ana script
  • generate-inventory.sh — S3'ten host bilgilerini çekip envanter oluşturan script
  • generate-prometheus-config.sh — Prometheus için dinamik konfigürasyon üreten script
  • prometheus/ — Prometheus ana konfigürasyon ve alert tanımları
  • grafana/ — Dashboard şablonları ve otomatik yükleme
  • alertmanager/ — Alertmanager konfigürasyonu
  • node-exporter.yml — Tüm node'lara exporter kurulumu için Ansible playbook'u

Otomatik İş Akışı

  1. Envanter Oluşturma: generate-inventory.sh ile S3'ten güncel host bilgileri çekilir ve Ansible envanteri oluşturulur.
  2. Prometheus Konfigürasyonu: generate-prometheus-config.sh ile Prometheus hedefleri otomatik belirlenir.
  3. Node Exporter Kurulumu: Tüm Kafka, Controller ve Connect node'larına exporter otomatik kurulur.
  4. Stack Deploy: deploy.sh ile Prometheus, Alertmanager ve Grafana tek komutla devreye alınır.
  5. Grafana Otomasyonu: İlk açılışta admin şifresi belirlenir ve dört dashboard (Kafka Broker, Kafka Connect, Node Exporter) otomatik yüklenir.
  6. Alertmanager: Prometheus alert tanımları ve Alertmanager entegrasyonu otomatik yapılır.
  7. CI/CD: Tüm süreç GitHub Actions ile otomatikleştirilebilir.

Bileşenler

Prometheus

  • Kafka Broker, Controller, Connect ve altyapı sunucularından metrik toplar.
  • Alert tanımları ile kritik durumları tespit eder.
  • Konfigürasyon dosyası ve hedefler otomatik güncellenir. prometheus

Alertmanager

  • Prometheus uyarılarını merkezi olarak yönetir.
  • E-posta, Slack vb. bildirim entegrasyonları kolayca eklenebilir.
  • Alert tanımları prometheus/alerts/ dizininde yönetilir. alertmanager

Grafana

  • Otomatik olarak güçlü bir admin şifresiyle kurulur.
  • İlk kurulumda iki dashboard otomatik yüklenir:
    • Kafka Broker Dashboard
    • Kafka Connect Dashboard
  • Tüm metrikler ve uyarılar görsel olarak izlenebilir. grafana

Güvenlik ve En İyi Pratikler

  • Tüm şifreler ve admin bilgileri environment variable veya Ansible vault ile yönetilir.
  • Sertifikalar ve hassas dosyalar versiyon kontrolüne eklenmez.
  • Tüm script ve playbook'lar idempotent ve tekrar çalıştırmaya uygundur.

GitHub Actions ile CI/CD

  • Tüm kurulum ve güncellemeler .github/workflows/ansible_observability.yaml ile otomatikleştirilebilir.
  • S3 ve Terraform state değişiklikleriyle otomatik tetiklenir.
  • Test, kurulum ve dashboard yükleme adımları pipeline'da yer alır. actions

Hızlı Başlangıç

  1. AWS ve S3 erişim bilgilerinizi ayarlayın.
  2. deploy.sh scriptini çalıştırın:
    bash deploy.sh
  3. Kurulum tamamlandığında, Grafana'ya erişmek için sunucu IP'sini ve admin şifresini kullanın.

Dashboard ve Alert Örnekleri

  • grafana/dashboards/ altında hazır JSON dashboard şablonları
  • prometheus/alerts/ altında örnek Prometheus alert tanımları