Zabbix kullanarak PostgreSQL'i izleme

Zabbix kullanarak PostgreSQL'i izleme
Zabbix Meetup Online için Daria Vilkova'nın raporu

Şirketimizin Zabbix kullanarak geliştirmekte olduğu PostgreSQL ve işletim sistemi izleme aracını sizlere tanıtmak istiyorum.

Rusya'da çok popüler olan aktif bir topluluk tarafından desteklenen açık kaynaklı bir platform olduğu için uzun süredir izleme aracımız olarak Zabbix'i seçtik.

O zamanlar izin verilen standart araçlardan daha esnek izleme sağlayan ve ölçümlerin toplanmasını ve Zabbix Sunucusuna gönderilmesini sağlayan aktif bir aracı - Mamonsu oluşturduk. Şirketimizde denetimde Mamonsu kullanılmaktadır.

Mamonsu

Mamonsu, PostgreSQL ve işletim sistemini izlemek için aktif bir ajandır (Zabbix Trapper). Mamonsu (Python ile yazılmıştır), PostgreSQL ve işletim sistemi izleme ayarlarını beş dakika içinde yapılandırmanıza olanak tanır.

Mamonsu'nun ek araçları vardır:

  • mamonsu tune, Mamonsu aracısının kurulu olduğu makine için PostgreSQL yapılandırma dosyasındaki ayarları düzenleyen bir komuttur.
  • mamonsu raporu, işletim sistemi ve PostgreSQL hakkında cevaplar üreten bir komuttur.

Mamonsu, DBMS sunucusuna kurulur, bilgileri toplar, JSON'da oluşturur ve bu da onu, ölçümleri için bir şablonun olması gereken görselleştirme için Zabbix Sunucusuna gönderir.

Zabbix kullanarak PostgreSQL'i izleme

Mamonsu çalışma düzeni

Mamonsu'nun Özellikleri

  • PostgreSQL ile verimli çalışma. PostgreSQL ile kalıcı bir bağlantı, Mamonsu'nun ana avantajıdır. Bu durumda, maksimum bağlantı sayısı, bağlandığı maksimum veri tabanı sayısına eşittir.
  • Genişletilebilirlik. Mamonsu tamamen "eklenti" bir aracıdır ve her bir eklentinin sabit yapısı ve Python'un göreli basitliği nedeniyle, kişi yeni yazmayı veya standart eklentileri, yani metrik toplama parametrelerini düzenlemeyi kolayca öğrenebilir.
  • İzleme metriklerinin geniş kapsamı uzantıya özgü ölçümler dahil olmak üzere PotgreSQL için.
  • hızlı başlatma, kutunun dışında kullanılabilirlik.
  • Şablonları ve yapılandırma dosyalarını karşıya yükleme, ayrıca Zabbix Sunucusuna yükleme.
  • Çapraz platform, yerli olanlar da dahil olmak üzere çeşitli Linux dağıtımlarını kullanan müşterilerimiz için önemlidir.
  • BSD yan tümce lisansı.

Şu anda birçok eklenti sunuyoruz ve sonraki her sürümde yeni bir şeyler eklemeye çalışıyoruz.

  • PostgreSQL için 14 eklenti,
  • OS Linux için 8 eklenti,
  • OS Windows için 4 eklenti.

Mamonsu, 110'dan fazla PostgreSQL ve işletim sistemi ölçümü toplar:

  • 70 PostgreSQL metriği,
  • 40 işletim sistemi Linux ölçümü,
  • 8 OS Windows ölçümleri.

Temel ölçütler arasında DBMS kullanılabilirliği, bağlantı sayısı, veritabanı boyutu, denetim noktaları, okuma/yazma hızı, kilitler, otomatik vakum işlemleri sayısı ve WAL oluşturma hızı yer alır. Kullanılabilir metriklerin eksiksiz bir listesi ve tüm araçların ayrıntılı bir açıklaması şu adreste mevcuttur: depolar GitHub sitesinde.

Zabbix kullanarak PostgreSQL'i izleme

GitHub'da mevcut metriklerin listesi

Mamonsu'yu 5 dakikada çalıştırın

Mamonsu kullanarak PostgreSQL ve işletim sisteminin izlenmesini ayarlamak için 5 basit adımı izleyerek 5 dakikada yapabilirsiniz.

  1. Mamonsu'nun Kurulumu. Mamonsu kaynaktan inşa edilebilir veya mevcut paketleri kullanabilir.

$ git clone ... && cd mamonsu && python setup.py

build && python setup.py install

  1. Bağlantı kurulumu. Agent.conf dosyasında PostgreSQL ve Zabbix Server için bağlantı parametrelerinin ayarlanması gerekmektedir.

/etc/mamonsu/agent.conf

  1. Şablonu Zabbix Sunucusuna Aktar.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Zabbix Sunucusuna bir ana bilgisayar ekleme. Dışa aktarılan şablon, Zabbix Sunucusundaki yeni ana bilgisayara otomatik olarak bağlanacaktır.

$ mamonsu zabbix host create mamonsu-demo

  1. Başlatmak.

$ service mamonsu start

Mamonsu Geliştirme Talimatları

Mamonsu'nun geliştirilmesinin bir parçası olarak, metrikleri iyileştirmeyi ve tek tek tabloların boyutunu izlemek için bir eklenti gibi yeni eklentiler oluşturmayı planlıyoruz. Ayrıca, komut aracılığıyla otomatik ayarlama yeteneklerini genişletmenin yanı sıra ek araçlar geliştirmeyi ve oluşturmayı planlıyoruz. mamonsu ezgisi.

