PostgreSQL uzraudzība, izmantojot Zabbix

PostgreSQL uzraudzība, izmantojot Zabbix
Zabbix Meetup Online reportāža Daria Vilkova

Vēlos jūs iepazīstināt ar PostgreSQL un operētājsistēmas uzraudzības rīku, ko mūsu uzņēmums izstrādā, izmantojot Zabbix.

Mēs jau ilgu laiku esam izvēlējuÅ”ies Zabbix kā mÅ«su uzraudzÄ«bas rÄ«ku, jo tā ir atvērtā pirmkoda platforma, ko atbalsta aktÄ«va kopiena, kas ir ļoti populāra Krievijā.

Mēs izveidojām aktÄ«vo aÄ£entu - Mamonsu, kas nodroÅ”ināja elastÄ«gāku uzraudzÄ«bu, nekā tolaik ļāva standarta rÄ«ki, un nodroÅ”ināja metrikas apkopoÅ”anu un nosÅ«tÄ«Å”anu uz Zabbix Server. MÅ«su uzņēmumā auditā tiek izmantots Mamonsu.

Mamonsu

Mamonsu ir aktÄ«vs aÄ£ents (Zabbix Trapper) PostgreSQL un operētājsistēmas uzraudzÄ«bai. Mamonsu (rakstÄ«ts Python) ļauj konfigurēt PostgreSQL un operētājsistēmas uzraudzÄ«bas iestatÄ«jumus piecu minÅ«Å”u laikā.

Mamonsu ir papildu rīki:

  • mamonsu tune ir komanda, kas rediģē iestatÄ«jumus PostgreSQL konfigurācijas failā maŔīnai, kurā ir instalēts Mamonsu aÄ£ents.
  • mamonsu report ir komanda, kas Ä£enerē atbildes par operētājsistēmu un PostgreSQL.

Mamonsu tiek instalēts DBVS serverī, apkopo informāciju, sastāda to JSON, kas to nosūta uz Zabbix Server vizualizācijai, kur vajadzētu būt tās metrikas veidnei.

PostgreSQL uzraudzība, izmantojot Zabbix

Mamonsu darba shēma

Ietver Mamonsu

  • EfektÄ«vs darbs ar PostgreSQL. PastāvÄ«gs savienojums ar PostgreSQL ir galvenā Mamonsu priekÅ”rocÄ«ba. Å ajā gadÄ«jumā maksimālais savienojumu skaits ir vienāds ar maksimālo datu bāzu skaitu, ar kurām tas savienojas.
  • PaplaÅ”ināmÄ«ba. Mamonsu ir pilnÄ«bā "spraudņu" aÄ£ents, un katra spraudņa fiksētās struktÅ«ras un Python relatÄ«vās vienkārŔības dēļ var viegli iemācÄ«ties rakstÄ«t jaunus vai rediģēt standarta spraudņus, t.i., metrikas vākÅ”anas parametrus.
  • PlaÅ”s uzraudzÄ«bas metrikas pārklājums PotgreSQL, tostarp paplaÅ”inājumam raksturÄ«gu metriku.
  • ātra palaiÅ”ana, pieejamÄ«ba ārpus kastes.
  • Veidņu un konfigurācijas failu augÅ”upielāde, kā arÄ« augÅ”upielādi Zabbix serverÄ«.
  • Starpplatformu, kas ir svarÄ«gi mÅ«su klientiem, kuri izmanto dažādus Linux izplatÄ«jumus, tostarp vietējos.
  • BSD klauzulas licence.

Å obrÄ«d piedāvājam ļoti daudz spraudņu un katrā nākamajā versijā cenÅ”amies pievienot ko jaunu.

  • 14 spraudņi PostgreSQL,
  • 8 spraudņi operētājsistēmai OS Linux,
  • 4 spraudņi operētājsistēmai Windows.

Mamonsu apkopo vairāk nekā 110 PostgreSQL un operētājsistēmas metrikas:

  • 70 PostgreSQL metrika,
  • 40 OS Linux rādÄ«tāji,
  • 8 OS Windows metrika.

