Zabbix istifadə edərək PostgreSQL-ə nəzarət

Zabbix istifadə edərək PostgreSQL-ə nəzarət
Zabbix Meetup Online üçün Daria Vilkovanın reportajı

Sizi şirkətimiz tərəfindən Zabbix-dən istifadə etməklə hazırlanan PostgreSQL və əməliyyat sisteminin monitorinq aləti ilə tanış etmək istəyirəm.

Biz Zabbix-i uzun müddətdir monitorinq alətimiz kimi seçmişik, çünki o, Rusiyada çox populyar olan aktiv icma tərəfindən dəstəklənən açıq mənbə platformasıdır.

Biz o zaman icazə verilən standart alətlərdən daha çevik monitorinqi təmin edən və metriklərin toplanması və Zabbix Serverə göndərilməsini təmin edən aktiv agent - Mamonsu yaratdıq. Şirkətimizdə auditdə Mamonsudan istifadə olunur.

Mamonsu

Mamonsu PostgreSQL və əməliyyat sisteminin monitorinqi üçün aktiv agentdir (Zabbix Trapper). Mamonsu (Python dilində yazılmışdır) beş dəqiqə ərzində PostgreSQL və əməliyyat sisteminin monitorinq parametrlərini konfiqurasiya etməyə imkan verir.

Mamonsu əlavə alətlərə malikdir:

  • mamonsu tune Mamonsu agentinin quraşdırıldığı maşın üçün PostgreSQL konfiqurasiya faylındakı parametrləri redaktə edən əmrdir.
  • mamonsu hesabatı əməliyyat sistemi və PostgreSQL haqqında cavablar yaradan əmrdir.

Mamonsu DBMS serverində quraşdırılır, məlumat toplayır, onu JSON-da tərtib edir və onu vizuallaşdırma üçün Zabbix Serverinə göndərir, burada onun ölçüləri üçün şablon olmalıdır.

Zabbix istifadə edərək PostgreSQL-ə nəzarət

Mamonsu iş sxemi

Xüsusiyyətləri Mamonsu

  • PostgreSQL ilə səmərəli iş. PostgreSQL-ə davamlı əlaqə Mamonsunun əsas üstünlüyüdür. Bu halda, qoşulmaların maksimum sayı onun qoşulduğu verilənlər bazalarının maksimum sayına bərabərdir.
  • Genişlənmə qabiliyyəti. Mamonsu tam “plugin” agentidir və hər bir plaqinin sabit strukturu və Python-un nisbi sadəliyi sayəsində yeni və ya standart plaginlərin, yəni metriklərin toplanması parametrlərinin necə yazılmasını və ya redaktə edilməsini asanlıqla öyrənmək olar.
  • Monitorinq göstəricilərinin geniş əhatəsi PotgreSQL üçün genişlənməyə xüsusi ölçülər daxil olmaqla.
  • sürətli işə salma, qutudan kənarda mövcudluq.
  • Şablonların və konfiqurasiya fayllarının yüklənməsi, həmçinin Zabbix Serverə yükləmək.
  • Çapraz platforma, bu, yerli olanlar da daxil olmaqla, müxtəlif Linux paylamalarından istifadə edən müştərilərimiz üçün vacibdir.
  • BSD-bənd lisenziyası.

Hal-hazırda biz çoxlu plaginlər təklif edirik və hər növbəti versiyada yeni bir şey əlavə etməyə çalışırıq.

  • PostgreSQL üçün 14 plagin,
  • OS Linux üçün 8 plagin,
  • OS Windows üçün 4 plagin.

Mamonsu 110-dan çox PostgreSQL və əməliyyat sistemi ölçülərini toplayır:

  • 70 PostgreSQL ölçüləri,
  • 40 OS Linux ölçüləri,
  • 8 OS Windows ölçüləri.