Zabbix Agent 2'nin bir parçası olarak PostgreSQL izleme modülü

PostgreSQL'e bağlanmak için hızlı ve popüler bir sürücü kullanılır pgx (PG sürücüsü ve Go için araç seti).

Şimdiye kadar iki arabirim kullanıyoruz: işleyiciyi anahtarla çağıran Exporter ve yapılandırma dosyasında belirtilen sunucuyla bağlantı parametrelerini okuyan ve kontrol eden Configurator Zabbix Agent 2.

Metrikleri gruplandırarak ve metrikler ve metrik grupları için bir işleyici (işleyici) kullanarak ve JSON'da metrik gruplarını bağımlı değişkenler (bağımlılık öğeleri) ve düşük seviyeli keşif (keşif kuralları) olarak kullanarak DBMS'nin çalışmasını optimize etmeye çalıştık. ).

Ana özellikleri

  • kontroller arasında PostgreSQL ile kalıcı bir bağlantının sürdürülmesi;
  • esnek yoklama aralıkları için destek;
  • 10'dan itibaren PostgreSQL sürümleri ve 4.4 sürümünden itibaren Zabbix Server ile uyumluluk;
  • Zabbix Agent 2'nin birden çok oturum oluşturmanıza izin vermesi nedeniyle, birden çok PostgreSQL örneğine aynı anda bağlanma ve bunları izleme yeteneği.

PostgreSQL Bağlantı Parametre Düzeyleri

Toplamda, PostgreSQL bağlantı parametrelerinin üç düzeyi vardır, yani görevler ve ayarlar:

  • Küresel,
  • Oturumlar,
  • Makrolar.

  1. Global parametreler aracı düzeyinde ayarlanır, Oturum ve Makrolar parametreleri veritabanı bağlantı parametrelerini tanımlar.

  2. PostgreSQL'e bağlantı parametreleri - Oturumlar dosyada ayarlanır zabbix_agent2.conf.

Zabbix kullanarak PostgreSQL'i izleme

PostgreSQL Bağlantı Seçenekleri - Oturumlar

  • Anahtar kelimeden sonra Oturumlar anahtarda (şablon) belirtilmesi gereken benzersiz bir oturum adı belirtilir.
  • Parametreler URI и KullanıcıAdı her seans için gereklidir.
  • Temel ad belirtilmezse, tüm PostgreSQL oturumları için yapılandırma dosyasında da ayarlanan varsayılan ortak temel ad kullanılır.

  1. PostgreSQL'e bağlantı parametreleri - Makrolar, şablondaki metrik anahtarda ayarlanır (Zabbix Agent 1'de kullanılan yönteme benzer), yani şablonda oluşturulur ve ardından anahtarda parametreler olarak belirtilir. Bu durumda, makro dizisi sabittir, yani örneğin, URI her zaman ilk sıralanır.

Zabbix kullanarak PostgreSQL'i izleme

PostgreSQL bağlantı parametreleri - Makrolar

PostgreSQL izleme modülü, aşağıdakiler de dahil olmak üzere oldukça geniş bir PostgreSQL parametresi yelpazesini kapsamanıza izin veren 95'ten fazla metrik içerir:

  • bağlantı sayısı
  • veritabanı boyutu,
  • wal dosyalarını arşivleme,
  • kontrol noktaları,
  • "şişirilmiş" tabloların sayısı,
  • çoğaltma durumu,
  • çoğaltma gecikmesi

PostgreSQL ölçümleri, işletim sistemi parametreleri olmadan bilgilendirici değildir. Ancak Zabbix Agent 2, işletim sistemi parametrelerinin nasıl toplanacağını zaten biliyor, bu nedenle tam resmi elde etmek için gerekli şablonları ana bilgisayara bağlamamız yeterli.

işleyici

İşleyici, talebin yürütüldüğü ve metrikleri almanızı sağlayan modülün ana birimidir.

Basit bir ölçüm elde etmek için:

  1. Yeni bir metrik almak için bir dosya oluşturun:

zabbix/src/go/plugins/postgres/handler_uptime.go

  1. Paketi bağlarız ve metriklerin benzersiz anahtarını (anahtarlarını) belirtiriz:

Zabbix kullanarak PostgreSQL'i izleme

  1. Bir istekle bir işleyici (işleyici) oluşturuyoruz, yani sonucu içerecek bir değişken başlatıyoruz:

Zabbix kullanarak PostgreSQL'i izleme

  1. İsteği yerine getiriyoruz:

Zabbix kullanarak PostgreSQL'i izleme

Hata isteğini kontrol etmek gerekir, ardından sonuç Zabbix Agent 2 işlemi tarafından alınır.

  1. Yeni metrik anahtarı kaydedin:

Zabbix kullanarak PostgreSQL'i izleme

Metrik kaydettikten sonra aracıyı yeni metrikle yeniden oluşturabilirsiniz.

Modül, web sitesinde Zabbix 5.0'dan başlayarak kullanılabilir https://www.zabbix.com/download. Zabbix'in bu sürümünde, parametreler ana bilgisayar ve bağlantı noktası aracılığıyla ayrı ayrı ayarlanır. Yakında çıkacak olan Zabbix 5.0.2'de bağlantı parametreleri tek bir URI'de paketlenecek.

Teşekkürler!

Faydalı linkler

GitHub Mamonsu

Mamonsu Belgeleri

Zabbix Git

Kaynak: habr.com

Yorum ekle