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.
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
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.
- 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
- Configurazione di cunnessione. Hè necessariu stabilisce i paràmetri di cunnessione per PostgreSQL è Zabbix Server in u schedariu agent.conf.
/etc/mamonsu/agent.conf
- Esporta u mudellu à u Servitore Zabbix.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- Aghjunghjite un host à Zabbix Server. U mudellu esportatu serà automaticamente cunnessu à u novu òspite in Zabbix Server.
$ mamonsu zabbix host create mamonsu-demo
- 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
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.
-
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.
-
I paràmetri di cunnessione à PostgreSQL - Sessioni sò stabiliti in u schedariu zabbix_agent2.conf.
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.
- 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.
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:
- Crea un schedariu per uttene una nova metrica:
zabbix/src/go/plugins/postgres/handler_uptime.go
- Cunnetteremu u pacchettu è specifichi a chjave unica (chjavi) di e metriche:
- Creemu un handler (handler) cù una dumanda, vale à dì, avemu principiatu una variàbile chì cuntene u risultatu:
- Eseguimu a dumanda:
Hè necessariu di verificà a dumanda di l'errori, dopu chì u risultatu serà pigliatu da u prucessu Zabbix Agent 2.
- Registrate a nova chjave metrica:
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
Ti ringraziu per a vostra attenzione!
E ligami utili
Source: www.habr.com