Всем привет.
В Zabbix появился официальный Template DB PostgreSQL. В этой статье настроим его в Zabbix 4.4.

1. Переходим в домашний каталог.
2. Скачиваем утилиту git и клонируем официальный репозиторий Zabbix, который находится на GitHub.
3. Переходим в каталог с шаблоном PostgreSQL.
1. Подключимся к PostgreSQL.
2. Создадим пользователя zbx_monitor только для чтения с доступом к серверу PostgreSQL.
Для PostgreSQL версии 10 и выше:
Для PostgreSQL версии 9.6 и ниже:
3. Скопируем каталог postgresql/ в каталог /var/lib/zabbix/. Если у вас в /var/lib/ отсутствует каталог zabbix/, то создайте его. Каталог postgresql / содержит файлы, необходимые для получения метрик из PostgreSQL.
4. Затем скопируем файл template_db_postgresql.conf в каталог конфигурации агента Zabbix /etc/zabbix/zabbix_agentd.d/ и перезапустите агента Zabbix.
5. Теперь отредактируем файл pg_hba.conf, чтобы разрешить подключение к Zabbix. Подробнее о файле pg_hba.conf: https://www.postgresql.org/docs/current/auth-pg-hba-conf.html.
Откройте файл:
Добавьте одну из строк (Если не понимаете зачем это нужно, то добавьте только первую строку.):
Считаю, что те, кому требуется снимать метрики с PostgreSQL итак знают как добавлять шаблоны. Поэтому опишу процесс кратко.
Ждём некоторое время и наконец, переходим в "Monitoring" => "Latest data" => "Hosts" выбираем сервер с PostgreSQL => нажимаем "Apply".

Enjoy!
В Zabbix появился официальный Template DB PostgreSQL. В этой статье настроим его в Zabbix 4.4.

ПРИМЕЧАНИЕ
Если у вас все хорошо с английским, то рекомендую установить шаблон по официальному мануалу
github.com/zabbix/zabbix/tree/master/templates/db/postgresql
Тем не менее в моей статье учтены нюансы, которых нет по этой ссылке.
Подготовка шаблона
1. Переходим в домашний каталог.
cd ~
2. Скачиваем утилиту git и клонируем официальный репозиторий Zabbix, который находится на GitHub.
yum -y install git
git clone https://github.com/zabbix/zabbix.git
3. Переходим в каталог с шаблоном PostgreSQL.
cd zabbix/templates/db/postgresql/
Настройка шаблона для агента Zabbix
1. Подключимся к PostgreSQL.
psql -U postgres
2. Создадим пользователя zbx_monitor только для чтения с доступом к серверу PostgreSQL.
Для PostgreSQL версии 10 и выше:
CREATE USER zbx_monitor WITH PASSWORD '<ВАШ_ПАРОЛЬ>' INHERIT; GRANT pg_monitor TO zbx_monitor;
Для PostgreSQL версии 9.6 и ниже:
CREATE USER zbx_monitor WITH PASSWORD '<ВАШ_ПАРОЛЬ>';
GRANT SELECT ON pg_stat_database TO zbx_monitor;
--Для сбора метрик WAL пользователь должен быть superuser.
ALTER USER zbx_monitor WITH SUPERUSER;
3. Скопируем каталог postgresql/ в каталог /var/lib/zabbix/. Если у вас в /var/lib/ отсутствует каталог zabbix/, то создайте его. Каталог postgresql / содержит файлы, необходимые для получения метрик из PostgreSQL.
cp -r postgresql/ /var/lib/zabbix/
4. Затем скопируем файл template_db_postgresql.conf в каталог конфигурации агента Zabbix /etc/zabbix/zabbix_agentd.d/ и перезапустите агента Zabbix.
cp template_db_postgresql.conf /etc/zabbix/zabbix_agentd.d/
5. Теперь отредактируем файл pg_hba.conf, чтобы разрешить подключение к Zabbix. Подробнее о файле pg_hba.conf: https://www.postgresql.org/docs/current/auth-pg-hba-conf.html.
Откройте файл:
vi /var/lib/pgsql/12/data/pg_hba.conf
Добавьте одну из строк (Если не понимаете зачем это нужно, то добавьте только первую строку.):
host all zbx_monitor 127.0.0.1/32 trust
host all zbx_monitor 0.0.0.0/0 md5
host all zbx_monitor ::0/0 md5
ПРИМЕЧАНИЕ
Если PostgreSQL установлен из репозитория PGDG, добавьте путь к pg_isready в переменную среды PATH для пользователя zabbix.
Как вариант:
ln -s /usr/pgsql-12/bin/pg_isready /usr/bin/pg_isready
* — так как у меня pgsql 12 версии, то у вас вместо pgsql-12 будет другой путь.
Если этого не сделать, то Status: Ping всегда будет в состоянии Down.
Добавление шаблона на фронтенде Zabbix
Считаю, что те, кому требуется снимать метрики с PostgreSQL итак знают как добавлять шаблоны. Поэтому опишу процесс кратко.
- Заходим на страницу Zabbix;
- Переходим на страницу "Configuration" => "Host";
- Нажимаем на кнопку "Create host" или выбираем существующий хост;
- На странице создания/редактирования хоста выбираем вкладку "Templates" и и жмём на линк "Add";
- В «Group» из списка выбираем «Templates/Databases», выбираем шаблон "Template DB PostgreSQL", жмём кнопку "Select" и нажимаем кнопку "Update";
Ждём некоторое время и наконец, переходим в "Monitoring" => "Latest data" => "Hosts" выбираем сервер с PostgreSQL => нажимаем "Apply".

Enjoy!