Contents
Введение:
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 — имя вашей базы.
Всё. Теперь можно просматривать графики:
А как мониторить несколько баз на одном сервере?
А то получается, что на один хост можно привязать только одну базу?