Pag-monitor sa PostgreSQL gamit ang Zabbix

Pag-monitor sa PostgreSQL gamit ang Zabbix
Report ni Daria Vilkova para sa Zabbix Meetup Online

Gusto nakong ipaila kanimo ang PostgreSQL ug operating system monitoring tool, nga gipalambo sa among kompanya gamit ang Zabbix.

Gipili namo ang Zabbix isip among monitoring tool sa dugay nga panahon tungod kay kini usa ka open source nga plataporma nga gisuportahan sa usa ka aktibong komunidad nga popular kaayo sa Russia.

Naghimo kami usa ka aktibo nga ahente - Mamonsu, nga naghatag labi ka flexible nga pag-monitor kaysa sa gitugotan nga mga himan sa oras, ug gisiguro ang pagkolekta sa mga sukatan ug ang ilang pagpadala sa Zabbix Server. Sa among kompanya, ang Mamonsu gigamit sa pag-audit.

Mamonsu

Ang Mamonsu usa ka aktibong ahente (Zabbix Trapper) para sa pagmonitor sa PostgreSQL ug sa operating system. Gitugotan ka sa Mamonsu (gisulat sa Python) nga i-configure ang PostgreSQL ug mga setting sa pag-monitor sa operating system sa lima ka minuto.

Ang Mamonsu adunay dugang nga mga himan:

  • Ang mamonsu tune usa ka sugo nga nag-edit sa mga setting sa PostgreSQL configuration file alang sa makina diin ang ahente sa Mamonsu na-install.
  • Ang report sa mamonsu usa ka sugo nga nagmugna og mga tubag mahitungod sa operating system ug PostgreSQL.

Gi-install ang Mamonsu sa DBMS server, nagkolekta sa kasayuran, gi-compose kini sa JSON, nga nagpadala niini sa Zabbix Server para sa visualization, diin kinahanglan adunay usa ka template alang sa mga sukatan niini.

Pag-monitor sa PostgreSQL gamit ang Zabbix

Mamonsu work scheme

Features Mamonsu

  • Episyente nga trabaho sa PostgreSQL. Ang padayon nga koneksyon sa PostgreSQL mao ang nag-unang bentaha sa Mamonsu. Sa kini nga kaso, ang labing kadaghan nga mga koneksyon parehas sa labing kadaghan nga mga database diin kini nagkonektar.
  • Pagpalapad. Ang Mamonsu usa ka bug-os nga ahente nga "plugin", ug tungod sa pirmi nga istruktura sa matag plugin ug ang relatibong kayano sa Python, dali nga makat-on ang usa kung giunsa pagsulat ang bag-o o pag-edit sa mga standard nga plugin, ie mga parameter sa pagkolekta sa metric.
  • Lapad nga coverage sa monitoring metrics alang sa PotgreSQL lakip ang mga sukatan nga espesipiko sa extension.
  • dali nga paglansad, anaa sa gawas sa kahon.
  • Pag-upload sa mga template ug mga file sa pag-configure, ingon man ang pag-upload sa Zabbix Server.
  • Cross-platform, nga hinungdanon alang sa among mga kostumer nga naggamit sa lainlaing mga distribusyon sa Linux, lakip ang mga domestic.
  • BSD-clause nga lisensya.

Sa pagkakaron nagtanyag kami og daghang mga plugins ug sa matag sunod nga bersyon naningkamot kami sa pagdugang og bag-o.

  • 14 nga mga plugins alang sa PostgreSQL,
  • 8 nga mga plugins alang sa OS Linux,
  • 4 nga mga plugins alang sa OS Windows.

Gikolekta ni Mamonsu ang kapin sa 110 ka PostgreSQL ug mga sukatan sa operating system:

  • 70 PostgreSQL metrics,
  • 40 OS Linux metrics,
  • 8 OS Windows metrics.

