Даклад Дар'і Вілкавай для Zabbix Meetup Online
Я хачу пазнаёміць вас са сродкам маніторынгу PostgreSQL і аперацыйнай сістэмы, які распрацоўваецца нашай кампаніяй з выкарыстаннем Zabbix.
Мы выбралі Zabbix у якасці сродку маніторынгу ўжо даўно, таму што гэта платформа з адкрытым зыходным кодам, якая падтрымліваецца актыўнай супольнасцю, якая карыстаецца вялікай папулярнасцю ў Расіі.
Мы стварылі актыўны агент – Mamonsu, які забяспечваў больш гнуткі маніторынг, чым на той момант дазвалялі стандартныя сродкі, і забяспечваў збор метрык і іх адпраўку на Zabbix Server. У нашай кампаніі Mamonsu выкарыстоўваецца пры правядзенні аўдыту.
Mamonsu
Mamonsu – актыўны агент (Zabbix Trapper) для маніторынгу PostgreSQL і аперацыйнай сістэмы. Mamonsu (напісаны на Python) дазваляе наладзіць параметры маніторынгу PostgreSQL і аперацыйнай сістэмы за пяць хвілін.
Mamonsu валодае дадатковымі прыладамі:
- mamonsu tune - каманда, якая рэдагуе параметры налады ў канфігурацыйным файле PostgreSQL пад машыну на які ўсталяваны агент Mamonsu.
- mamonsu report - каманда, якая стварае адказы аб аперацыйнай сістэме і PostgreSQL.
Mamonsu усталёўваецца на сервер СКБД, збірае інфармацыю, кампануе яе ў JSON, які адпраўляе для візуалізацыі на Zabbix Server, дзе павінен быць шаблон для яго метрык.
Схема працы Mamonsu
Магчымасці Mamonsu
- Эфектыўная праца з PostgreSQL. Пастаяннае злучэнне з PostgreSQL - галоўная перавага Mamonsu. Пры гэтым максімальная колькасць злучэнняў роўная максімальнай колькасці баз дадзеных, да якіх ён падключаецца.
- Пашыральнасць. Mamonsu цалкам «плагінны» агент, і, дзякуючы фіксаванай структуры кожнага плагіна і адноснай прастаце Python, можна лёгка навучыцца пісаць новыя ці рэдагаваць стандартныя плагіны, т. е. параметры збору метрык.
- Шырокі ахоп метрык для маніторынгу для PotgreSQL у тым ліку метрык спецыфічных пашырэнняў.
- Хуткі запуск, даступнасць «са скрынкі».
- Выгрузка шаблонаў і канфігурацыйных файлаў, а таксама загрузка на Zabbix Server.
- кросплатформеннасць, Што важна для нашых заказчыкаў, якія карыстаюцца рознымі дыстрыбутывамі Linux, у тым ліку айчыннымі.
- BSD-clause license.
На дадзены момант мы прапануем мноства плагінаў і ў кожнай наступнай версіі імкнемся дадаць нешта новае.
- 14 плагінаў для PostgreSQL,
- 8 плагінаў для OS Linux,
- 4 плагіна для OS Windows.
Mamonsu збірае больш за 110 метрык PostgreSQL і аперацыйных сістэм:
- 70 метрык PostgreSQL,
- 40 метрык OS Linux,
- 8 метрык OS Windows.
Асноўныя метрыкі ўключаюць даступнасць СКБД, колькасць злучэнняў, памер базы дадзеных, чэкпойнты, хуткасць чытання / запісы, блакіроўкі, колькасць працэсаў аўтавакуум і хуткасць генерацыі WAL. Поўны спіс даступных метрык, а таксама падрабязнае апісанне ўсіх інструментаў даступныя ў
Спіс даступных метрык на сайце GitHub
Запуск Mamonsu за 5 хвілін
Для наладкі маніторынг PostgreSQL і аперацыйнай сістэмы з дапамогай Mamonsu можна за 5 хвілін, выканаўшы 5 простых дзеянняў.
- Устаноўка Mamonsu. Mamonsu можна сабраць з зыходнікаў ці скарыстацца даступнымі пакетамі.
$ git clone ... && cd mamonsu && python setup.py
build && python setup.py install
- Настройка злучэнняў. Неабходна прапісаць параметры злучэння c PostgreSQL і Zabbix Server у файле agent.conf.
/etc/mamonsu/agent.conf
- Экспарт шаблону ў Zabbix Server.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- Даданне вузла сеткі ў Zabbix Server. Экспартаваны шаблон будзе аўтаматычна падлучаны да новага вузла сеткі на Zabbix Server.
$ mamonsu zabbix host create mamonsu-demo
- запуск.
$ service mamonsu start
Напрамкі развіцця Mamonsu
У рамках развіцця Mamonsu мы плануем дапрацоўваць метрыкі і ствараць новыя плагіны, напрыклад плягін маніторынгу памеру асобных табліц. Мы таксама плануем паляпшаць і ствараць дадатковыя прылады, а таксама пашыраць магчымасці аўтаналадкі праз каманду mamonsu tune.
Модуль маніторынгу PostgreSQL у складзе Zabbix Agent 2
Для злучэння з PostgreSQL выкарыстоўваецца хуткі і папулярны драйвер
Пакуль мы выкарыстаем два інтэрфейсу: Exporter, які выклікае апрацоўшчык па ключы, і Configurator Zabbix Agent 2, які счытвае і правярае параметры злучэння з серверам, зададзеныя ў канфігурацыйным файле.
Мы пастараліся аптымізаваць працу СКБД, групуючы метрыкі і выкарыстоўваючы апрацоўшчык (handler) для метрык і груп метрык, а таксама выкарыстоўваючы групы метрык у JSON як залежныя зменныя (dependency items), і нізкаўзроўневае выяўленне (discovery rules).
асноўныя магчымасці
- захаванне сталага злучэння з PostgreSQL паміж праверкамі;
- падтрымка гнуткіх інтэрвалаў апытання;
- сумяшчальнасць з версіямі PostgreSQL, пачынальна з 10, і Zabbix Server, пачынальна з версіі 4.4;
- магчымасць падключэння і маніторынгу некалькіх інстансаў PostgreSQL адначасова дзякуючы таму, што Zabbix Agent 2 дазваляе ствараць некалькі сесій.
Узроўні параметраў падлучэння да PostgreSQL
Усяго даступныя тры ўзроўні параметраў падлучэння да PostgreSQL, т. е. задач і налад:
- Глабальны,
- Sessions,
- Макрасы.
-
Параметры Global задаюцца на ўзроўні агента, параметры Session і Macros вызначаюць параметры падключэння базе.
-
Параметры падлучэння да PostgreSQL - Sessions задаюцца ў файле zabbix_agent2.conf.
Параметры падлучэння да PostgreSQL - Sessions
- Пасля ключавога слова Сеансы паказваецца ўнікальнае імя сесіі, якое павінна быць пазначана ў ключы (шаблоне).
- Параметры URI и UserName абавязковыя для кожнай сесіі.
- Калі імя базы не зададзена, выкарыстоўваецца агульнае па змаўчанні імя базы для ўсіх сесій для PostgreSQL, якое таксама задаецца ў канфігурацыйным файле.
- Параметры падлучэння да PostgreSQL – Macros задаюцца ў ключы метрыкі ў шаблоне (аналагічна спосабу, выкарыстанаму ў Zabbix Agent 1), т. е. ствараюцца ў шаблоне і далей паказваюцца як параметры ў ключы. Пры гэтым паслядоўнасць макрасаў фіксаваная, т. е., напрыклад, URI заўсёды паказваецца на першым месцы.
Параметры падлучэння да PostgreSQL - Macros
Модуль маніторынгу PostgreSQL уключае ўжо больш за 95 метрык, якія дазваляюць ахапіць даволі шырокі аб'ём параметраў PostgreSQL, уключаючы:
- колькасць злучэнняў,
- аб'ём баз дадзеных,
- архівацыя wal-файлаў,
- кантрольныя кропкі,
- колькасць «раздуліся» табліц,
- статус рэплікацыі,
- адставанне рэплікі.
Метрыкі PostgreSQL не інфарматыўныя без параметраў аперацыйнай сістэмы. Але Zabbix Agent 2 ужо ўмее збіраць параметры аперацыйнай сістэмы, таму для атрымання поўнай карціны проста падлучальны да вузла сеткі неабходныя шаблоны.
Апрацоўшчык (handler)
Апрацоўшчык (handler) - асноўная адзінка модуля, у якой выконваецца сам запыт і якая дазваляе атрымліваць метрыкі.
Каб атрымаць простую метрыку:
- Ствараем файл для атрымання новай метрыкі:
zabbix/src/go/plugins/postgres/handler_uptime.go
- Падлучальны пакет і паказваем унікальны ключ (ключы) метрык:
- Ствараем апрацоўшчык (handler) з запытам, т. е. ініцыюем зменную, у якой будзе вынік:
- Выконваем запыт:
Неабходна праверыць запыт на прадмет памылак, пасля чаго вынік будзе падхоплены працэсам Zabbix Agent 2.
- Рэгіструем ключ новай метрыкі:
Пасля рэгістрацыі метрыкі можна перазбіраць агент з новай метрыкай.
Модуль даступны, пачынаючы з Zabbix 5.0 на сайце
Дзякуй за ўвагу!
Карысныя спасылкі
Крыніца: habr.com