Galvenie rādÄ«tāji ietver DBVS pieejamÄ«bu, savienojumu skaitu, datu bāzes lielumu, kontrolpunktus, lasÄ«Å”anas/rakstÄ«Å”anas ātrumu, slēdzenes, autovakuuma procesu skaitu un WAL Ä£enerÄ“Å”anas ātrumu. Pilns pieejamo metrikas saraksts, kā arÄ« detalizēts visu rÄ«ku apraksts ir pieejams krātuves vietnē GitHub.

PostgreSQL uzraudzība, izmantojot Zabbix

Vietnē GitHub pieejamo metrikas saraksts

Palaidiet Mamonsu 5 minūtēs

Lai iestatÄ«tu PostgreSQL un operētājsistēmas uzraudzÄ«bu, izmantojot Mamonsu, varat to paveikt 5 minÅ«tēs, veicot 5 vienkārÅ”as darbÄ«bas.

  1. Mamonsu instalÄ“Å”ana. Mamonsu var izveidot no avota vai izmantot pieejamās pakotnes.

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

build && python setup.py install

  1. Savienojuma iestatīŔana. Failā agent.conf ir jāiestata savienojuma parametri PostgreSQL un Zabbix Server.

/etc/mamonsu/agent.conf

  1. Eksportējiet veidni uz Zabbix serveri.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Saimnieka pievienoÅ”ana Zabbix serverim. Eksportētā veidne tiks automātiski savienota ar jauno resursdatoru Zabbix serverÄ«.

$ mamonsu zabbix host create mamonsu-demo

  1. Š—Š°ŠæусŠŗ.

$ service mamonsu start

Mamonsu attīstības virzieni

Mamonsu izstrādes ietvaros mēs plānojam precizēt metriku un izveidot jaunus spraudņus, piemēram, spraudni atseviŔķu tabulu lieluma uzraudzÄ«bai. Mēs arÄ« plānojam uzlabot un izveidot papildu rÄ«kus, kā arÄ« paplaÅ”ināt automātiskās regulÄ“Å”anas iespējas, izmantojot komandu mamonsu melodija.

PostgreSQL uzraudzības modulis kā daļa no Zabbix Agent 2

Lai izveidotu savienojumu ar PostgreSQL, tiek izmantots ātrs un populārs draiveris pgx (PG draiveris un rīku komplekts priekŔ Go).

LÄ«dz Å”im mēs izmantojam divas saskarnes: Exporter, kas izsauc apstrādātāju pēc atslēgas, un Configurator Zabbix Agent 2, kas nolasa un pārbauda savienojuma parametrus ar konfigurācijas failā norādÄ«to serveri.

Mēs centāmies optimizēt DBVS darbu, grupējot metriku un izmantojot apdarinātāju (apdarinātāju) metrikām un metrikas grupām, kā arÄ« izmantojot metrikas grupas JSON kā atkarÄ«gus mainÄ«gos (atkarÄ«bas vienumi) un zema lÄ«meņa atklāŔanu (atklāŔanas kārtulas). ).

Galvenās iezīmes

  • pastāvÄ«ga savienojuma uzturÄ“Å”ana ar PostgreSQL starp pārbaudēm;
  • atbalsts elastÄ«giem aptaujas intervāliem;
  • savietojamÄ«ba ar PostgreSQL versijām, sākot no 10, un Zabbix Server, sākot no versijas 4.4;
  • iespēja vienlaikus savienot un pārraudzÄ«t vairākus PostgreSQL gadÄ«jumus, jo Zabbix Agent 2 ļauj izveidot vairākas sesijas.

PostgreSQL savienojuma parametru līmeņi

Kopumā ir pieejami trīs PostgreSQL savienojuma parametru līmeņi, t.i., uzdevumi un iestatījumi:

  • Globāls,
  • sesija,
  • Makro.

  1. Globālie parametri tiek iestatīti aģenta līmenī, parametri Sesija un Makro nosaka datu bāzes savienojuma parametrus.

  2. Savienojuma parametri ar PostgreSQL ā€” sesijas ir iestatÄ«tas failā zabbix_agent2.conf.