Əsas ölçülərə DBMS-nin mövcudluğu, bağlantıların sayı, verilənlər bazası ölçüsü, yoxlama nöqtələri, oxu/yazma sürəti, kilidlər, avtovakuum proseslərinin sayı və WAL yaratma sürəti daxildir. Mövcud ölçülərin tam siyahısı, eləcə də bütün alətlərin ətraflı təsviri burada mövcuddur depolar GitHub saytında.

Zabbix istifadə edərək PostgreSQL-ə nəzarət

GitHub-da mövcud ölçülərin siyahısı

5 dəqiqə ərzində Mamonsunu işə salın

Mamonsu istifadə edərək PostgreSQL və əməliyyat sisteminin monitorinqini qurmaq üçün 5 sadə addımı izləməklə bunu 5 dəqiqə ərzində edə bilərsiniz.

  1. Mamonsu quraşdırılması. Mamonsu mənbədən tikilə və ya mövcud paketlərdən istifadə edilə bilər.

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

build && python setup.py install

  1. Bağlantının qurulması. agent.conf faylında PostgreSQL və Zabbix Server üçün əlaqə parametrlərini təyin etmək lazımdır.

/etc/mamonsu/agent.conf

  1. Şablonu Zabbix Serverə ixrac edin.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Zabbix Serverə host əlavə edilir. İxrac edilmiş şablon avtomatik olaraq Zabbix Serverdə yeni hosta qoşulacaq.

$ mamonsu zabbix host create mamonsu-demo

  1. Başlanğıc.

$ service mamonsu start

Mamonsu İnkişaf istiqamətləri

Mamonsu-nun inkişafının bir hissəsi olaraq, biz ölçüləri dəqiqləşdirməyi və fərdi cədvəllərin ölçüsünü izləmək üçün plagin kimi yeni plaginlər yaratmağı planlaşdırırıq. Biz həmçinin əlavə alətləri təkmilləşdirməyi və yaratmağı, həmçinin komanda vasitəsilə avtomatik tənzimləmə imkanlarını genişləndirməyi planlaşdırırıq mamonsu melodiya.

Zabbix Agent 2-nin bir hissəsi kimi PostgreSQL monitorinq modulu

PostgreSQL-ə qoşulmaq üçün sürətli və populyar sürücüdən istifadə olunur pgx (PG sürücüsü və Go üçün alətlər dəsti).

İndiyə qədər biz iki interfeysdən istifadə edirik: işləyicini açarla çağıran Exporter və konfiqurasiya faylında göstərilən serverlə əlaqə parametrlərini oxuyan və yoxlayan Konfiqurator Zabbix Agent 2.

Metrikləri qruplaşdırmaq və ölçülər və metrik qruplar üçün işləyicidən (işləyici) istifadə etməklə, həmçinin JSON-da asılı dəyişənlər (asılılıq elementləri) və aşağı səviyyəli kəşf (kəşf qaydaları) kimi metrik qruplarından istifadə etməklə DBMS-nin işini optimallaşdırmağa çalışdıq. ).

Əsas xüsusiyyətlər

  • yoxlamalar arasında PostgreSQL ilə davamlı əlaqəni saxlamaq;
  • çevik səsvermə intervallarına dəstək;
  • 10-dan başlayan PostgreSQL versiyaları və 4.4 versiyasından başlayaraq Zabbix Server ilə uyğunluq;
  • Zabbix Agent 2-nin birdən çox seans yaratmağa imkan verdiyinə görə eyni vaxtda birdən çox PostgreSQL instansiyasına qoşulmaq və nəzarət etmək imkanı.

PostgreSQL Bağlantı Parametr Səviyyələri

Ümumilikdə PostgreSQL əlaqə parametrlərinin üç səviyyəsi mövcuddur, yəni tapşırıqlar və parametrlər:

  • Qlobal,
  • sessiya,
  • Makrolar.

  1. Qlobal parametrlər agent səviyyəsində qurulur, Sessiya və Makros parametrləri verilənlər bazası əlaqə parametrlərini müəyyən edir.

  2. PostgreSQL-ə qoşulma parametrləri - Sessiyalar faylda müəyyən edilir zabbix_agent2.conf.

