Установка PostgreSQL экспортера в контейнере

!!!Контейнер с базой данных и экспортер должны находиться в одной сети.

Подготовительные работы

Итак мы имеем сервер с установленным на нем postgresql. Создадим пользователя, через которого экспортер будет подключатся к базе, так как использовать стандартного пользователя postgres не есть хорошо. Новый пользователь будет иметь полный read-only доступ к базе:

sadmin@db01:~$ sudo -u postgres psql
---
postgres=# create user postgresql_exporter with password 'Pwdpwd1122';
postgres=# grant select on all tables in schema public to postgresql_exporter;

Проверим доступ к базе, подключится из под этого пользователя и попробуем создать базу например:

sadmin@db01:~$ psql -U postgresql_exporter -h localhost postgres
---
postgres=> create database test1;
ERROR:  permission denied to create database

Пользователь postgresql_exporter теперь имеет доступ ко всем созданным таблицам на текущий момент. При появлении новых схем или табличек в базе нам нужно будет повторно переназначать права. Что бы избежать повторных действий, можем воспользоваться фичей дефолтного назначения прав.:

postgres=# alter default privileges in schema public
postgres-# grant select on tables to postgresql_exporter; Конфигурация экспортера в докер компоуз файле
postgres-exporter:
    image: prometheuscommunity/postgres-exporter
    ports:
      - 9187:9187
    environment:
      DATA_SOURCE_NAME: "postgresql://postgresql_exporter:postgresql_exporter_password@postgres:5432/shop?sslmode=disable"

От denerk

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

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