PostgreSQL uzraudzība, izmantojot Zabbix

PostgreSQL savienojuma opcijas ā€” sesijas

  • Pēc atslēgvārda Sessions tiek norādÄ«ts unikāls sesijas nosaukums, kas jānorāda atslēgā (veidnē).
  • Parametrus URI Šø Lietotājvārds nepiecieÅ”ams katrai sesijai.
  • Ja bāzes nosaukums nav norādÄ«ts, tiek izmantots noklusējuma kopējais bāzes nosaukums visām PostgreSQL sesijām, kas arÄ« ir iestatÄ«ts konfigurācijas failā.

  1. Savienojuma parametri ar PostgreSQL ā€” makro tiek iestatÄ«ti veidnes metrikas atslēgā (lÄ«dzÄ«gi Zabbix Agent 1 izmantotajai metodei), t.i., tie tiek izveidoti veidnē un pēc tam norādÄ«ti kā parametri atslēgā. Å ajā gadÄ«jumā makro secÄ«ba ir fiksēta, t.i., piemēram, URI vienmēr uzskaitÄ«ti pirmajā vietā.

PostgreSQL uzraudzība, izmantojot Zabbix

PostgreSQL savienojuma parametri - Makro

PostgreSQL uzraudzības modulis jau ietver vairāk nekā 95 metrikas, kas ļauj aptvert diezgan plaŔu PostgreSQL parametru klāstu, tostarp:

  • savienojumu skaits
  • datu bāzes lielums,
  • wal failu arhivÄ“Å”ana,
  • kontrolpunkti,
  • "uzpÅ«sto" tabulu skaits,
  • replikācijas statuss,
  • replikas aizkave.

PostgreSQL metrika nav informatÄ«va bez operētājsistēmas parametriem. Bet Zabbix Agent 2 jau zina, kā savākt operētājsistēmas parametrus, tāpēc, lai iegÅ«tu pilnu attēlu, mēs vienkārÅ”i savienojam nepiecieÅ”amās veidnes ar resursdatoru.

Apdarinātājs

Apdarinātājs ir moduļa galvenā vienība, kurā tiek izpildīts pats pieprasījums un kas ļauj saņemt metriku.

Lai iegūtu vienkārŔu metriku:

  1. Izveidojiet failu, lai iegūtu jaunu metriku:

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

  1. Mēs savienojam paketi un norādām unikālo metrikas atslēgu (atslēgas):

PostgreSQL uzraudzība, izmantojot Zabbix

  1. Mēs izveidojam apdarinātāju (apdarinātāju) ar pieprasījumu, t.i., mēs iniciējam mainīgo, kas saturēs rezultātu:

PostgreSQL uzraudzība, izmantojot Zabbix

  1. Mēs izpildām pieprasījumu:

PostgreSQL uzraudzība, izmantojot Zabbix

NepiecieÅ”ams pārbaudÄ«t kļūdu pieprasÄ«jumu, pēc kura rezultātu saņems Zabbix Agent 2 process.

  1. Reģistrējiet jauno metrikas atslēgu:

PostgreSQL uzraudzība, izmantojot Zabbix

Pēc metrikas reÄ£istrÄ“Å”anas varat atjaunot aÄ£entu ar jauno metriku.

Modulis ir pieejams vietnē, sākot no Zabbix 5.0 https://www.zabbix.com/download. Å ajā Zabbix versijā parametri tiek iestatÄ«ti atseviŔķi, izmantojot resursdatoru un portu. Programmā Zabbix 5.0.2, kas drÄ«zumā tiks izlaista, savienojuma parametri tiks iesaiņoti vienā URI.

Š”ŠæŠ°ŃŠøŠ±Š¾ Š·Š° Š²Š½ŠøŠ¼Š°Š½ŠøŠµ!

Noderīgas saites

GitHub Mamonsu

Mamonsu dokumentācija

Zabbix Git

Avots: www.habr.com

Pievieno komentāru