
Daria Vilkova ziņojums Zabbix Meetup Online
Es vēlos iepazīstināt jūs ar PostgreSQL un operētājsistēmas uzraudzības rīku, ko izstrādā mūsu uzņēmums, izmantojot Zabbix.
Mēs jau sen esam izvēlējušies Zabbix par uzraudzības rīku, jo tas ir atvērtā koda platforma, ko atbalsta aktīva kopiena un 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 nodrošināja standarta rīki, un nodrošināja metrikas vākšanu un nosūtīšanu uz Zabbix Serveri. Mūsu uzņēmumā Mamonsu tiek izmantots audita veikšanai.
Mamonsu
Mamonsu ir aktīvs aģents (Zabbix Trapper) PostgreSQL un operētājsistēmas uzraudzībai. Mamonsu (uzrakstīts Python) ļauj iestatīt PostgreSQL un operētājsistēmas uzraudzības parametrus piecās minūtēs.
Mamonsu ir papildus rīki:
- mamonsu tune — komanda, kas rediģē uzstādījumu parametrus PostgreSQL konfigurācijas failā uz mašīnas, kurā ir instalēts Mamonsu aģents.
- mamonsu report — komanda, kas izveido atskaites par operētājsistēmu un PostgreSQL.
Mamonsu tiek instalēts uz DBMS servera, vāc informāciju, apkopojot to JSON formātā, ko nosūta vizualizācijai uz Zabbix Serveri, kuram jābūt šablonam tās metrikām.

Mamonsu darbības shēma
Mamonsu iespējas
- Efektīva sadarbība ar PostgreSQL. Pastāvīga savienojuma izveide ar PostgreSQL ir galvenā Mamonsu priekšrocība. Tajā pašā laikā 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īgi «piegulējams» aģents, un, pateicoties katra paplašinājuma fiksētajai struktūrai un attiecīgai Python vienkāršībai, ir viegli iemācīties rakstīt jaunus vai rediģēt standarta paplašinājumus, t.i., metrikas vākšanas parametrus.
- Plaša metrikas pārklājums uzraudzībai t.sk. metrikas specifiskām paplašinājumām PostgreSQL.
- Ātra palaišana, pieejamība 'kastei'.
- Veidņu un konfigurācijas failu izvade, kā arī ielāde uz Zabbix Serveri.
- Krosplatformitāte, kas ir svarīgi mūsu klientiem, kuri izmanto dažādus Linux izplatījumus, tostarp vietējos.
- BSD-clause licence.
Šobrīd mēs piedāvājam daudzus paplašinājumus un katrā nākamajā versijā cenšamies pievienot kaut ko jaunu.
- 14 paplašinājumi PostgreSQL,
- 8 paplašinājumi OS Linux,
- 4 paplašinājumi OS Windows.
Mamonsu apkopo vairāk nekā 110 PostgreSQL un operētājsistēmu metriku:
- 70 PostgreSQL metriku,
- 40 OS Linux metriku,
- 8 OS Windows metriku.
Galvenās metriku iekļauj datu bāzes pieejamību, pieslēgumu skaitu, datu bāzes izmēru, pārbaudes punktus, lasīšanas/ierakstīšanas ātrumu, bloķēšanu, automātiskās vakuuma procesu skaitu un WAL ģenerēšanas ātrumu. Pilns pieejamo metriku saraksts un detalizēts visiem rīkiem sniegtā apraksta ir pieejams GitHub vietnē.