Ang mga yawe nga sukatan naglakip sa pagkaanaa sa DBMS, gidaghanon sa mga koneksyon, gidak-on sa database, mga checkpoint, katulin sa pagbasa/pagsulat, mga kandado, gidaghanon sa mga proseso sa autovacuum, ug katulin sa paghimo sa WAL. Ang usa ka kompleto nga lista sa magamit nga mga sukatan, ingon man usa ka detalyado nga paghulagway sa tanan nga mga himan, magamit sa mga tipiganan sa GitHub site.

Pag-monitor sa PostgreSQL gamit ang Zabbix

Listahan sa mga magamit nga sukatan sa GitHub

Dagan ang Mamonsu sa 5 minutos

Aron ma-set up ang pagmonitor sa PostgreSQL ug ang operating system gamit ang Mamonsu, mahimo nimo kini sa 5 minuto pinaagi sa pagsunod sa 5 ka yano nga mga lakang.

  1. Pag-instalar sa Mamonsu. Ang Mamonsu mahimong matukod gikan sa gigikanan o magamit ang mga magamit nga pakete.

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

build && python setup.py install

  1. Pag-setup sa koneksyon. Kinahanglan nga ibutang ang mga parameter sa koneksyon alang sa PostgreSQL ug Zabbix Server sa agent.conf file.

/etc/mamonsu/agent.conf

  1. I-export ang template sa Zabbix Server.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Pagdugang og host sa Zabbix Server. Ang gi-eksport nga template awtomatik nga konektado sa bag-ong host sa Zabbix Server.

$ mamonsu zabbix host create mamonsu-demo

  1. Lansad.

$ service mamonsu start

Mga Direksyon sa Pag-uswag sa Mamonsu

Isip kabahin sa pagpalambo sa Mamonsu, nagplano kami sa pagpino sa mga sukatan ug paghimo og bag-ong mga plugins, sama sa usa ka plugin alang sa pagmonitor sa gidak-on sa tagsa-tagsa nga mga lamesa. Nagplano usab kami sa pagpauswag ug paghimo og dugang nga mga himan, ingon man pagpalapad sa mga kapabilidad sa auto-tuning pinaagi sa sugo mamonsu tune.

PostgreSQL monitoring module isip kabahin sa Zabbix Agent 2

Usa ka paspas ug sikat nga drayber ang gigamit sa pagkonektar sa PostgreSQL pgx (PG driver ug toolkit para sa Go).

Sa pagkakaron, naggamit kami og duha ka mga interface: Exporter, nga nagtawag sa handler pinaagi sa yawe, ug Configurator Zabbix Agent 2, nga nagbasa ug nagsusi sa mga parameter sa koneksyon sa server nga gitakda sa configuration file.

Gisulayan namon nga ma-optimize ang trabaho sa DBMS pinaagi sa pag-grupo sa mga sukatan ug paggamit sa usa ka handler (handler) para sa mga sukatan ug metric nga mga grupo, ingon man ang paggamit sa mga grupo sa mga sukatan sa JSON ingon mga dependent variable (mga butang nga dependensya), ug ubos nga lebel nga pagkadiskobre (mga lagda sa pagdiskubre. ).

Yawe nga mga bahin

  • pagpadayon sa usa ka padayon nga koneksyon sa PostgreSQL tali sa mga tseke;
  • suporta alang sa flexible nga mga agwat sa botohan;
  • pagkaangay sa mga bersyon sa PostgreSQL sugod sa 10 ug Zabbix Server sugod sa bersyon 4.4;
  • ang abilidad sa pagkonektar ug pagmonitor sa daghang mga higayon sa PostgreSQL sa samang higayon tungod sa kamatuoran nga ang Zabbix Agent 2 nagtugot kanimo sa paghimo og daghang mga sesyon.

Mga Level sa Parameter sa Koneksyon sa PostgreSQL

Sa kinatibuk-an, tulo ka lebel sa mga parameter sa koneksyon sa PostgreSQL ang magamit, i.e. mga buluhaton ug mga setting:

  • Tibuok kalibutan,
  • sesyon,
  • Mga macro.

  1. Ang Global nga mga parametro gitakda sa lebel sa ahente, ang Session ug Macros nga mga parameter naghubit sa mga parameter sa koneksyon sa database.

  2. Mga parameter sa koneksyon sa PostgreSQL - Ang mga sesyon gitakda sa file zabbix_agent2.conf.

