Мониторинг баз данных Postgresql при помощи Zabbix

HELP-ME-24.COM (Freelance Team), Черноусов Антон

В продолжение цикла заметок по мониторингу серверов при помощи Zabbix (системы мониторинга) рассмотрим мониторинг Postgresql при помощи libzbxpgsql (Домашняя страница проекта: http://cavaliercoder.com/libzbxpgsql/). Я пробовал внедрять много различных источников данных для мониторинга Postgresql и именно этот проект мне показался наиболее интересным.

Мониторинг баз данных Postgresql при помощи Zabbix

Сразу скажу, что он использует дополнительный скомпилированный модуль и активный режим работы Zabbix-агента, но это не является проблемой в корректно настроенной инфраструктуре.

Для начала, настроим клиентскую часть, для чего, как я уже говорил, нам понадобится дополнительный модуль который можно скомпилировать из исходных кодов или использовать уже собранный. Скачать скомпилированный модуль и исходные коды можно по адресу http://cavaliercoder.com/libzbxpgsql/download/. Загрузить и установить пакет можно командой (для Centos 7.1):

# wget http://s3.cavaliercoder.com/libzbxpgsql/yum/zabbix32/rhel/7/x86_64/libzbxpgsql-1.0.0-1.el7.x86_64.rpm
# rpm -i ./libzbxpgsql-1.0.0-1.el7.x86_64.rpm

RPM-пакет уже содержит файл конфигурации отвечающий за загрузку модуля (расположен в файле /etc/zabbix/zabbix_agentd.d/libzbxpgsql.conf) и вам потребуется только перезапустить zabbix-агент и удостовериться, что модуль загружен:

# service zabbix-agent restart
# cat /var/log/zabbix/zabbix_agentd.log | grep libzbxpgsql

Следующим этапом необходимо предоставить доступ сборщику данных к базе данных Postgresql. Я предпочитаю настраивать связь между системным пользователем zabbix (от которого запущен zabbix-agent и пользователем имеющим права чтения статистики Postgresql) В большинстве случаев можно настроить связку с пользователем postgres, но в случаях повышенных требований к безопасности можно создать специального пользователя (хотя доступ к подсистеме статистики это уже потенциальная угроза) и в нашем примере мы рассмотрим настройку связи между системным пользователем zabbix и пользователем базы данных zabbix (пользователель СУБД с правами чтения статистики). Пользователя с именем zabbix мы создали для упрощения настройки можно использовать параметр ident и настроить связку с любым пользователем базы данных при помощи ключевого слова map, но мы используем параметр peer (для простоты, так как несколько раз при передаче проекта у клиента возникали вопросы по настройке ident и map).

Создайте в базе данных Postgresql пользователя zabbix имеющего права на чтение статистики:

# CREATE USER zabbix WITH PASSWORD 'xxxxVerySecretZabbixUserPasswordxxx';
# ALTER ROLE zabbix SUPERUSER;

и добавьте в файл pg_hba.conf строку:

local all zabbix peer

Настройка серверной части сводится к загрузке шаблона, добавлении его к конфигурации хоста, для которого настраиваем мониторинг и настройке макросов подключения к базе данных. Скачать шаблон конфигурации можно по прямой ссылке https://raw.githubusercontent.com/cavaliercoder/libzbxpgsql/v1.0.0/template_postgresql_server.xml или найти в корне исходных кодов модуля.

Для мониторинга Postgresq вам необходимо настроить следующие макросы:

{$PG_CONN} => user=zabbix connect_timeout=10 - Строка подключения к базе данных (без указания пароля блок авторизации обрабатывается на стороне сервера связкой системного пользователя zabbix и системой авторизации Postgresql)

{$PG_DB} => postgres - База данных к которой подключаемся (Оставьте postgresql, так как это не играет особой роли главный фактор- это наличие у пользователя необходимых прав на чтение списка баз данных и прочих системных разрешений)

Оставьте комментарий

Вы должны быть вошедший в чтобы отправить комментарий