PostgreSQL-i jÀlgimine Zabbixiga

PostgreSQL-i jÀlgimine Zabbixiga
Darja Vilkova ettekande Zabbix Meetup Online

Soovin tutvustada teid meie ettevĂ”tte poolt Zabbixi abil arendatava PostgreSQL ja operatsioonisĂŒsteemi jĂ€lgimisvahendiga.

Oleme juba ammu valinud Zabbixi jÀlgimisvahendiks, kuna see on avatud lÀhtekoodiga platvorm, mida toetab aktiivne kogukond ja mis on Venemaal vÀga populaarne.

Loomasime aktiivse agendi — Mamonsu, mis pakkus paindlikumat jĂ€lgimist, kui toona standardtööriistad vĂ”imaldasid, ja kogus mÔÔdikud ja saatis need Zabbix Serverile. Meie ettevĂ”ttes kasutatakse Mamonsut auditeerimise kĂ€igus.

Mamonsu

Mamonsu on aktiivne agent (Zabbix Trapper) PostgreSQL ja operatsioonisĂŒsteemi jĂ€lgimiseks. Mamonsu (kirjutatud Pythonis) vĂ”imaldab seadistada PostgreSQL ja operatsioonisĂŒsteemi jĂ€lgimise parameetreid viie minutiga.

Mamonsul on tÀiendavad tööriistad:

  • mamonsu tune — kĂ€sk, mis redigeerib PostgreSQL-i konfigureerimisfaili seadistusparameetreid masina jaoks, kuhu Mamonsu agent on paigaldatud.
  • mamonsu report — kĂ€sk, mis genereerib vastuseid operatsioonisĂŒsteemi ja PostgreSQL kohta.

Mamonsu paigaldatakse andmebaasiserverisse, kogub teavet, koostab selle JSON-formaadis ja saadab visualiseerimiseks Zabbix Serverile, kus peab olema olemas ƥabloon selle mÔÔdikute jaoks.

PostgreSQL-i jÀlgimine Zabbixiga

Mamonsu töötsĂŒkkel

Mamonsu vÔimalused

  • TĂ”hus töö PostgreSQL-iga. PĂŒsiv ĂŒhendus PostgreSQL-iga on Mamonsu peamine eelis. Samuti on maksimaalne ĂŒhenduste arv vĂ”rdne maksimaalse andmebaaside arvuga, millega see on ĂŒhendatud.
  • Laaditavus. Mamonsu on tĂ€ielikult „pluginne“ agent ja iga plugina fikseeritud struktuuri ning Python’i suhteliselt lihtsa Ă”ppimise tĂ”ttu on lihtne luua uusi vĂ”i redigeerida olemasolevaid pluginaid, st mÔÔdikute kogumise parameetreid.
  • Lai mÔÔdikute katvus jĂ€lgimiseks sealhulgas PotgreSQL spetsiifiliste laienduste mÔÔdikud.
  • Kiire kĂ€ivitus, ootetavus „karbis“.
  • Ć abloonide ja konfigureerimisfailide eksportimine, samuti laadimine Zabbix Serverisse.
  • Ristplatvormilisus, mis on oluline meie klientidele, kes kasutavad erinevaid Linuxi distributsioone, sealhulgas kodumaiseid.
  • BSD-litsents.

Praegu pakume mitmeid pluginaid ja iga jĂ€rgmise versiooniga pĂŒĂŒame lisada midagi uut.

  • 14 pluginaid PostgreSQL jaoks,
  • 8 pluginaid OS Linuxile,
  • 4 pluginaid OS Windowsile.

Mamonsu kogub ĂŒle 110 PostgreSQL ja operatsioonisĂŒsteemide meetri:

  • 70 PostgreSQL meetrit,
  • 40 meetrit OS Linuxile,
  • 8 meetrit OS Windowsile.