Pag-monitor sa PostgreSQL gamit ang Zabbix

Mga Opsyon sa Koneksyon sa PostgreSQL - Mga Sesyon

  • Pagkahuman sa keyword Sesyon usa ka talagsaon nga ngalan sa sesyon ang gitakda, nga kinahanglan itakda sa yawe (template).
  • lantugi URI ΠΈ UserName gikinahanglan alang sa matag sesyon.
  • Kung ang base nga ngalan wala gitino, ang default nga sagad nga base nga ngalan alang sa tanan nga mga sesyon sa PostgreSQL gigamit, nga gitakda usab sa file sa pag-configure.

  1. Ang mga parameter sa koneksyon sa PostgreSQL - Ang mga macro gitakda sa metric key sa template (susama sa pamaagi nga gigamit sa Zabbix Agent 1), i.e. kini gibuhat sa template ug dayon gipiho isip mga parameter sa yawe. Sa kini nga kaso, ang pagkasunod-sunod sa mga macro gitakda, i.e., pananglitan, URI kanunay nga gilista una.

Pag-monitor sa PostgreSQL gamit ang Zabbix

Mga parametro sa koneksyon sa PostgreSQL - Macros

Ang module sa pagmonitor sa PostgreSQL naglakip na sa labaw pa sa 95 nga mga sukatan nga nagtugot kanimo sa pagtabon sa usa ka medyo halapad nga mga parameter sa PostgreSQL, lakip ang:

  • gidaghanon sa mga koneksyon
  • gidak-on sa database,
  • pag-archive sa mga file,
  • mga checkpoint,
  • ang gidaghanon sa mga "bloated" nga mga lamesa,
  • kahimtang sa replikasyon,
  • paglangan sa replika.

Ang mga sukatan sa PostgreSQL dili informative kung wala ang mga parameter sa operating system. Apan nahibal-an na sa Zabbix Agent 2 kung giunsa ang pagkolekta sa mga parameter sa operating system, aron makuha ang tibuuk nga litrato, ikonektar lang namon ang kinahanglan nga mga template sa host.

Handler

Ang handler mao ang nag-unang yunit sa module diin ang hangyo mismo gipatuman ug nga nagtugot kanimo sa pagdawat sa mga sukatan.

Aron makakuha usa ka yano nga sukatan:

  1. Paghimo usa ka file aron makakuha usa ka bag-ong sukatan:

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

  1. Among gikonektar ang pakete ug gipiho ang talagsaong yawe (mga yawe) sa mga sukdanan:

Pag-monitor sa PostgreSQL gamit ang Zabbix

  1. Naghimo kami usa ka handler (handler) nga adunay usa ka hangyo, i.e., gisugdan namon ang usa ka variable nga adunay sulud nga sangputanan:

Pag-monitor sa PostgreSQL gamit ang Zabbix

  1. Gipatuman namo ang hangyo:

Pag-monitor sa PostgreSQL gamit ang Zabbix

Kinahanglan nga susihon ang hangyo alang sa mga sayup, pagkahuman ang resulta makuha sa proseso sa Zabbix Agent 2.

  1. Irehistro ang bag-ong metric key:

Pag-monitor sa PostgreSQL gamit ang Zabbix

Human marehistro ang sukatan, mahimo nimong tukuron pag-usab ang ahente gamit ang bag-ong sukatan.

Magamit ang module sugod sa Zabbix 5.0 sa site https://www.zabbix.com/download. Niini nga bersyon sa Zabbix, ang mga parameter gilain nga gitakda pinaagi sa host ug port. Sa Zabbix 5.0.2, nga ipagawas sa dili madugay, ang mga parameter sa koneksyon i-package sa usa ka URI.

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

Mapuslanon nga mga link

GitHub Mamonsu

Mamonsu Documentation

Zabbix Git

Source: www.habr.com

Idugang sa usa ka comment