Monitorado de PostgreSQL per Zabbix

Monitorado de PostgreSQL per Zabbix
Raporto de Daria Vilkova por Zabbix Meetup Online

Mi volas prezenti al vi la ilon de monitorado de PostgreSQL kaj operaciumo, kiu estas disvolvita de nia kompanio per Zabbix.

Ni elektis Zabbix kiel nian monitoran ilon dum longa tempo ĉar ĝi estas malfermkoda platformo subtenata de aktiva komunumo kiu estas tre populara en Rusio.

Ni kreis aktivan agenton - Mamonsu, kiu disponigis pli flekseblan monitoradon ol normaj iloj en tiu tempo permesis, kaj certigis la kolekton de metrikoj kaj ilian sendon al Zabbix Server. En nia kompanio, Mamonsu estas uzata en la revizio.

Mamonsu

Mamonsu estas aktiva agento (Zabbix Trapper) por monitorado de PostgreSQL kaj la operaciumo. Mamonsu (skribita en Python) permesas vin agordi PostgreSQL kaj mastruma sistemo monitorado agordojn en kvin minutoj.

Mamonsu havas kromajn ilojn:

  • mamonsu tune estas komando, kiu redaktas la agordojn en la agorda dosiero de PostgreSQL por la maŝino, sur kiu la agento Mamonsu estas instalita.
  • mamonsu-raporto estas komando, kiu generas respondojn pri la operaciumo kaj PostgreSQL.

Mamonsu estas instalita sur la DBMS-servilo, kolektas informojn, komponas ĝin en JSON, kiu sendas ĝin al Zabbix Server por bildigo, kie devus esti ŝablono por ĝiaj metrikoj.

Monitorado de PostgreSQL per Zabbix

Mamonsu laborskemo

Trajtoj Mamonsu

  • Efika laboro kun PostgreSQL. Persista konekto al PostgreSQL estas la ĉefa avantaĝo de Mamonsu. En ĉi tiu kazo, la maksimuma nombro da konektoj estas egala al la maksimuma nombro da datumbazoj al kiuj ĝi konektas.
  • Vastebleco. Mamonsu estas plene "kromaĵo" agento, kaj pro la fiksa strukturo de ĉiu kromaĵo kaj la relativa simpleco de Python, oni povas facile lerni kiel skribi novajn aŭ redakti normajn kromaĵojn, t.e. metrikkolektajn parametrojn.
  • Vasta kovrado de monitoraj metrikoj por PotgreSQL inkluzive de etendaĵ-specifaj metrikoj.
  • rapida lanĉo, havebleco el la skatolo.
  • Alŝuto de ŝablonoj kaj agordaj dosieroj, same kiel alŝutado al Zabbix Server.
  • Transsistema, kio gravas por niaj klientoj, kiuj uzas diversajn Linuksajn distribuojn, inkluzive de hejmaj.
  • BSD-klauza permesilo.

Nuntempe ni proponas multajn kromaĵojn kaj en ĉiu sekva versio ni provas aldoni ion novan.

  • 14 aldonaĵoj por PostgreSQL,
  • 8 kromaĵojn por OS Linukso,
  • 4 kromaĵojn por OS Vindozo.

Mamonsu kolektas pli ol 110 mezurojn de PostgreSQL kaj operaciumo:

  • 70 PostgreSQL-metrikoj,
  • 40 OS Linukso-metrikoj,
  • 8 OS Windows-metrikoj.

Ŝlosilaj metrikoj inkluzivas DBMS-haveblecon, nombron da konektoj, datumbazgrandecon, kontrolpunktojn, legadon/skriban rapidecon, serurojn, nombron da aŭtomataj vakuaj procezoj kaj WAL-generacia rapideco. Kompleta listo de disponeblaj metrikoj, same kiel detala priskribo de ĉiuj iloj, estas haveblaj en deponejoj en la retejo de GitHub.

Monitorado de PostgreSQL per Zabbix

Listo de disponeblaj metrikoj en GitHub

Kuru Mamonsu en 5 minutoj

Por agordi monitoradon de PostgreSQL kaj la operaciumo uzante Mamonsu, vi povas fari ĝin en 5 minutoj sekvante 5 simplajn paŝojn.

  1. Instalante Mamonsu. Mamonsu povas esti konstruita de fonto aŭ uzi disponeblajn pakaĵojn.

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

build && python setup.py install

  1. Konekto-aranĝo. Necesas agordi la konektajn parametrojn por PostgreSQL kaj Zabbix Server en la dosiero agent.conf.

/etc/mamonsu/agent.conf

  1. Eksportu ŝablonon al Zabbix Server.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Aldonante gastiganton al Zabbix Server. La eksportita ŝablono estos aŭtomate konektita al la nova gastiganto sur Zabbix Server.

$ mamonsu zabbix host create mamonsu-demo

  1. Lanĉu.

$ service mamonsu start

Mamonsu Evoluaj Direktoj

Kiel parto de la disvolviĝo de Mamonsu, ni planas rafini la metrikojn kaj krei novajn kromaĵojn, kiel ekzemple kromaĵo por monitori la grandecon de individuaj tabeloj. Ni ankaŭ planas plibonigi kaj krei pliajn ilojn, kaj ankaŭ pligrandigi la aŭtomatajn agordajn kapablojn per la komando mamonsu tune.

