Zabbix көмегімен PostgreSQL мониторингі

Zabbix көмегімен PostgreSQL мониторингі
Дарья Вилкованың Zabbix Meetup Online бағдарламасына берген репортажы

Мен сізді біздің компания Zabbix көмегімен әзірлейтін PostgreSQL және операциялық жүйені бақылау құралымен таныстырғым келеді.

Біз Zabbix-ті бақылау құралы ретінде баяғыда таңдадық, себебі бұл Ресейде өте танымал белсенді қауымдастық қолдайтын ашық бастапқы платформа.

Біз сол кезде рұқсат етілген стандартты құралдарға қарағанда икемді бақылауды қамтамасыз ететін және көрсеткіштерді жинауды және оларды Zabbix серверіне жіберуді қамтамасыз ететін белсенді агент - Mamonsu жасадық. Біздің компанияда аудит жүргізу кезінде Мамонсу қолданылады.

Мамонсу

Mamonsu — PostgreSQL және операциялық жүйені бақылауға арналған белсенді агент (Zabbix Trapper). Mamonsu (Python тілінде жазылған) PostgreSQL және операциялық жүйені бақылау параметрлерін бес минут ішінде конфигурациялауға мүмкіндік береді.

Mamonsu қосымша құралдары бар:

  • mamonsu tune — Mamonsu агенті орнатылған құрылғы үшін PostgreSQL конфигурация файлындағы параметрлерді өңдейтін пәрмен.
  • mamonsu report - операциялық жүйе және PostgreSQL туралы жауаптарды жасайтын пәрмен.

Mamonsu ДҚБЖ серверінде орнатылған, ақпаратты жинайды, оны JSON форматына құрастырады, ол Zabbix серверіне визуализацияға жіберіледі, мұнда оның метрикасының үлгісі болуы керек.

Zabbix көмегімен PostgreSQL мониторингі

Мамонсу операциясының схемасы

Мамонсу ерекшеліктері

  • PostgreSQL-пен тиімді жұмыс істеу. PostgreSQL-ге тұрақты қосылым Mamonsu-ның басты артықшылығы болып табылады. Бұл жағдайда қосылымдардың максималды саны ол қосылатын деректер қорының максималды санына тең болады.
  • Кеңейту мүмкіндігі. Mamonsu - бұл толықтай «плагин» агенті және әр плагиннің бекітілген құрылымы мен Python салыстырмалы қарапайымдылығының арқасында сіз жаңа плагиндерді жазуды немесе стандартты плагиндерді, яғни метрика жинағының параметрлерін өңдеуді оңай үйрене аласыз.
  • Мониторингке арналған көрсеткіштерді кең қамту PotgreSQL үшін, соның ішінде нақты кеңейтімдерге арналған көрсеткіштер.
  • Жылдам бастау, Қораптан тыс қолжетімділік.
  • Үлгілер мен конфигурация файлдарын жүктеп салу, сонымен қатар Zabbix серверіне жүктеп салу.
  • Кросс-платформа, бұл әртүрлі Linux дистрибутивтерін, соның ішінде отандық дистрибутивтерді пайдаланатын тұтынушыларымыз үшін маңызды.
  • BSD-тармақ лицензиясы.

Қазіргі уақытта біз көптеген плагиндерді ұсынамыз және әрбір келесі нұсқада жаңа нәрсе қосуға тырысамыз.

  • PostgreSQL үшін 14 плагин,
  • OS Linux үшін 8 плагин,
  • Windows операциялық жүйесіне арналған 4 плагин.

Mamonsu 110-нан астам PostgreSQL және операциялық жүйе көрсеткіштерін жинайды:

  • 70 PostgreSQL көрсеткіштері,
  • 40 OS Linux көрсеткіштері,
  • 8 ОЖ Windows көрсеткіштері.

Негізгі көрсеткіштерге ДҚБЖ қолжетімділігі, қосылымдар саны, дерекқор өлшемі, бақылау нүктелері, оқу/жазу жылдамдығы, құлыптар, автовакуум процестерінің саны және WAL құру жылдамдығы жатады. Қол жетімді көрсеткіштердің толық тізімі, сондай-ақ барлық құралдардың толық сипаттамасы мына бөлімде қол жетімді репозиторийлер GitHub веб-сайтында.

Zabbix көмегімен PostgreSQL мониторингі

GitHub сайтындағы қолжетімді көрсеткіштер тізімі

5 минут ішінде Mamonsu іске қосыңыз

Mamonsu көмегімен PostgreSQL және операциялық жүйе мониторингін 5 қарапайым қадамды орындау арқылы 5 минут ішінде орнатуға болады.

  1. Mamonsu орнату. Mamonsu дереккөзден немесе қол жетімді пакеттерді пайдалану арқылы жасалуы мүмкін.

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

build && python setup.py install

  1. Қосылымдарды орнату. agent.conf файлында PostgreSQL және Zabbix сервері үшін қосылым параметрлерін көрсету қажет.

/etc/mamonsu/agent.conf

  1. Үлгіні Zabbix серверіне экспорттау.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. Zabbix серверіне хост қосу. Экспортталған үлгі Zabbix серверіндегі жаңа хостқа автоматты түрде қосылады.

$ mamonsu zabbix host create mamonsu-demo

  1. Запуск.

$ service mamonsu start

Мамонсудың даму бағыттары

Mamonsu әзірлеу бөлігі ретінде біз көрсеткіштерді нақтылауды және жаңа плагиндерді жасауды жоспарлап отырмыз, мысалы, жеке кестелердің өлшемін бақылауға арналған плагин. Біз сондай-ақ қосымша құралдарды жақсартуды және жасауды, сондай-ақ пәрмен арқылы автоматты реттеу мүмкіндіктерін кеңейтуді жоспарлап отырмыз мамонсу әуені.

