
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.

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 GitHubi lehelt.

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.
- 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
- Ăhenduste seadistamine. On vajalik mÀÀrata PostgreSQL ja Zabbix Serveri ĂŒhenduse parameetrid failis agent.conf.
/etc/mamonsu/agent.conf
- Mallide eksportimine Zabbix Serverisse.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- VĂ”rgu sĂ”lme lisamine Zabbix Serverisse. Eksportitud mall ĂŒhendatakse automaatselt uue vĂ”rgu sĂ”lmekohta Zabbix Serverisse.
$ mamonsu zabbix host create mamonsu-demo
- 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 (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.
Globaalsete parameetrite mÀÀramine toimub agendi tasemel, seansi ja makrode parameetrid mÀÀravad ĂŒhenduse parameetrid andmebaasi.
PostgreSQL ĂŒhenduse parameetrid â Seansid mÀÀratakse failis zabbix_agent2.conf.

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.
- 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 ĂŒ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:
- Loo fail uue mÔÔdiku jaoks:
zabbix/src/go/plugins/postgres/handler_uptime.go
- Ăhenda pakk ja mÀÀra unikaalne mÔÔdiku vĂ”ti (vĂ”tmed):

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

- Tee pÀring:

On vajalik kontrollida pĂ€ringut vigade osas, pĂ€rast mida tulemus vĂ”etakse ĂŒle Zabbix Agent 2 protsessi poolt.
- Registreerime uue mÔÔdiku vÔtme:

MÔÔdiku registreerimise jÀrel on vÔimalik agent uuesti kompileerida koos uue mÔÔdiku.
Moodul on saadaval alates Zabbix 5.0 veebilehel . 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
Allikas: habr.com