Pieejamo metriku saraksts GitHub vietnē
Mamonsu palaišana 5 minūtēs
Lai konfigurētu PostgreSQL un operētājsistēmas uzraudzību, izmantojot Mamonsu, varat to izdarīt 5 minūtēs, izpildot 5 vienkāršas darbības.
- Mamonsu instalācija. Mamonsu var izveidot no avotiem vai izmantot pieejamos pakotnes.
$ git clone ... && cd mamonsu && python setup.py
build && python setup.py install
- Savienojumu konfigurācija. Nepieciešams norādīt savienojuma parametrus ar PostgreSQL un Zabbix Server agent.conf failā.
/etc/mamonsu/agent.conf
- Veidnes eksportēšana Zabbix Server.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- Tīkla mezgla pievienošana Zabbix Server. Eksportētā veidne automātiski tiks pievienota jaunajam tīkla mezglam Zabbix Server.
$ mamonsu zabbix host create mamonsu-demo
- Sākt.
$ service mamonsu start
Mamonsu attīstības virzieni
Attīstot Mamonsu, plānojam uzlabot metriku un izveidot jaunus spraudņus, piemēram, spraudni atsevišķu tabulu izmēra uzraudzībai. Mēs arī plānojam uzlabot un izveidot papildu rīkus, kā arī paplašināt automātiskās konfigurācijas iespējas, izmantojot komandu mamonsu tune.
Zabbix Agent 2 ietvaros PostgreSQL uzraudzības modulis
Savienojumam ar PostgreSQL tiek izmantota ātra un populāra draiveris (PG draiveris un rīku komplekts Go valodai).
Pašlaik mēs izmantojam divus interfeisus: Eksporteris, kas izsauc apstrādātāju pēc atslēgas, un Zabbix Agent 2 konfigurētājs, kas lasa un pārbauda savienojuma parametrus ar serveri, kas norādīti konfigurācijas failā.
Mēs centāmies optimizēt datu bāzes darbu, grupējot metriku un izmantojot apstrādātāju (handler) metriku un grupu metriku, kā arī izmantojot metriku grupas JSON kā atkarīgās mainīgās (dependency items) un zemo līmeņu atklāšanu (discovery rules).
Galvenās iespējas
- pastāvīga savienojuma saglabāšana ar PostgreSQL starp pārbaudēm;
- elastīgu aptauju intervālu atbalsts;
- saderība ar PostgreSQL versijām no 10. un Zabbix Server, sākot no 4.4 versijas;
- Iespēja vienlaikus savienot un uzraudzīt vairākus PostgreSQL instancus, jo Zabbix Agent 2 ļauj veidot vairākas sesijas.
Savienojuma parametru līmeņi uz PostgreSQL
Pieejami kopumā trīs savienojuma parametru līmeņi uz PostgreSQL, t.i., uzdevumiem un iestatījumiem:
- Globālā,
- Sesijas,
- Makro.
Globālie parametri tiek noteikti aģenta līmenī, bet sesiju un makro parametri nosaka savienojuma iestatījumus.
Savienojuma parametri uz PostgreSQL - Sesijas tiek norādīti failā zabbix_agent2.conf.

Savienojuma parametri uz PostgreSQL - Sesijas
- Pēc atslēgvārda Sesijas tiek norādīts unikāls sesijas nosaukums, kas jānorāda atslēgā (šablonā).
- Iestatījumi URI un Lietotājvārds ir obligāti katrai sesijai.
- Ja datu bāzes nosaukums nav norādīts, tiek izmantots kā vispārīgs noklusējuma datu bāzes nosaukums visām sesijām uz PostgreSQL, kas arī ir norādīts konfigurācijas failā.
- Savienojuma parametri uz PostgreSQL - Makro tiek norādīti metrikas atslēgā šablonā (līdzīgi veidam, kā tas tika izmantots Zabbix Agent 1), t.i., tie tiek izveidoti šablonā un turpmāk tiek norādīti kā parametri atslēgā. Šajā gadījumā makro secība ir fiksēta, t.i., piemēram, URI vienmēr norādīts vispirms.

Savienojuma parametri uz PostgreSQL - Makro
PostgreSQL uzraudzības modulis ietver jau vairāk nekā 95 metriku, kas ļauj aptvert diezgan plašu PostgreSQL parametru klāstu, tostarp:
- savienojumu skaits,
- datu bāzu apjoms,
- wal-failu arhivēšana,
- kontroles punkti,
- «uzpūsto» tabulu skaits,
- replikācijas statuss,
- replikācijas kavējums.
PostgreSQL metriku nav informatīvas bez operētājsistēmas parametriem. Bet Zabbix Agent 2 jau spēj vākt operētājsistēmas parametrus, tādēļ pilnai ainai mēs vienkārši pievienojam nepieciešamos šablonus tīkla mezglam.
Apstrādātājs (handler)
Apstrādātājs (handler) — galvenā modula vienība, kurā tiek izpildīts pats pieprasījums un kas ļauj iegūt metriku.
Lai iegūtu vienkāršu metriku:
- Izveidojam failu jaunās metrikas iegūšanai:
zabbix/src/go/plugins/postgres/handler_uptime.go
- Pievienojam paketi un norādām unikālo atslēgu (atslēgas) metrikām:

- Izveidojam apstrādātāju (handler) ar pieprasījumu, t.i., iniciējām mainīgo, kurā būs rezultāts:

- Izpildām pieprasījumu:

Jā pārbauda pieprasījums par kļūdām, pēc tam rezultāts tiks paņemts ar Zabbix Agent 2 procesu.
- Reģistrējam jaunās metrikas atslēgu:

Pēc metrikas reģistrācijas aģentu var pārbūvēt ar jauno metriku.
Modulis pieejams, sākot no Zabbix 5.0 mājaslapā . Šajā versijā Zabbix parametri tiek noteikti atsevišķi caur host un port. Versijā Zabbix 5.0.2, kas drīz tiks izdota, savienojuma parametri tiks apkopoti vienā URI.
Paldies par uzmanību!
Noderīgas saites
Avots: habr.com