Zabbix Agent 2 құрамына енгізілген PostgreSQL мониторинг модулі

PostgreSQL-ке қосылу үшін жылдам және танымал драйвер пайдаланылады pgx (PG драйвері және Go үшін құралдар жинағы).

Әзірге біз екі интерфейсті қолданып жатырмыз: өңдеушіні кілт арқылы шақыратын экспорттаушы және конфигурация файлында көрсетілген сервер қосылымының параметрлерін оқитын және тексеретін конфигуратор Zabbix Agent 2.

Біз ДҚБЖ өнімділігін көрсеткіштерді топтау және көрсеткіштер мен метрикалық топтар үшін өңдегішті пайдалану, сондай-ақ тәуелді айнымалылар (тәуелділік элементтері) және төмен деңгейлі табу (табу ережелері) ретінде JSON жүйесіндегі метрикалық топтарды пайдалану арқылы оңтайландыруға тырыстық.

Негізгі ерекшеліктері

  • тексерулер арасында PostgreSQL тұрақты байланысын қолдау;
  • икемді дауыс беру аралықтарын қолдау;
  • 10-нан басталатын PostgreSQL нұсқаларымен және 4.4 нұсқасынан бастап Zabbix серверімен үйлесімді;
  • Zabbix Agent 2 бірнеше сеанстарды жасауға мүмкіндік беретіндіктен, бір уақытта бірнеше PostgreSQL даналарын қосу және бақылау мүмкіндігі.

PostgreSQL қосылым параметрінің деңгейлері

Барлығы PostgreSQL қосылым параметрлерінің үш деңгейі қол жетімді, яғни тапсырмалар мен параметрлер:

  • Ғаламдық,
  • Сеанстар
  • Макростар.

  1. Жаһандық параметрлер агент деңгейінде орнатылады, Сеанс және Макростар параметрлері дерекқор үшін қосылым параметрлерін анықтайды.

  2. PostgreSQL-ке қосылу параметрлері - Сеанстар файлда орнатылған zabbix_agent2.conf.

Zabbix көмегімен PostgreSQL мониторингі

PostgreSQL қосылым параметрлері - Сеанстар

  • Негізгі сөзден кейін Отырыстар кілтте (үлгіде) көрсетілуі тиіс бірегей сеанс атауы көрсетіледі.
  • параметрлері URI и Пайдаланушы аты әр сеанс үшін қажет.
  • Егер дерекқор атауы көрсетілмесе, барлық PostgreSQL сеанстары үшін әдепкі ортақ дерекқор атауы пайдаланылады, ол конфигурация файлында да көрсетілген.

  1. PostgreSQL - макростарға қосылу параметрлері үлгідегі метрикалық кілтте көрсетіледі (Zabbix Agent 1-де қолданылатын әдіске ұқсас), яғни олар үлгіде жасалады, содан кейін кілтте параметрлер ретінде көрсетіледі. Бұл жағдайда макростардың реті бекітіледі, яғни, мысалы, URI әрқашан бірінші болып табылады.

Zabbix көмегімен PostgreSQL мониторингі

PostgreSQL қосылым параметрлері - Макростар

PostgreSQL мониторинг модулі қазірдің өзінде PostgreSQL параметрлерінің жеткілікті кең ауқымын қамтуға мүмкіндік беретін 95-тен астам көрсеткіштерді қамтиды, соның ішінде:

  • қосылымдар саны,
  • деректер қорының көлемі,
  • wal файлдарын мұрағаттау,
  • бақылау нүктелері,
  • «ісінген» кестелер саны,
  • репликация күйі,
  • көшірменің артта қалуы.

PostgreSQL өлшемдері операциялық жүйе параметрлерінсіз ақпараттық емес. Бірақ Zabbix Agent 2 операциялық жүйе параметрлерін қалай жинау керектігін біледі, сондықтан толық суретті алу үшін біз жай ғана желі түйініне қажетті шаблондарды қосамыз.

Өңдеуші

Өңдеуші – сұраудың өзі орындалатын және көрсеткіштерді алуға мүмкіндік беретін модульдің негізгі бірлігі.

Қарапайым көрсеткішті алу үшін:

  1. Жаңа көрсеткішті алу үшін файл жасаңыз:

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

  1. Біз пакетті байланыстырамыз және бірегей метрикалық кілттерді көрсетеміз:

Zabbix көмегімен PostgreSQL мониторингі

  1. Біз сұраныспен өңдегішті жасаймыз, яғни нәтижені қамтитын айнымалы мәнді бастаймыз:

Zabbix көмегімен PostgreSQL мониторингі

  1. Біз сұранысты орындаймыз:

Zabbix көмегімен PostgreSQL мониторингі

Сұрауды қателерге тексеру қажет, содан кейін нәтиже Zabbix Agent 2 процесі арқылы алынады.

  1. Жаңа метрикалық кілтті тіркеңіз:

Zabbix көмегімен PostgreSQL мониторингі

Көрсеткішті тіркегеннен кейін агентті жаңа көрсеткішпен қайта құруға болады.

Модуль веб-сайтта Zabbix 5.0 нұсқасынан бастап қол жетімді https://www.zabbix.com/download. Zabbix-тің бұл нұсқасында параметрлер хост және порт арқылы бөлек орнатылады. Жақында шығарылатын Zabbix 5.0.2 нұсқасында қосылым параметрлері бір URI-ге біріктіріледі.

Назарларыңызға рахмет!

Пайдалы сілтемелер

GitHub Mamonsu

Мамонсу құжаттамасы

Zabbix Git

Ақпарат көзі: www.habr.com

пікір қалдыру