Наблюдението на базата данни и предупреждението е особено важна част от операциите с базата данни, тъй като трябва да разберем текущото състояние на базата данни. Ако нямате добър мониторинг на базата данни, няма да можете бързо да намерите проблеми в базата данни. Тогава това може да доведе до престой.
Един инструмент, наличен за наблюдение, е pgDash, SaaS приложение за наблюдение и предупреждение за базата данни PostgreSQL.
Процедура за инсталиране на pgDash
Регистрацията за pgDash може да се извърши чрез уебсайта или може да бъде изтеглена (самостоятелно хоствана), както е предоставено от RapidLoop.
Процесът на инсталиране на pgDash е прост, просто трябва да изтеглим пакета, необходим от pgDash, за да бъде конфигуриран от страна на хоста/сървъра на базата данни.
Можете да стартирате процеса, както следва:
[[email protected] ~]$ curl -O -L https://github.com/rapidloop/pgmetrics/releases/download/v1.9.0/pgmetrics_1.9.0_linux_amd64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 647 100 647 0 0 965 0 --:--:-- --:--:-- --:--:-- 964
100 3576k 100 3576k 0 0 189k 0 0:00:18 0:00:18 --:--:-- 345k
[[email protected] ~]$ tar xvf pgmetrics_1.9.0_linux_amd64.tar.gz
pgmetrics_1.9.0_linux_amd64/LICENSE
pgmetrics_1.9.0_linux_amd64/README.md
pgmetrics_1.9.0_linux_amd64/pgmetrics
[[email protected] ~]$ curl -O -L https://github.com/rapidloop/pgdash/releases/download/v1.5.1/pgdash_1.5.1_linux_amd64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 644 100 644 0 0 1370 0 --:--:-- --:--:-- --:--:-- 1367
100 2314k 100 2314k 0 0 361k 0 0:00:06 0:00:06 --:--:-- 560k
[[email protected] ~]$ tar xvf pgdash_1.5.1_linux_amd64.tar.gz
pgdash_1.5.1_linux_amd64/LICENSE
pgdash_1.5.1_linux_amd64/README.md
pgdash_1.5.1_linux_amd64/pgdash
[[email protected] ~]$ ./pgmetrics_1.9.0_linux_amd64/pgmetrics --no-password -f json ccdb | ./pgdash_1.5.1_linux_amd64/pgdash -a NrxaHk3JH2ztLI06qQlA4o report myserver1
Освен pgDash ще ви трябва още един пакет, pgmetrics, който да бъде инсталиран за наблюдение. pgmetrics е помощна програма с отворен код, чиято задача е да събира информация и статистически данни в базата данни, необходими на pgDash, докато работата на pgdash е да изпраща тази информация до таблото за управление.
Ако искате да добавите още бази данни към платформата за наблюдение, ще ви трябва за да повторите горния процес за всяка база данни.
Въпреки че инсталацията на pgDash е проста, има повтарящи се процеси, които могат да се превърнат в проблем, ако има допълнителни бази данни, които трябва да бъдат наблюдавани. Най-вероятно ще трябва да направите скрипт за автоматизация за това.
Показатели на pgDash
Има 3 основни функции под pgDash Dashboard, това са:
- Табло за управление :се състои от подменюта като:Overview, Database, Queries, Backend, Locks, Tablespace, Replication, WAL Files, BG Writers, Vacuum, Roles, Configuration.
- Инструменти :се състои от подменюта, като управление на индекси, управление на пространството на таблици, диагностика и Top-K.
- Сигнали :се състои от подменюта, като например Сигнали и сигнали за промяна.
Наблюдение на PostgreSQL от ClusterControl
Мониторингът, извършван от ClusterControl, използва метода ssh и директна връзка от възела на контролера към целевия възел на базата данни за събиране на информация, необходима за показване на таблото.
ClusterControl също има функция за наблюдение, базирана на агенти, която може лесно да се активира. Можете да го видите по-долу...
След това ClusterControl ще извърши инсталационния процес на prometheus, експортери на възли и PostgreSQL износители, в целевата база данни, която има за цел да събира и събира информация, изисквана от таблото за управление за показване на показатели.
Ако мониторингът, базиран на агенти, е активен, всяка нова целева база данни ще бъде автоматично добавена и наблюдавана от мониторинг, базиран на агенти.
Табла за управление на ClusterControl
Тук можете да видите информация в екраните с преглед на клъстера на PostgreSQL и с информация за системата. В тази функция можете да видите подробна информация като версия на db, ID на транзакция, последна контролна точка и дата и час, когато сървърът е жив. Тази информация е изобразена по-долу:
В страницата с информация за системата можем да получим информация като средно натоварване, Използване на паметта, Използване на размяна, вижте снимката по-долу:
- База данни :можете да получите информация като име на db, размер на db, брой таблици, индекс и също пространство за таблици.
- Запитвания :можете да наблюдавате обаждания, запис на диск, четене на диск, удар в буфер от заявки. Освен това можете да търсите във всяка заявка, която се изпълнява в рамките на определен период от време.
- Бекенд :можете да наблюдавате текущото състояние на бекенда на базата данни, в рамките на тази информация се предоставят критични подробности, като бекенд, чакащ за заключване, други чакащи бекендове, транзакция отворена твърде дълго, бекенд неактивен в транзакцията. Можете също да видите всички бекендове, които се изпълняват в базата данни.
- Ключи :Можете да проверите броя на общите заключвания, неразрешените заключвания и блокираните заявки.
- Пространство за таблици :предоставя информация, свързана с пространството за таблици, т.е. размер на табличното пространство, използване на Disk и Inodes.
- Репликации :можете да наблюдавате състоянието на репликацията си в базата данни PostgreSQL, да започнете от слот за репликация, входяща репликация, изходяща репликация, публикации за репликация и абонаменти за репликация.
- Wal файлове :предоставя информация, свързана с WAL (записване напред), а също и статистически данни, напр.: Брой файлове на WAL, честота на генериране на WAL, генерирани WAL файлове на всеки час.
- BG Writers :предоставя информация, свързана с базата данни за контролни точки, запис в буфера и параметри, свързани с фоновия записвач.
- Vacuum Progress :съдържа информация, свързана с вакуума, който работи в базата данни, също и параметри на вакуума.
- Роли :съдържа информация, свързана с ролите, които съществуват в базата данни, включително привилегии.
- Конфигурация :съдържа параметри в базата данни PostgreSQL.
Вътрешните инструменти има подменюта като Index Management, които предоставят информация, т.е. Неизползван индекс, индекс на раздуване и индекс с ниско съотношение на попадане в кеша. Управлението на Tablespace предоставя информация, свързана с Tablespace и други обекти, налични под.
Диагностика, за да разбере потенциалните проблеми, които могат да възникнат чрез Топ 10 на най-раздути таблици, Топ 10 на най-раздути индекси, Списък с неактивни слотове за репликация, Топ 10 на най-дълго изпълняваните транзакции и т.н.
ClusterControl има няколко показателя в отделно меню, това са Общ преглед, Възли, Табло за управление, Монитор на заявки и Производителност, вижте снимката по-долу:
Когато мониторингът, базиран на агенти е активиран, следователно цялата информация, свързана със статистиката и друга информация, свързана с базата данни, ще се съхранява в база данни от времеви серии (prometheus). Можете да видите тази информация в ClusterControl, както е показано по-долу:
В монитора на заявките можете да намерите най-популярни заявки, изпълнявани заявки, заявки Отклонения или менюта със статистика на заявката. Те предоставят информация, свързана с изпълняване на заявка, топ заявка и статистика на базата данни. Можете също да конфигурирате бавни заявки и неиндексиращи заявки.
В Performance има подменюта като DB Growth, които могат да показват информация за база данни и статистически данни за размера на таблицата. Schema Analyzer предоставя информация, свързана с излишния индекс и таблица без първичен ключ.
Сигнал за PostgreSQL
Има две части на предупреждението...
- Правила за сигнали :правилата за предупреждение играят основна роля, можете да дефинирате ограничения като параметри, които могат да задействат аларма към DBA.
- Интегриране на трета страна :е канал за интеграция към платформата за управление на инциденти за комуникация и сътрудничество, като например:PagerDuty, OpsGenie, Slack или чрез имейл.
PgDash има много опции за параметри на базата данни, които можете да зададете, свързани с правилото за предупреждение, разделени на няколко слоя, започвайки от сървър, база данни, таблица, индекс, пространство за таблици и заявка. Можете да видите тази информация в pgDash, както е показано по-долу...
Що се отнася до канала за интеграция на трета страна, pgDash поддържа няколко канала като като Slack, Pagerduty, VictorOps, Xmatters, електронна поща или създаване на свои собствени уеб кукички, за да могат да бъдат използвани от други услуги.
Следва външният вид на интеграцията на трета страна на pgDash:
За разлика от pgDash, ClusterControl има по-широка и по-обща опция за предупреждение за събития , като се започне с предупреждения, свързани с хоста, мрежата, клъстера и самата база данни. Следват примери за опции за събития, които могат да бъдат избрани:
ClusterControl може да избере няколко клъстера на база данни в едно предупреждение за събитие. Интеграцията на трета страна от ClusterControl поддържа няколко инструменти за управление на инциденти и комуникация / сътрудничество като PagerDuty, VictorOps, Telegram, OpsGenie, Slack, ServiceNow или може да създаде свой собствен уеб кукичка.
В секцията с правила за предупреждение и pgDash, и ClusterControl имат предимства и недостатъци. Предимството на pgDash е, че можете да зададете много подробни сигнали за база данни, свързани с това, което ще бъде изпратено, докато недостатъкът е, че трябва да правите тези настройки във всяка база данни (въпреки че има функция за импортиране от други конфигурации на база данни.
ClusterControl няма подробни сигнали за събития, само общи събития в базата данни, но ClusterControl може да изпраща сигнали не само свързани с базата данни, но може да изпраща сигнали за събития от възли, клъстери, мрежи и т.н. Освен това можете да зададете тези сигнали за няколко клъстера от бази данни.
В раздела Интеграция на трети страни, pgDash и ClusterControl имат поддръжка за различни канали за управление на инциденти и комуникация на трети страни. Всъщност и двамата могат да направят своя собствена уеб кука, така че да може да се използва от други услуги (напр. Grafana).