Nadgledanje PostgreSQL-a pomoću Zabbixa

Nadgledanje PostgreSQL-a pomoću Zabbixa
Izvještaj Darije Vilkove za Zabbix Meetup Online

Želim da vas upoznam sa alatom za praćenje PostgreSQL-a i operativnog sistema, koji razvija naša kompanija koristeći Zabbix.

Dugo smo odabrali Zabbix kao naš alat za praćenje jer je to platforma otvorenog koda koju podržava aktivna zajednica koja je vrlo popularna u Rusiji.

Napravili smo aktivnog agenta - Mamonsu, koji je omogućio fleksibilniji nadzor nego što su to dopuštali standardni alati u to vrijeme, te osigurao prikupljanje metrika i njihovo slanje na Zabbix server. U našoj kompaniji, Mamonsu se koristi u reviziji.

Mamonsu

Mamonsu je aktivni agent (Zabbix Trapper) za praćenje PostgreSQL-a i operativnog sistema. Mamonsu (napisan u Pythonu) vam omogućava da konfigurišete postavke za nadgledanje PostgreSQL-a i operativnog sistema za pet minuta.

Mamonsu ima dodatne alate:

  • mamonsu tune je naredba koja uređuje postavke u PostgreSQL konfiguracijskoj datoteci za mašinu na kojoj je instaliran Mamonsu agent.
  • mamonsu izvještaj je komanda koja generiše odgovore o operativnom sistemu i PostgreSQL-u.

Mamonsu je instaliran na DBMS serveru, prikuplja informacije, komponuje ih u JSON, koji ih šalje na Zabbix server na vizualizaciju, gdje treba da postoji šablon za njegove metrike.

Nadgledanje PostgreSQL-a pomoću Zabbixa

Mamonsu radna shema

Features Mamonsu

  • Efikasan rad sa PostgreSQL-om. Trajna veza sa PostgreSQL-om je glavna prednost Mamonsu-a. U ovom slučaju, maksimalni broj veza jednak je maksimalnom broju baza podataka na koje se povezuje.
  • Proširivost. Mamonsu je potpuno "plugin" agent, a zbog fiksne strukture svakog dodatka i relativne jednostavnosti Pythona, lako se može naučiti kako pisati nove ili uređivati ​​standardne dodatke, tj. parametre prikupljanja metrika.
  • Široka pokrivenost metrike praćenja za PotgreSQL uključujući metriku specifične za proširenje.
  • brzi ručak, dostupnost izvan kutije.
  • Učitavanje šablona i konfiguracionih fajlova, kao i otpremanje na Zabbix server.
  • Više platformi, što je važno za naše kupce koji koriste različite Linux distribucije, uključujući i domaće.
  • Licenca BSD klauzule.

Trenutno nudimo puno dodataka iu svakoj sljedećoj verziji pokušavamo dodati nešto novo.

  • 14 dodataka za PostgreSQL,
  • 8 dodataka za OS Linux,
  • 4 dodatka za OS Windows.

Mamonsu prikuplja preko 110 metrika PostgreSQL i operativnog sistema:

  • 70 PostgreSQL metrika,
  • 40 OS Linux metrika,
  • 8 OS Windows metrika.

Ključne metrike uključuju dostupnost DBMS-a, broj konekcija, veličinu baze podataka, kontrolne tačke, brzinu čitanja/pisanja, zaključavanja, broj procesa automatskog vakuuma i brzinu generisanja WAL-a. Potpuna lista dostupnih metrika, kao i detaljan opis svih alata, dostupna je u spremišta na GitHub stranici.

Nadgledanje PostgreSQL-a pomoću Zabbixa

Lista dostupnih metrika na GitHubu

Pokreni Mamonsu za 5 minuta

Da biste podesili praćenje PostgreSQL-a i operativnog sistema koristeći Mamonsu, možete to učiniti za 5 minuta slijedeći 5 jednostavnih koraka.

  1. Instaliranje Mamonsu. Mamonsu se može napraviti iz izvora ili koristiti dostupne pakete.

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

build && python setup.py install

  1. Podešavanje veze. Potrebno je podesiti parametre povezivanja za PostgreSQL i Zabbix Server u datoteci agent.conf.

/etc/mamonsu/agent.conf

  1. Izvezite šablon na Zabbix server.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Dodavanje hosta na Zabbix server. Izvezeni predložak će se automatski povezati sa novim hostom na Zabbix serveru.

$ mamonsu zabbix host create mamonsu-demo

  1. Запуск.

$ service mamonsu start

Smjerovi razvoja Mamonsu

Kao dio razvoja Mamonsua, planiramo precizirati metriku i kreirati nove dodatke, kao što je dodatak za praćenje veličine pojedinačnih tabela. Takođe planiramo da poboljšamo i kreiramo dodatne alate, kao i da proširimo mogućnosti automatskog podešavanja putem komande mamonsu tune.