PostgreSQL-monitora modulo kiel parto de Zabbix Agent 2

Rapida kaj populara pelilo estas uzata por konekti al PostgreSQL pĝx (PG-ŝoforo kaj ilaro por Go).

Ĝis nun, ni uzas du interfacojn: Eksportilo, kiu nomas la prizorganton per ŝlosilo, kaj Konfiguranto Zabbix Agent 2, kiu legas kaj kontrolas la konektajn parametrojn kun la servilo specifita en la agorda dosiero.

Ni provis optimumigi la laboron de la DBMS per grupigo de metrikoj kaj uzante pritraktilon (traktilo) por metrikoj kaj metrikaj grupoj, kaj ankaŭ uzante grupojn de metrikoj en JSON kiel dependaj variabloj (dependecaj eroj), kaj malaltnivela malkovro (malkovraj reguloj). ).

Ŝlosilaj trajtoj

  • konservante konstantan konekton al PostgreSQL inter kontroloj;
  • subteno por flekseblaj balotintervaloj;
  • kongruo kun PostgreSQL-versioj ekde 10 kaj Zabbix Server ekde versio 4.4;
  • la kapablo konekti kaj monitori plurajn PostgreSQL-instancojn samtempe pro la fakto, ke Zabbix Agent 2 permesas krei plurajn sesiojn.

PostgreSQL-Konekto-Parametro-Niveloj

Entute, ekzistas tri niveloj de PostgreSQL-konektparametroj, t.e. taskoj kaj agordoj:

  • Tutmonda,
  • kunsido,
  • Makrooj.

  1. La Tutmondaj parametroj estas fiksitaj ĉe la agentnivelo, la Sesio kaj Makro-parametroj difinas la datumbazkonektparametrojn.

  2. Konekto-parametroj al PostgreSQL - Sesioj estas fiksitaj en la dosiero zabbix_agent2.conf.

Monitorado de PostgreSQL per Zabbix

PostgreSQL-Konekto-Ebloj - Sesioj

  • Post ŝlosilvorto sesioj unika seanca nomo estas specifita, kiu devas esti specifita en la ŝlosilo (ŝablono).
  • parametroj URI и UzantoNomo necesa por ĉiu sesio.
  • Se la baznomo ne estas specifita, la defaŭlta komuna baznomo por ĉiuj PostgreSQL-sesioj estas uzata, kiu ankaŭ estas agordita en la agorda dosiero.

  1. Konekto-parametroj al PostgreSQL - Makrooj estas fiksitaj en la metrika ŝlosilo en la ŝablono (similaj al la metodo uzata en Zabbix Agent 1), t.e. ili estas kreitaj en la ŝablono kaj tiam specifitaj kiel parametroj en la ŝlosilo. En ĉi tiu kazo, la sekvenco de makrooj estas fiksita, t.e., ekzemple, URI ĉiam listigitaj unue.

Monitorado de PostgreSQL per Zabbix

PostgreSQL-konektoparametroj - Makrooj

La modulo de monitorado de PostgreSQL jam inkluzivas pli ol 95 metrikojn, kiuj permesas vin kovri sufiĉe larĝan gamon da parametroj de PostgreSQL, inkluzive de:

  • nombro da konektoj
  • grandeco de datumbazo,
  • arkivante wal-dosierojn,
  • transirejoj,
  • la nombro da "ŝveligitaj" tabloj,
  • reproduktadstatuso,
  • kopiprokrasto.

PostgreSQL-metrikoj ne estas informaj sen operaciumaj parametroj. Sed Zabbix Agent 2 jam scias kiel kolekti operaciumajn parametrojn, do por akiri la plenan bildon, ni simple ligas la necesajn ŝablonojn al la gastiganto.

Pritraktanto

La prizorganto estas la ĉefa unuo de la modulo, en kiu la peto mem estas efektivigita kaj kiu ebligas al vi ricevi metrikojn.

Por akiri simplan metrikon:

  1. Kreu dosieron por akiri novan metrikon:

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

  1. Ni konektas la pakaĵon kaj specifas la unikan ŝlosilon (ŝlosiloj) de la metrikoj:

Monitorado de PostgreSQL per Zabbix

  1. Ni kreas pritraktilon (traktilon) kun peto, t.e., ni iniciatas variablon, kiu enhavos la rezulton:

Monitorado de PostgreSQL per Zabbix

  1. Ni plenumas la peton:

Monitorado de PostgreSQL per Zabbix

Necesas kontroli la peton pri eraroj, post kio la rezulto estos reprenita de la Zabbix Agent 2-procezo.

  1. Registru la novan metrikan ŝlosilon:

Monitorado de PostgreSQL per Zabbix

Post registri la metrikon, vi povas rekonstrui la agenton kun la nova metriko.

La modulo disponeblas ekde Zabbix 5.0 en la retejo https://www.zabbix.com/download. En ĉi tiu versio de Zabbix, la parametroj estas fiksitaj aparte per gastiganto kaj haveno. En Zabbix 5.0.2, kiu estos publikigita baldaŭ, la konektoparametroj estos pakitaj en ununuran URI.

Спасибо за внимание!

utilaj ligoj

GitHub Mamonsu

Mamonsu Dokumentado

Zabbix Git

fonto: www.habr.com

Aldoni komenton