Мониторинг PostgreSQL в Zabbix

Введение:

Disclaimer: Любые необдуманные действия в вашей производственной среде могут закончиться крахом сервисов. Тестируйте! 

Страница проекта: https://github.com/lesovsky/zabbix-extensions/tree/master/files/postgresql

В примере использованы: Zabbix сервер на базе CentOs 7.0 и PostgreSQL 9,6 сервер на базе Ubuntu server 16,04. 

На сервере PostgeSQL необходимо установить zabbix-agent, загрузить с GitHub соответствующее расширение, а также активировать расширения pg_buffercache и pg_stat_statements через консоль PostgeSQL, разрешить локальный доступ к базе в файле pg_hba.conf, после чего перечитать конфиг PostgreSQL. 

На Zabbix сервер необходимо загрузить соответствующий шаблон и задать макрос. Т.к. шаблон сделан для версии Zabbix не ниже 3.4, то для примера привожу процесс обновления сервера Zabbix.

Обновление Zabbix 3,0 до версии 3,2:

systemctl stop zabbix-server

yum install http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

yum clean all

yum makecache

yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

systemctl start zabbix-server

systemctl start zabbix-agent

Обновление Zabbix 3,2 до версии 3,4:

systemctl stop zabbix-server

rpm -Uvh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm

yum clean all

yum makecache

yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

systemctl start zabbix-server

systemctl start zabbix-agent

Установка агента Zabbix на сервер PGSQL:

Подключаем репозиторий:

sudo wget https://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.4-1+xenial_all.deb
sudo apt update

Для других версий ОС Ubuntu, слово «xenial» заменить названием соответствующего дистрибутива, например, для 14.04 «trusty»:

sudo wget https://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+trusty_all.deb

Устанавливаем агента:

sudo apt-get install zabbix-agent

редактируем конфиг файл:

sudo nano /etc/zabbix/zabbix-adgentd.conf

находим секцию Option: Server и после Server=127.0.0.1, через запятую прописываем ip адрес сервера Zabbix:

тоже самое делаем в секции Option: ServerActive. для примера:

Server=127.0.0.1,192.168.9.30

ServerActive=127.0.0.1,192.168.9.30

Сохраняем файл и перезапускаем агента:

sudo service zabbix-agent restart

Установка расширения на сервере PGSQL:

sudo git clone https://github.com/lesovsky/zabbix-extensions

sudo mkdir /etc/zabbix/zabbix_agentd.d/

sudo cp files/postgresql/postgresql.conf /etc/zabbix/zabbix_agentd.d/

Активируем расширения postgresql:

sudo su postgres

psql dbname

где, dbname имя базы данных.

 

\dx — просмотр установленных расширений.

CREATE EXTENSION pg_stat_statements;

CREATE EXTENSION pg_buffercache;

\q

exit

Разрешаем локальный доступ к базе, для чего редактируем:

sudo nano /etc/postgresql/9.6/main/pg_hba.conf

где прописываем:

host all all 127.0.0.1/32 trust (ну, или для конкретной базы)…

перечитываем конфиг-файлы postgres:

service postgresql reload

Загрузка шаблона мониторинга PGSQL на Zabbix сервер:

Скачиваем файл шаблона postgresql-extended-template.xml со страницы проекта на гитхабе:

https://github.com/lesovsky/zabbix-extensions/tree/master/files/postgresql

Открываем веб-интерфейс zabbix, идем в Настройка => Шаблоны и жмём кнопку «Импорт»

Выбираем загруженный ранее шаблон в формате xml. 

После успешной загрузки идем в Настройка => Узлы сети и, если не создан таковой ранее, создаем новый узел сети для нашего сервера postgres, затем добавляем стандартный шаблон «OS Linux» и шаблон «DB PostgreSQL».

И остается только заполнить данные макроса, для опроса базы данных:

{$PG_CONNINFO} -h 127.0.0.1 -p 5432 -U postgres -d DBName
{$PG_CONNINFO_STANDBY} -p 5432 -U postgres -d DBName

где, dbname — имя вашей базы.

Всё. Теперь можно просматривать графики:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *