Patroni'ye Özel Zabbix Template'ı Oluşturma

Abdulkadir Erbas - Nov 6 - - Dev Community

Bu yazıda, Zabbix Server ile Patroni API'sini kullanarak patroni API'si için;

  • template group oluşturma,
  • host group oluşturma,
  • template oluşturma,
  • oluşturulan template'a host ekleme,
  • eklenen host'a item ekleme,
  • eklenen iteme processing ekleme

ve son olarakta patroni API'sinden gelen verileri görüntüleyip yazıyı tamamlayacağız.

 

1. Template Group Oluşturma

Data collection > Template groups kısmının sağ üstünde yer alan create template group butonuna tıklıyoruz.

Image description

2. Template Group'a İsim Verme

Açılan pencereden oluşturacağımız group adını belirliyoruz. Ben bu örnek için "Templates/Patroni PostgreSQL Cluster" yazdım.
Image description

3. Host Group Oluşturma

Data collection > Host groups kısmının sağ üstünde yer alan create host group butonuna tıklıyoruz.

Image description

4. Host Group'a İsim Verme

Açılan pencereden oluşturacağımız group adını belirliyoruz. Ben bu örnek için "Patroni postgresql clusters" yazdım.

Image description

Host Group'u eklendi

Image description

5. Template Oluşturma

Data collection > Templates kısmının sağ üstünde yer alan create template butonuna tıklıyoruz.

Image description

6. Oluşturulacak Template Bilgilerini Girme

Açılan pencereden oluşturacağımız Template adını belirliyoruz. Ben bu örnek için Template name kısmına "patroni node1 health check" yazdım. Template groups kısmına ise oluşturduğumuz template grubunu girdim.

Image description

7. Oluşturulan Template İçin Host Oluşturma

Eklenen template'in host kısmına tıklıyoruz.

Image description

açılan ekrandan sağ üstte yer alan create host butonuna tıklıyoruz.

Image description

8. Oluşturulacak Host'un Bilgilerini Girme

Bu Ekranda Host name, Templates, Host groups, interfaces alanlarını dolduruyoruz.

Image description

9. Oluşturulan Host'a İtem Ekleme

oluşturulan hostun items kısmına tıklyıoruz

Image description

açılan penceredenin sağ üstünde yer alan "Create item" butonuna tıklıyoruz.

Image description

10. Oluşturulacak İtem'ın Bilgilerini Girme

Name, Type, Key, Type of information, URL kısımlarını dolduruyoruz.
Bu örnekte ben;
Name: patroni node1 replication state
Type: HTTP agent
Key: http_data_replication_state
Type of information: Numeric(unsigned)
URL: http://node1ipadresi:8008/patroni
olarak girdim.

Patroni endpoint'ine http isteği atıp patroninin sağlık durumunu json formatında alacağız. Burada patronimizden gelen verileri json formatında almak istiyorsanız Type of information kısmına Text girmelisiniz. Ama ben patroninin bu json verisinin state durumunu alıp bu bilgiyi int türünden kaydedeğim için Numeric(unsigned) olarak girdim.

Image description

11. Oluşturulacak İtem'e Preprocessing Ekleme

Eğer gelen veriyi ön işleme adımına sokacaksanız preprocessing eklemelisiniz. Burada state durumu "running" mi değil mi? bilgisini int türünden tutmak istediğim için aşağıdaki gibi yapılandırdım.

Image description

Gelen JSON objesinden replication_state durumunu alacağımız için
JSONPath seçiyoruz ve parametresine $.replication_state yazıyoruz.
Gelen state durumu streaming olup olmadığını tespit etmek için Regular expression seçiyoruz ve parametre kısmına ^streaming$ yazıyoruz. Streaming olmaması durumunu ele almak için Custom of fail işlemini aktif hale getirip set to value kısmına 0 yazıyoruz.

Image description

12. Eklenen Item'den Gelen Verileri Görüntülemek

Gelen verileri görüntüleyebilmek için eklenen itemin sol kısmında yer alan ... butonuna tıklayıp 500 lates values kısmına tıklıyoruz.

Image description

Image description

Böylelikle patroni apisinden gelen veriler için template oluşturup zabbixte görüntülemiş olduk.

 

Patroni hakkında daha fazla bilgi için Patroni Nedir? başlıklı yazıma göz atabilirsiniz.

Patroni kurulumu hakkında bilgi almak için Patroni ve Etcd Kullanarak Cluster Yapılandırması başlıklı yazıma göz atabilirsiniz.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .