[Open source, Системное администрирование, PostgreSQL, IT-инфраструктура] Мониторинг PostgreSQL с использованием Zabbix
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Доклад Дарьи Вилковой для 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.
Список доступных метрик на сайте 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 используется быстрый и популярный драйвер pgx (PG driver and toolkit for Go).
Пока мы используем два интерфейса: Exporter, вызывающий обработчик по ключу, и Configurator Zabbix Agent 2, который считывает и проверяет параметры соединения с сервером, заданные в конфигурационном файле.
Мы постарались оптимизировать работу СУБД, группируя метрики и используя обработчик (handler) для метрик и групп метрик, а также используя группы метрик в JSON как зависимые переменные (dependency items), и низкоуровневое обнаружение (discovery rules).
Основные возможности
- сохранение постоянного соединения с PostgreSQL между проверками;
- поддержка гибких интервалов опроса;
- совместимость с версиями PostgreSQL, начиная с 10, и Zabbix Server, начиная с версии 4.4;
- возможность подключения и мониторинга нескольких инстансов PostgreSQL одновременно благодаря тому, что Zabbix Agent 2 позволяет создавать несколько сессий.
Уровни параметров подключения к PostgreSQL
Всего доступны три уровня параметров подключения к PostgreSQL, т. е. задач и настроек:
- Global,
- Sessions,
- Macros.
- Параметры Global задаются на уровне агента, параметры Session и Macros определяют параметры подключения базе.
- Параметры подключения к PostgreSQL — Sessions задаются в файле zabbix_agent2.conf.
Параметры подключения к PostgreSQL — Sessions
- После ключевого слова 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 на сайте https://www.zabbix.com/download. В этой версии Zabbix параметры задаются отдельно через host и port. В версии Zabbix 5.0.2, которая скоро выйдет, параметры подключения будут скомпонованы в один URI.
Спасибо за внимание!
Полезные ссылки
GitHub Mamonsu
Документация по Mamonsu
Zabbix Git
===========
Источник:
habr.com
===========
Похожие новости:
- [Информационная безопасность, IT-инфраструктура, Сетевые технологии] В Беларуси блокируются сайты *.github.io
- [Open source, Дизайн мобильных приложений] «Остановите Total Commander!» или главная проблема свободного ПО
- [PostgreSQL] Этюд по реализация бизнес-логики на уровне хранимых функций PostgreSQL
- [Open source, JavaScript, Canvas] Collage_n простой онлайн редактор для создания коллажей и эффектов на javascript
- [Информационная безопасность, Open source, Разработка под Linux] Kali Linux получил графический интерфейс для подсистемы Windows для Linux (WSL2). Инструкция по установке
- [Информационная безопасность, Системное администрирование, Сетевые технологии] 4. Check Point SandBlast Agent Management Platform. Политика Data Protection. Deployment и Global Policy Settings
- [Системное администрирование, Серверное администрирование, DevOps, Kubernetes] Что такое Docker: краткий экскурс в историю и основные абстракции
- [IT-инфраструктура, Сетевые технологии, Софт, Сетевое оборудование] Вебинар Solarwinds и что у них нового в последней версии 2020.2
- [Высокая производительность, IT-инфраструктура] О переезде с Redis на Redis-cluster
- [Системное администрирование, Серверное администрирование, Puppet] Инфраструктура как код в Авито: уроки, которые мы извлекли
Теги для поиска: #_open_source, #_sistemnoe_administrirovanie (Системное администрирование), #_postgresql, #_itinfrastruktura (IT-инфраструктура), #_zabbix, #_postgresql, #_mamonsu, #_blog_kompanii_zabbix (
Блог компании Zabbix
), #_open_source, #_sistemnoe_administrirovanie (
Системное администрирование
), #_postgresql, #_itinfrastruktura (
IT-инфраструктура
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 24-Ноя 22:19
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Доклад Дарьи Вилковой для Zabbix Meetup Online Я хочу познакомить вас со средством мониторинга PostgreSQL и операционной системы, которое разрабатывается нашей компанией с использованием Zabbix. Мы выбрали Zabbix в качестве средства мониторинга уже давно, потому что это платформа с открытым исходным кодом, поддерживаемая активным сообществом, которая пользуется большой популярностью в России. Мы создали активный агент — Mamonsu, который обеспечивал более гибкий мониторинг, чем на тот момент позволяли стандартные средства, и обеспечивал сбор метрик и их отправку на Zabbix Server. В нашей компании Mamonsu используется при проведении аудита. Mamonsu Mamonsu — активный агент (Zabbix Trapper) для мониторинга PostgreSQL и операционной системы. Mamonsu (написанный на Python) позволяет настроить параметры мониторинга PostgreSQL и операционной системы за пять минут. Mamonsu обладает дополнительными инструментами:
Mamonsu устанавливается на сервер СУБД, собирает информацию, компонует ее в JSON, который отправляет для визуализации на Zabbix Server, где должен быть шаблон для его метрик. Схема работы Mamonsu Возможности Mamonsu
На данный момент мы предлагаем множество плагинов и в каждой следующей версии стараемся добавить что-то новое.
Mamonsu собирает более 110 метрик PostgreSQL и операционных систем:
Основные метрики включают доступность СУБД, количество соединений, размер базы данных, чекпойнты, скорость чтения/записи, блокировки, количество процессов автовакуум и скорость генерации WAL. Полный список доступных метрик, а также подробное описание всех инструментов доступны в репозитории на сайте GitHub. Список доступных метрик на сайте GitHub Запуск Mamonsu за 5 минут Для настройки мониторинг PostgreSQL и операционной системы с помощью Mamonsu можно за 5 минут, выполнив 5 простых действий.
$ git clone ... && cd mamonsu && python setup.py build && python setup.py install
/etc/mamonsu/agent.conf
$ mamonsu zabbix template export /usr/share/mamonsu/example.xml
$ mamonsu zabbix host create mamonsu-demo
$ service mamonsu start Направления развития Mamonsu В рамках развития Mamonsu мы планируем дорабатывать метрики и создавать новые плагины, например плагин мониторинга размера отдельных таблиц. Мы также планируем улучшать и создавать дополнительные инструменты, а также расширять возможности автонастройки через команду mamonsu tune. Модуль мониторинга PostgreSQL в составе Zabbix Agent 2 Для соединения с PostgreSQL используется быстрый и популярный драйвер pgx (PG driver and toolkit for Go). Пока мы используем два интерфейса: Exporter, вызывающий обработчик по ключу, и Configurator Zabbix Agent 2, который считывает и проверяет параметры соединения с сервером, заданные в конфигурационном файле. Мы постарались оптимизировать работу СУБД, группируя метрики и используя обработчик (handler) для метрик и групп метрик, а также используя группы метрик в JSON как зависимые переменные (dependency items), и низкоуровневое обнаружение (discovery rules). Основные возможности
Уровни параметров подключения к PostgreSQL Всего доступны три уровня параметров подключения к PostgreSQL, т. е. задач и настроек:
Параметры подключения к PostgreSQL — Sessions
Параметры подключения к PostgreSQL — Macros Модуль мониторинга PostgreSQL включает уже более 95 метрик, которые позволяют охватить довольно широкий объем параметров PostgreSQL, включая:
Метрики PostgreSQL не информативны без параметров операционной системы. Но Zabbix Agent 2 уже умеет собирать параметры операционной системы, поэтому для получения полной картины просто подключаем к узлу сети необходимые шаблоны. Обработчик (handler) Обработчик (handler) — основная единица модуля, в которой выполняется сам запрос и которая позволяет получать метрики. Чтобы получить простую метрику:
zabbix/src/go/plugins/postgres/handler_uptime.go
Необходимо проверить запрос на предмет ошибок, после чего результат будет подхвачен процессом Zabbix Agent 2.
После регистрации метрики можно пересобирать агент с новой метрикой. Модуль доступен, начиная с Zabbix 5.0 на сайте https://www.zabbix.com/download. В этой версии Zabbix параметры задаются отдельно через host и port. В версии Zabbix 5.0.2, которая скоро выйдет, параметры подключения будут скомпонованы в один URI. Спасибо за внимание! Полезные ссылки GitHub Mamonsu Документация по Mamonsu Zabbix Git =========== Источник: habr.com =========== Похожие новости:
Блог компании Zabbix ), #_open_source, #_sistemnoe_administrirovanie ( Системное администрирование ), #_postgresql, #_itinfrastruktura ( IT-инфраструктура ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 24-Ноя 22:19
Часовой пояс: UTC + 5