DBAtlas · Veritabanı operasyon atlası

Prometheus + Grafana ile veritabanı izleme

İzlemeSeviye: OrtaSüre: 60–120 dk

Merkezi bir izleme sunucusu (Prometheus, Alertmanager, Grafana) kurar ve izlenen sunuculara node_exporter ile seçtiğiniz veritabanı exporter'larını ekler: PostgreSQL, MySQL, Oracle, SQL Server, MongoDB, Redis, Elasticsearch. En az yetkili izleme kullanıcıları, systemd servisleri, temel alert kuralları, e-posta/webhook bildirimi, datasource provisioning ve hazır dashboard'lar dahildir. Veritabanı kurulum rehberlerinin sonundaki 'İzlemeyi bağla' adımının devamıdır; sonunda tüm sunucuların metriklerini tek ekranda gören ve sorun olunca bildirim gönderen bir izleme düzeni elde edilir.

Yapı: 1 izleme sunucusu + izlenen sunucular

Başlamadan önce

  • İzleme sunucusu ve izlenen Linux sunucular desteklenen bir işletim sisteminde; saatler senkron (chrony). Saat farkı Prometheus'ta "out of bounds" hatalarına ve yanlış alert'lere yol açar.
  • İzleme sunucusunda /var/lib/prometheus için yeterli disk var: … sunucu × … gün için en az birkaç GB; ayrı disk/LV önerilir. En az 2 CPU ve 4 GB RAM gerekir.
  • İzleme sunucusundan (…) her sunucuya exporter portları açık: 9100 (node)…, 9187 (PostgreSQL)……, 9104 (MySQL)……, 9161 (Oracle)……, 9216 (MongoDB)……, 9121 (Redis)……, 9114 (Elasticsearch)……; SQL Server sunucularına ……. Kullanıcılardan izleme sunucusuna … (Grafana).
  • Sunucular github.com adresine (exporter ve Prometheus ikilileri), izleme sunucusu ayrıca …rpm.grafana.com…apt.grafana.com… adresine HTTPS ile çıkabiliyor; çıkamıyorsa dosyaları başka bir makinede indirip kopyalayın.
  • PostgreSQL sunucularında pg_hba.conf dosyasında host all all 127.0.0.1/32 scram-sha-256 (ya da daha dar bir kural) var: exporter yerelden TCP ile parolayla bağlanır.
  • Her veritabanında izleme kullanıcısı oluşturabilecek bir yönetici hesabınız var (PostgreSQL: postgres, MySQL: root, Oracle: SYSDBA, SQL Server: sysadmin, MongoDB: userAdmin, Redis: ACL yetkili kullanıcı, Elasticsearch: elastic).
  • İzleme kullanıcılarının parolaları için parola kasasında kayıt açın. Parolalar adımlarda etkileşimli sorulur ve yalnız ilgili exporter kullanıcısının okuyabildiği dosyalara (0600) yazılır.

Rehberin aşamaları

  • Hazırlık — Temel araçları kur ve saati senkronla · Firewall: exporter portlarını izleme sunucusuna aç · Firewall: Grafana portunu aç
  • node_exporter (işletim sistemi metrikleri) — node_exporter'ı indir ve kur · node_exporter servisini tanımla · node_exporter'ı başlat
  • PostgreSQL: postgres_exporter — İzleme rolünü oluştur (pg_monitor) · İzleme rolünün parolasını belirle · postgres_exporter'ı indir ve kur · Bağlantı ayarlarını ve parola dosyasını yaz · postgres_exporter servisini tanımla · postgres_exporter'ı başlat
  • MySQL: mysqld_exporter — İzleme kullanıcısını ve exporter kimlik dosyasını oluştur · mysqld_exporter'ı indir ve kur · mysqld_exporter servisini tanımla · mysqld_exporter'ı başlat
  • Oracle: oracledb_exporter — İzleme kullanıcısını oluştur · oracledb_exporter'ı indir ve kur · Exporter yapılandırmasını yaz · oracledb_exporter servisini tanımla · oracledb_exporter'ı başlat
  • SQL Server: sql_exporter — İzleme login'ini oluştur (… SQL Server'da) · sql_exporter'ı indir ve kur · Hedef yapılandırmasını yaz (…) · sql_exporter servis şablonunu tanımla · sql_exporter'ı başlat (…)
  • MongoDB: mongodb_exporter — İzleme kullanıcısını oluştur (mongosh) · mongodb_exporter'ı indir ve kur · Kimlik dosyasını yaz · mongodb_exporter servisini tanımla · mongodb_exporter'ı başlat
  • Redis: redis_exporter — İzleme kullanıcısını oluştur (ACL) · redis_exporter'ı indir ve kur · Kimlik dosyasını yaz · redis_exporter servisini tanımla · redis_exporter'ı başlat
  • Elasticsearch: elasticsearch_exporter — İzleme rolünü ve kullanıcısını oluştur · elasticsearch_exporter'ı indir ve kur · CA sertifikasını ve kimlik dosyasını yaz · elasticsearch_exporter servisini tanımla · elasticsearch_exporter'ı başlat
  • Prometheus — Prometheus'u indir ve kur · Scrape hedeflerini tanımla (prometheus.yml) · Alert kurallarını yaz · Yapılandırmayı doğrula · Prometheus servisini tanımla · Prometheus'u başlat
  • Alertmanager — Alertmanager'ı indir ve kur · Bildirim yapılandırmasını yaz · Yapılandırmayı doğrula · Alertmanager servisini tanımla · Alertmanager'ı başlat
  • Grafana — Grafana repo'sunu tanımla · Grafana repo'sunu tanımla · Grafana'yı kur · Güvenlik ayarlarını yap · Prometheus datasource'unu tanımla (provisioning) · Dashboard provisioning'i tanımla …
  • Doğrulama — Tüm hedeflerin UP olduğunu kontrol et · Kuralların yüklendiğini kontrol et · Test alert'i gönder · Grafana dashboard'larını kontrol et
  • Kurulum sonrası — İzleme sistemini yedekle · Güvenlik kontrol listesini uygula
Ortamına göre adım adım planı aç →