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.
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:
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.
- Mamonsu'nun Kurulumu. Mamonsu kaynaktan inşa edilebilir veya mevcut paketleri kullanabilir.
$ git clone ... && cd mamonsu && python setup.py
build && python setup.py install
- Bağlantı kurulumu. Agent.conf dosyasında PostgreSQL ve Zabbix Server için bağlantı parametrelerinin ayarlanması gerekmektedir.
/etc/mamonsu/agent.conf
- Şablonu Zabbix Sunucusuna Aktar.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- 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
- 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
Ş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.
-
Global parametreler aracı düzeyinde ayarlanır, Oturum ve Makrolar parametreleri veritabanı bağlantı parametrelerini tanımlar.
-
PostgreSQL'e bağlantı parametreleri - Oturumlar dosyada ayarlanır zabbix_agent2.conf.
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.
- 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.
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:
- Yeni bir metrik almak için bir dosya oluşturun:
zabbix/src/go/plugins/postgres/handler_uptime.go
- Paketi bağlarız ve metriklerin benzersiz anahtarını (anahtarlarını) belirtiriz:
- Bir istekle bir işleyici (işleyici) oluşturuyoruz, yani sonucu içerecek bir değişken başlatıyoruz:
- İsteği yerine getiriyoruz:
Hata isteğini kontrol etmek gerekir, ardından sonuç Zabbix Agent 2 işlemi tarafından alınır.
- Yeni metrik anahtarı kaydedin:
Metrik kaydettikten sonra aracıyı yeni metrikle yeniden oluşturabilirsiniz.
Modül, web sitesinde Zabbix 5.0'dan başlayarak kullanılabilir
Teşekkürler!
Faydalı linkler
Kaynak: habr.com