Zabbix istifadə edərək PostgreSQL-ə nəzarət

PostgreSQL Bağlantı Seçimləri - Sessiyalar

  • Açar sözdən sonra Sessions açarda (şablonda) göstərilməli olan unikal sessiya adı müəyyən edilir.
  • Parameters URI и İstifadəçi adı hər seans üçün tələb olunur.
  • Baza adı göstərilməyibsə, bütün PostgreSQL seansları üçün standart ümumi əsas ad istifadə olunur ki, bu da konfiqurasiya faylında təyin olunur.

  1. PostgreSQL-ə qoşulma parametrləri - Makrolar şablondakı metrik açarda təyin olunur (Zabbix Agent 1-də istifadə olunan metoda bənzər), yəni onlar şablonda yaradılır və sonra açarda parametrlər kimi göstərilir. Bu halda, makroların ardıcıllığı sabitdir, yəni, məsələn, URI həmişə birinci sıralanır.

Zabbix istifadə edərək PostgreSQL-ə nəzarət

PostgreSQL əlaqə parametrləri - Makroslar

PostgreSQL monitorinq modulu artıq sizə PostgreSQL parametrlərinin kifayət qədər geniş spektrini əhatə etməyə imkan verən 95-dən çox metrikanı ehtiva edir, o cümlədən:

  • əlaqələrin sayı
  • verilənlər bazası ölçüsü,
  • wal fayllarının arxivləşdirilməsi,
  • nəzarət məntəqələri,
  • "şişmiş" masaların sayı,
  • replikasiya statusu,
  • replika gecikməsi.

PostgreSQL ölçüləri əməliyyat sistemi parametrləri olmadan informativ deyil. Lakin Zabbix Agent 2 artıq əməliyyat sisteminin parametrlərini necə toplamaq lazım olduğunu bilir, ona görə də tam mənzərəni əldə etmək üçün sadəcə olaraq lazımi şablonları hosta bağlayırıq.

İşləyən

İşləyici, sorğunun özünün icra olunduğu və ölçüləri qəbul etməyə imkan verən modulun əsas vahididir.

Sadə bir metrik əldə etmək üçün:

  1. Yeni metrik əldə etmək üçün fayl yaradın:

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

  1. Paketi bağlayırıq və metriklərin unikal açarını (açarlarını) təyin edirik:

Zabbix istifadə edərək PostgreSQL-ə nəzarət

  1. Sorğu ilə işləyici (işləyici) yaradırıq, yəni nəticəni ehtiva edən dəyişəni işə salırıq:

Zabbix istifadə edərək PostgreSQL-ə nəzarət

  1. Müraciəti yerinə yetiririk:

Zabbix istifadə edərək PostgreSQL-ə nəzarət

Sorğunu səhvlər üçün yoxlamaq lazımdır, bundan sonra nəticə Zabbix Agent 2 prosesi tərəfindən götürüləcək.

  1. Yeni metrik açarı qeydiyyatdan keçirin:

Zabbix istifadə edərək PostgreSQL-ə nəzarət

Metrik qeydiyyatdan keçdikdən sonra agenti yeni metrik ilə yenidən qura bilərsiniz.

Modul saytda Zabbix 5.0-dan başlayaraq mövcuddur https://www.zabbix.com/download. Zabbix-in bu versiyasında parametrlər host və port vasitəsilə ayrıca təyin edilir. Tezliklə buraxılacaq Zabbix 5.0.2-də əlaqə parametrləri vahid URI-də paketlənəcək.

Diqqətiniz üçün təşəkkür edirik!

Faydalı linklər

GitHub Mamonsu

Mamonsu Sənədləri

Zabbix Git

Mənbə: www.habr.com

Добавить комментарий