Monitoring PostgreSQL cù Zabbix

Monitoring PostgreSQL cù Zabbix
Rapportu di Daria Vilkova per Zabbix Meetup Online

Vogliu presentà à u PostgreSQL è u strumentu di monitoraghju di u sistema operatore, chì hè sviluppatu da a nostra cumpagnia cù Zabbix.

Avemu sceltu Zabbix cum'è u nostru strumentu di surviglianza per un bellu pezzu perchè hè una piattaforma open source supportata da una cumunità attiva chì hè assai populari in Russia.

Avemu criatu un agentu attivu - Mamonsu, chì furnisce un monitoraghju più flexible chì l'arnesi standard à quellu tempu permettenu, è hà assicuratu a cullizzioni di metriche è u so mandatu à Zabbix Server. In a nostra cumpagnia, Mamonsu hè utilizatu in l'auditu.

Mamonsu

Mamonsu hè un agentu attivu (Zabbix Trapper) per monitorà PostgreSQL è u sistema operatore. Mamonsu (scrittu in Python) permette di cunfigurà PostgreSQL è paràmetri di monitoraghju di u sistema operatore in cinque minuti.

Mamonsu hà strumenti supplementari:

  • mamonsu tune hè un cumandamentu chì edita i paràmetri in u schedariu di cunfigurazione PostgreSQL per a macchina nantu à quale l'agente Mamonsu hè stallatu.
  • rapportu mamonsu hè un cumandamentu chì genera risposte nantu à u sistema operatore è PostgreSQL.

Mamonsu hè stallatu nantu à u servitore DBMS, raccoglie l'infurmazioni, cumpone in JSON, chì u manda à Zabbix Server per a visualizazione, induve deve esse un mudellu per e so metriche.

Monitoring PostgreSQL cù Zabbix

Schema di travagliu Mamonsu

Features Mamonsu

  • U travagliu efficace cù PostgreSQL. Una cunnessione persistente à PostgreSQL hè u vantaghju principale di Mamonsu. In questu casu, u numeru massimu di cunnessione hè uguali à u numeru massimu di basa di dati à quale cunnetta.
  • Espandibilità. Mamonsu hè un agente cumplettamente "plugin", è per via di a struttura fissa di ogni plugin è di a relativa simplicità di Python, si pò facilmente amparà à scrive novi o edità plugins standard, vale à dì paràmetri di cullezzione di metrica.
  • Ampia copertura di metriche di monitoraghju per PotgreSQL cumprese metriche specifiche per l'estensione.
  • lanciu rapidu, dispunibilità fora di a scatula.
  • Caricà mudelli è schedarii di cunfigurazione, è ancu di carica à u Servitore Zabbix.
  • Cross-piattaforma, chì hè impurtante per i nostri clienti chì utilizanu diverse distribuzioni Linux, cumpresi quelli domestici.
  • Licenza di clausola BSD.

À u mumentu offremu assai plugins è in ogni versione successiva pruvemu à aghjunghje qualcosa di novu.

  • 14 plugins per PostgreSQL,
  • 8 plugins per OS Linux,
  • 4 plugins per OS Windows.

Mamonsu raccoglie più di 110 metriche di PostgreSQL è di u sistema operatore:

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

E metriche chjave includenu a dispunibilità DBMS, u numeru di cunnessione, a dimensione di a basa di dati, i punti di cuntrollu, a velocità di lettura / scrittura, serrature, u numeru di prucessi di autovacuum è a velocità di generazione WAL. Una lista cumpleta di metriche dispunibili, è ancu una descrizzione dettagliata di tutti l'arnesi, hè dispunibule in repository nant'à u situ GitHub.

Monitoring PostgreSQL cù Zabbix

Lista di metriche dispunibili nantu à GitHub

Corri Mamonsu in 5 minuti

Per stallà u monitoraghju di PostgreSQL è u sistema operatore cù Mamonsu, pudete fà in 5 minuti seguendu 5 passi simplici.

  1. Installazione di Mamonsu. Mamonsu pò esse custruitu da a fonte o aduprà pacchetti dispunibili.

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

build && python setup.py install

  1. Configurazione di cunnessione. Hè necessariu stabilisce i paràmetri di cunnessione per PostgreSQL è Zabbix Server in u schedariu agent.conf.

/etc/mamonsu/agent.conf

  1. Esporta u mudellu à u Servitore Zabbix.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Aghjunghjite un host à Zabbix Server. U mudellu esportatu serà automaticamente cunnessu à u novu òspite in Zabbix Server.

$ mamonsu zabbix host create mamonsu-demo

  1. Lancia.

$ service mamonsu start

Indicazioni di sviluppu di Mamonsu

Comu parte di u sviluppu di Mamonsu, avemu pensatu à raffinà e metriche è creà novi plugins, cum'è un plugin per monitorizà a dimensione di e tavule individuali. Avemu ancu pianificatu di migliurà è di creà strumenti supplementari, è ancu di espansione e capacità di sintonizazione automatica attraversu u cumandamentu mamonsu tune.

