27
TÜBİTAK 1 Devlet Muhasebe Sistemi'nde PostgreSQL Veritabanlarını İzleme Tecrübesi 24.01.2019 İbrahim Edib Kökdemir Yazılım Teknolojileri Araştırma Enstitüsü

24.01 · TÜBİTAK 1 Devlet Muhasebe Sistemi'nde PostgreSQL Veritabanlarını İzleme Tecrübesi 24.01.2019 İbrahim Edib Kökdemir Yazılım Teknolojileri Araştırma

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

TÜBİTAK

1

Devlet Muhasebe Sistemi'nde PostgreSQL Veritabanlarını İzleme Tecrübesi

24.01.2019

İbrahim Edib Kökdemir Yazılım Teknolojileri Araştırma Enstitüsü

TÜBİTAK

2

Menüdekiler

Neden izlemeliyiz? Neleri izlemeliyiz? Zabbix ve saz arkadaşları Powa Sorgu temelli izleme İzlemenin karanlık tarafı

TÜBİTAK

3

Neden izlemeliyiz?

Makineler bozulur. İnsanlar hata yapar. Sistemler her zaman doğru çalışmaz. İzlemiyorsan yönetmiyorsun.

Önceden öngörmek için Bozulanı tamir etmek zordur. Prestij, iş ve para kaybedersin.

TÜBİTAK

4

İzlemede olması gerekenler

Şimdi, geçmiş ve gelecek

Uyarı, Aksiyon alma

Arayüz (dashboard)

Herşeyi bir arada görebilme

Esnek ve kapsayıcı

Genellikle sorunların nedeni tek noktadan keşfedilemez.

Genellikle sorunların kaynağı veritabanı değildir.

TÜBİTAK

5

Postgreste Neleri izlemeliyiz?

Hizmetin kalitesini etkileyen herşey! Postgres

İşletim sistemi kaynakları (bellek, işlemci, ağ, disk) Servis öznitelikleri

açık/kapalı Bağlantı sayısı ...

Nesnelerin (veritabanı, tablo, index, sorgu) öznitelikleri Kullanım adedi Cevap süresi ...

TÜBİTAK

6

İdeal Kurumsal İzleme

Zabbix

Devlet Muhasebe Sistemi Örneği

Veritabanları

Uygulamalar

PowaSunucu Konteyner

Master Replika

TÜBİTAK

7

Nasıl izlemeliyiz?

Zabbix Mamonsu (*) Libzbxpgsql pg_monz Daha niceleri ...

Sorgu izlemesi Powa(*) Pg_badger(offline log file analiz) pg_hero

TÜBİTAK

8

Tanıyalım: Zabbix

Kurumsal (enterprise) seviyede izleme aracı İstemci/Sunucu mimarisi Sunucunun parçaları

Sunucu (C, yüksek performans) Veritabanı (postgresle çalışır.) Web arayüzü (php)

TÜBİTAK

9

Zabbix: Nasıl izler?

Agent-server Elle / Otomatik keşif

Sunucular / Ağ cihazları

Sanallaştırma ve Konteyner Vmware, openstack, xenserver, docker, kubernetes

Web monitoring (web siteleriniz, performans ve erişilebilirlik)

Java jmx

Yazıcılar, ups, arduino, sensorler

Veri üretebilen herşey ...

TÜBİTAK

10

TÜBİTAK

11

TÜBİTAK

12

Nasıl iletişim kurarız?

Bildirim Kendi ekranı Eposta Sms chat mesajı Script çalıştırma

TÜBİTAK

13

Host

Zabbix Server Kavramları

Host group

Template

Application Item Trigger Discovery

Graph Problem

ScreenMap

User User Group

API

TÜBİTAK

14

Zabbix Agent Kavramları

Passive Agent

Sunucu ajandan veri ister

Active Agent

Ajandan sunucuya doğru

Ajan Sunucudan liste ister

Düzenli toplamaya başlar

Geri gönderir

Zabbix_trapper

Seyyar ajan

Ajandan gelen veriyi alır ve eşleştirir.

Zabbix_sender

Sunucuya seyyar veri gönderir.

TÜBİTAK

15

Zabbix’le Postgres İzleme: saz arkadaşları

mamonsu Servis olarak

libzbxpgsql Agent modülü olarak

pg_monz Agenta bağlı script grubu

TÜBİTAK

16

Mamonsu

Postgres Professional Python (genişletilebilir) Db sunucuda aktif agent Sistem ve db hakkında bilgiler connections event: conflicts/deadlocks/rollbacks statements: read/write/dirty bytes/s

checkpoint temp: bytes written / created statements: read/write/dirty io time

bgwriter tuples: deleted/inserted/returned/updated

locks (her türlüsünden)

autovacuum streaming replication lag Boyutlar (db, tablo)

transactions wal write speed ve daha birsürü şey

blocks: hit/read count of xlog files

TÜBİTAK

17

Libzbxpgsql

C zabbix agent (modül) Mamonsu + index, pkey istatistikleri pg_stat_all_tables pg_stat_all_indexes Özelleştirilmiş sorgular

TÜBİTAK

18

pg_monz

Sql + bash Geliştirici olmak gerekmez + pg_pool ve streaming replication izleme sender+trapper

TÜBİTAK

19

Powa: Sorgu İzleme

C + Python (web)

Eklenti(extension) olarak

Background servisi

PoWA-archivist

web arayüzü (powa-web)

İstatistik eklentileri

pg_stat_statements (sorgular)

pg_qualstats (where, join bilgileri)

pg_stat_kcache (pg ve os cache)

HypoPG (farazi index)

İzlemesi DB Developerlara teslim edilmelidir.

TÜBİTAK

20

Powa: Arayüz

TÜBİTAK

21

Powa: Arayüz

TÜBİTAK

22

Powa: Arayüz

TÜBİTAK

23

Sorgu İzleme: diğerleri

Pg_badger(offline log file analiz)

pg_hero (ruby)

TÜBİTAK

24

İzlemenin Karanlık Tarafı

True Positive (TP):Durum: Kurt geldi.Çoban: "Kurt geldi!"Sonuç: Çoban kahraman.

False Positive (FP):Durum: Kurt gelmedi.Çoban: "Kurt geldi!"Sonuç: Köylüler çobana çok kızar.

False Negative (FN):Durum: Kurt geldi.Çoban: "..."Sonuç: Kurt sürüyü yedi.

True Negative (TN):Durum: Kurt yok.Çoban: "..."Sonuç: Herkes mutlu.

Kurtla çobanın hikayesi

TÜBİTAK

25

İzlemenin Karanlık Tarafı

İzleme sistemi kurmak zordur

Değiştirmek de zordur.

Zaman, emek ve uzmanlık ister

Asla mükemmel olmaz Akışlar yumağı Varsayılan şablonlardan gitmek gerek. Yanlış alarmlarla doludur. (FP)

TÜBİTAK

26

Yöntem

Zabbix: "alarm, alarm, alarm, ..."Durum: Genellikle bir durum vardır ve zabbix de ondan bahsediyordur. Sonuç: Çok mail var. Mailleri takip et. Sorunu çöz ve kahraman ol. Sonuç2: Sadece bazıları Zabbixin çok geveze olduğundan şikayetçi olur ama Herkes mutludur.

İzleyelim, İzletelim.

TÜBİTAK

27

Teşekkürler

Sorular