PĂ”hilised meetrid hĂ”lmavad andmebaasi kĂ€ttesaadavust, ĂŒhenduste arvu, andmebaasi suurust, kontrolle, lugemis-/kirjutamiskiirus, lukustusi, automaatse tĂŒhjendamise protsesside arvu ja WAL-i genereerimise kiirus. TĂ€ielik loetelu saadaval olevatest meetritest ja kĂ”igi tööriistade ĂŒksikasjalik kirjeldus on saadaval hoidlad GitHubi lehelt.

PostgreSQL-i jÀlgimine Zabbixiga

Saadaval olevate meetrite loetelu GitHubi lehelt

Mamonsu kÀivitamine 5 minutiga

PostgreSQL ja operatsioonisĂŒsteemi jĂ€lgimise seadistamine Mamonsuga vĂ”tab vaid 5 minutit, jĂ€rgides 5 lihtsat sammu.

  1. Mamonsu paigaldamine. Mamonsu on vÔimalik ehitada allikakoodist vÔi kasutada saadaval olevaid pakette.

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

build && python setup.py install

  1. Ühenduste seadistamine. On vajalik mÀÀrata PostgreSQL ja Zabbix Serveri ĂŒhenduse parameetrid failis agent.conf.

/etc/mamonsu/agent.conf

  1. Mallide eksportimine Zabbix Serverisse.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. VĂ”rgu sĂ”lme lisamine Zabbix Serverisse. Eksportitud mall ĂŒhendatakse automaatselt uue vĂ”rgu sĂ”lmekohta Zabbix Serverisse.

$ mamonsu zabbix host create mamonsu-demo

  1. KĂ€ivitamine.

$ service mamonsu start

Mamonsu arengu suunad

Mamonsu arendamise raames plaanime tÀiustada mÔÔdikuid ja luua uusi pluginaid, nÀiteks eraldi tabelite suuruse jÀlgimise plugina. Samuti plaanime tÀiustada ja luua tÀiendavaid tööriistu ning laiendada automaatse seadistamise vÔimalusi kÀsu mamonsu tune.

PostgreSQL jÀlgimise moodul Zabbix Agent 2 koosseisus

PostgreSQL-iga ĂŒhenduse loomiseks kasutatakse kiiret ja populaarset draiverit pgx (PG draiver ja tööriistakomplekt Go jaoks).

Praegu kasutame kahte liidest: Exporter, mis kutsub kĂ€itlejat vĂ”tme kaudu, ja Zabbix Agent 2 Configurator, mis loeb ja kontrollib konfiguratsioonifailis mÀÀratud ĂŒhenduse parameetreid serveriga.

Oleme pĂŒĂŒdnud optimeerida andmebaasi tööd, grupeerides meetrid ja kasutades kĂ€itlejat (handler) meetrite ja meetrigrupikohta, samuti kasutades JSON sarnaseid madala taseme avastamise ja sĂ”ltuvate elementidena (dependency items).

PÔhiomadused

  • pĂŒsiva ĂŒhenduse loomine PostgreSQL-iga kontrollide vahel;
  • paindlike kĂŒsitluste intervallide toetamine;
  • ĂŒhilduvus PostgreSQL versioonidega alates 10 ja Zabbix Serveriga alates versioonist 4.4;
  • vĂ”imalus ĂŒhendada ja monitorida mitut PostgreSQL instantsi korraga, kuna Zabbix Agent 2 vĂ”imaldab luua mitu seanssi.

PostgreSQL ĂŒhenduse parameetrite tasemed

Kokku on saadaval kolm PostgreSQL ĂŒhenduse parameetrite taset, st ĂŒlesandeid ja seadistusi:

  • Globaalne,
  • Seansid,
  • Makrod.

  1. Globaalsete parameetrite mÀÀramine toimub agendi tasemel, seansi ja makrode parameetrid mÀÀravad ĂŒhenduse parameetrid andmebaasi.

  2. PostgreSQL ĂŒhenduse parameetrid — Seansid mÀÀratakse failis zabbix_agent2.conf.