Modulu di monitoraghju PostgreSQL cum'è parte di Zabbix Agent 2

Un driver rapidu è populari hè utilizatu per cunnette à PostgreSQL pgx (Driver PG è toolkit per Go).

Finu a ora, avemu aduprà duie interfacce: Exporter, chì chjama u gestore per chjave, è Configurator Zabbix Agent 2, chì leghje è verifica i paràmetri di cunnessione cù u servitore specificatu in u schedariu di cunfigurazione.

Avemu pruvatu à ottimisà u travagliu di u DBMS raggruppendu metriche è aduprendu un gestore (handler) per metriche è gruppi metrici, è ancu utilizendu gruppi di metriche in JSON cum'è variàbili dipendente (articuli di dipendenza), è scuperta di livellu bassu (règuli di scuperta). ).

Funzioni chjave

  • mantene una cunnessione persistente à PostgreSQL trà i cuntrolli;
  • supportu per intervalli di votazione flessibili;
  • cumpatibilità cù e versioni PostgreSQL da 10 è Zabbix Server da a versione 4.4;
  • l'abilità di cunnette è monitorà parechje istanze PostgreSQL à u stessu tempu per via di u fattu chì Zabbix Agent 2 permette di creà parechje sessioni.

Livelli di parametri di cunnessione PostgreSQL

In totale, ci sò trè livelli di paràmetri di cunnessione PostgreSQL, vale à dì compiti è paràmetri:

  • Globale,
  • sessione,
  • Macro.

  1. I paràmetri Globali sò stabiliti à u livellu di l'agente, i paràmetri di Sessione è Macros definiscenu i paràmetri di cunnessione di a basa di dati.

  2. I paràmetri di cunnessione à PostgreSQL - Sessioni sò stabiliti in u schedariu zabbix_agent2.conf.

Monitoring PostgreSQL cù Zabbix

Opzioni di cunnessione PostgreSQL - Sessioni

  • Dopu à keyword Sessions un nome di sessione unicu hè specificatu, chì deve esse specificatu in a chjave (template).
  • login URI и UserName necessariu per ogni sessione.
  • Se u nome di basa ùn hè micca specificatu, u nome di basa cumuni predeterminatu per tutte e sessioni PostgreSQL hè utilizatu, chì hè ancu stabilitu in u schedariu di cunfigurazione.

  1. I paràmetri di cunnessione à PostgreSQL - Macros sò stallati in a chjave di metrica in u mudellu (simili à u metudu utilizatu in Zabbix Agent 1), vale à dì chì sò creati in u mudellu è poi specificati cum'è paràmetri in a chjave. In questu casu, a sequenza di macros hè fissata, vale à dì, per esempiu, URI sempre listatu prima.

Monitoring PostgreSQL cù Zabbix

Paràmetri di cunnessione PostgreSQL - Macros

U modulu di monitoraghju PostgreSQL include digià più di 95 metriche chì permettenu di copre una larga gamma di parametri PostgreSQL, cumprese:

  • numeru di cunnessione
  • dimensione di basa di dati,
  • archiviu i schedari wal,
  • punti di cuntrollu,
  • u numeru di tavule "gonfiate",
  • statutu di replicazione,
  • ritardu di replica.

E metriche PostgreSQL ùn sò micca informative senza i paràmetri di u sistema operatore. Ma Zabbix Agent 2 sà digià cumu cullà i paràmetri di u sistema operatore, cusì per piglià a stampa completa, simpricimenti cunnettemu i mudelli necessarii à l'ospite.

Manipulatore

U handler hè a unità principale di u modulu in quale a dumanda stessu hè eseguita è chì vi permette di riceve metrica.

Per uttene una metrica simplice:

  1. Crea un schedariu per uttene una nova metrica:

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

  1. Cunnetteremu u pacchettu è specifichi a chjave unica (chjavi) di e metriche:

Monitoring PostgreSQL cù Zabbix

  1. Creemu un handler (handler) cù una dumanda, vale à dì, avemu principiatu una variàbile chì cuntene u risultatu:

Monitoring PostgreSQL cù Zabbix

  1. Eseguimu a dumanda:

Monitoring PostgreSQL cù Zabbix

Hè necessariu di verificà a dumanda di l'errori, dopu chì u risultatu serà pigliatu da u prucessu Zabbix Agent 2.

  1. Registrate a nova chjave metrica:

Monitoring PostgreSQL cù Zabbix

Dopu avè registratu a metrica, pudete ricustruisce l'agente cù a nova metrica.

U modulu hè dispunibule da Zabbix 5.0 nantu à u situ web https://www.zabbix.com/download. In questa versione di Zabbix, i paràmetri sò stabiliti separatamente via host è portu. In Zabbix 5.0.2, chì serà liberatu prestu, i paràmetri di cunnessione seranu imballati in un unicu URI.

Ti ringraziu per a vostra attenzione!

E ligami utili

GitHub Mamonsu

Documentazione Mamonsu

Zabbix Git

Source: www.habr.com

Add a comment