PostgreSQL modul za praćenje kao dio Zabbix Agenta 2

Brz i popularan drajver se koristi za povezivanje na PostgreSQL pgx (PG drajver i komplet alata za Go).

Do sada koristimo dva interfejsa: Exporter, koji poziva rukovaoca po ključu, i Configurator Zabbix Agent 2, koji čita i provjerava parametre veze sa serverom navedenim u konfiguracijskoj datoteci.

Pokušali smo optimizirati rad DBMS-a grupisanjem metrika i korištenjem rukovatelja (handlera) za metriku i metričke grupe, kao i korištenjem grupa metrika u JSON-u kao zavisnih varijabli (stavki zavisnosti) i otkrivanja niskog nivoa (pravila otkrivanja). ).

Ključne karakteristike

  • održavanje trajne veze sa PostgreSQL između provjera;
  • podrška za fleksibilne intervale glasanja;
  • kompatibilnost sa PostgreSQL verzijama počevši od 10 i Zabbix Serverom od verzije 4.4;
  • mogućnost povezivanja i nadgledanja više PostgreSQL instanci u isto vrijeme zbog činjenice da Zabbix Agent 2 omogućava kreiranje više sesija.

Nivoi parametara PostgreSQL veze

Ukupno su dostupna tri nivoa PostgreSQL parametara veze, odnosno zadaci i postavke:

  • Globalno,
  • sjednica,
  • Makroi.

  1. Globalni parametri su postavljeni na razini agenta, parametri Sesija i Makroi definiraju parametre povezivanja baze podataka.

  2. Parametri povezivanja na PostgreSQL - Sesije su postavljene u datoteci zabbix_agent2.conf.

Nadgledanje PostgreSQL-a pomoću Zabbixa

Opcije PostgreSQL veze - Sesije

  • Nakon ključne riječi Sessions specificirano je jedinstveno ime sesije, koje mora biti navedeno u ključu (šablonu).
  • parametri URI и UserName potrebno za svaku sesiju.
  • Ako osnovno ime nije navedeno, koristi se zadano zajedničko ime baze za sve PostgreSQL sesije, koje je također postavljeno u konfiguracijskoj datoteci.

  1. Parametri povezivanja na PostgreSQL - Makroi se postavljaju u metričkom ključu u šablonu (slično metodi korištenoj u Zabbix Agentu 1), tj. kreiraju se u šablonu i zatim specificiraju kao parametri u ključu. U ovom slučaju, redoslijed makroa je fiksan, tj. URI uvijek na prvom mjestu.

Nadgledanje PostgreSQL-a pomoću Zabbixa

PostgreSQL parametri veze - Makroi

PostgreSQL modul za praćenje već uključuje više od 95 metrika koje vam omogućavaju da pokrijete prilično širok raspon PostgreSQL parametara, uključujući:

  • broj priključaka
  • veličina baze podataka,
  • arhiviranje wal fajlova,
  • kontrolni punktovi,
  • broj "nadutih" stolova,
  • status replikacije,
  • kašnjenje replike.

PostgreSQL metrika nije informativna bez parametara operativnog sistema. Ali Zabbix Agent 2 već zna kako prikupiti parametre operativnog sistema, tako da da bismo dobili potpunu sliku, jednostavno povezujemo potrebne šablone sa hostom.

Handler

Rukovalac je glavna jedinica modula u kojoj se izvršava sam zahtjev i koji vam omogućava primanje metrike.

Da dobijete jednostavnu metriku:

  1. Kreirajte fajl da dobijete novu metriku:

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

  1. Povezujemo paket i navodimo jedinstveni ključ (ključeve) metrike:

Nadgledanje PostgreSQL-a pomoću Zabbixa

  1. Kreiramo rukovalac (handler) sa zahtjevom, tj. iniciramo varijablu koja će sadržavati rezultat:

Nadgledanje PostgreSQL-a pomoću Zabbixa

  1. Izvršavamo zahtjev:

Nadgledanje PostgreSQL-a pomoću Zabbixa

Potrebno je provjeriti zahtjev za greške, nakon čega će rezultat preuzeti proces Zabbix Agent 2.

  1. Registrirajte novi metrički ključ:

Nadgledanje PostgreSQL-a pomoću Zabbixa

Nakon registracije metrike, možete ponovo izgraditi agenta s novom metrikom.

Modul je dostupan počevši od Zabbixa 5.0 na web stranici https://www.zabbix.com/download. U ovoj verziji Zabbixa, parametri se postavljaju odvojeno preko hosta i porta. U Zabbixu 5.0.2, koji će uskoro biti objavljen, parametri veze će biti upakovani u jedan URI.

Spasibo za vnimanie!

korisni linkovi

GitHub Mamonsu

Mamonsu Documentation

Zabbix Git

izvor: www.habr.com

Dodajte komentar