PostgreSQL-i jÀlgimine Zabbixiga

PostgreSQL ĂŒhenduse parameetrid — Seansid

  • PĂ€rast vĂ”tit Seansid mÀÀra unikaalne seansi nimi, mis peab olema mÀÀratud vĂ”tmes (mallis).
  • Parameetrid URI ja Kasutajanimi on iga seansi jaoks kohustuslikud.
  • Kui andmebaasi nimetus ei ole mÀÀratud, kasutatakse PostgreSQL kĂ”ikide seansside jaoks ĂŒldist vaike nime, mis on samuti mÀÀratud konfiguratsioonifailis.

  1. PostgreSQL ĂŒhenduse parameetrid — Makrod mÀÀratakse mÔÔdiku vĂ”tmes mallis (sarnaselt Zabbix Agent 1 kasutatud meetodile), st need luuakse mallis ja seejĂ€rel mÀÀratakse vĂ”tme parameetriteks. Samal ajal on makrode jĂ€rjestus fikseeritud, st nĂ€iteks URI mÀÀratakse alati esimesena.

PostgreSQL-i jÀlgimine Zabbixiga

PostgreSQL ĂŒhenduse parameetrid — Makrod

PostgreSQL jĂ€lgimismoodul sisaldab juba ĂŒle 95 mÔÔdiku, mis vĂ”imaldavad katta ĂŒsna laia PostgreSQL parameetrite valikut, sealhulgas:

  • ĂŒhenduste arv,
  • andmebaaside maht,
  • wal-failide arhiivimine,
  • kontrollpunktid,
  • pĂ€rli paisunud tabelite arv,
  • replitseerimise staatus,
  • repliikkaotuse viivitus.

PostgreSQL mÔÔdikud ei ole informatiivsed ilma operatsioonisĂŒsteemi parameetriteta. Kuid Zabbix Agent 2 oskab juba koguda operatsioonisĂŒsteemi parameetreid, seega saame lihtsalt vajalikud mallid vĂ”rgu sĂ”lmele ĂŒhendada, et saada tĂ€ielik ĂŒlevaade.

KĂ€sitseja (handler)

KĂ€sitseja (handler) — mooduli peamine element, kus toimub pĂ€ring ja mis vĂ”imaldab mÔÔdikute saamist.

Et saada lihtne mÔÔdik:

  1. Loo fail uue mÔÔdiku jaoks:

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

  1. Ühenda pakk ja mÀÀra unikaalne mÔÔdiku vĂ”ti (vĂ”tmed):

PostgreSQL-i jÀlgimine Zabbixiga

  1. Loo kÀsitseja (handler) pÀringuga, st koosta muutuja, kuhu tulemus lÀheb:

PostgreSQL-i jÀlgimine Zabbixiga

  1. Tee pÀring:

PostgreSQL-i jÀlgimine Zabbixiga

On vajalik kontrollida pĂ€ringut vigade osas, pĂ€rast mida tulemus vĂ”etakse ĂŒle Zabbix Agent 2 protsessi poolt.

  1. Registreerime uue mÔÔdiku vÔtme:

PostgreSQL-i jÀlgimine Zabbixiga

MÔÔdiku registreerimise jÀrel on vÔimalik agent uuesti kompileerida koos uue mÔÔdiku.

Moodul on saadaval alates Zabbix 5.0 veebilehel https://www.zabbix.com/download. Selles versioonis seadistatakse Zabbixi parameetrid eraldi hosti ja pordi kaudu. Versioonis Zabbix 5.0.2, mis tuleb peagi vĂ€lja, komponeeritakse ĂŒhenduse parameetrid ĂŒhte URI-sse.

AitÀh tÀhelepanu eest!

Kasulikud lingid

GitHub Mamonsu

Mamonsu dokumentatsioon

Zabbix Git

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster