Последнее обновление: августа 10, 2026

Настройка источника данных PostgreSQL

В этом документе объясняется, как настроить источник данных PostgreSQL, и перечислены все параметры конфигурации. Общую информацию об управлении источниками данных см. в разделе Управление источниками данных.

Перед началом

  • Для настройки источника данных вам нужна роль Organization administrator. Вы также можете настроить его через YAML с помощью провижининга Grafana или используя Terraform.

  • Grafana поставляется с предустановленным источником данных PostgreSQL в OSS и Enterprise. Вам не нужно устанавливать плагин. О вариантах обновления см. Обновления плагина.

  • Подготовьте данные безопасности PostgreSQL (сертификаты и клиентские ключи, если используется TLS/SSL).

  • Запишите вашу версию PostgreSQL; она будет запрошена во время настройки.

Note

При добавлении источника данных указанный вами пользователь базы данных должен иметь только разрешения SELECT на соответствующих схемах и таблицах. Grafana не проверяет безопасность запросов, поэтому пользователи могут выполнить потенциально опасный SQL (например, DROP TABLE). Создайте выделенного пользователя PostgreSQL с ограниченными разрешениями, чтобы снизить риск.

Пример:

SQL
CREATE USER grafanareader WITH PASSWORD 'password';
GRANT USAGE ON SCHEMA schema TO grafanareader;
GRANT SELECT ON schema.table TO grafanareader;

Замените schema и table на имена вашей схемы и таблицы.

Добавление источника данных PostgreSQL

Выполните следующие шаги, чтобы настроить новый источник данных PostgreSQL:

  1. Нажмите Connections в меню слева.
  2. Нажмите Add new connection.
  3. Введите PostgreSQL в строке поиска.
  4. Выберите PostgreSQL data source.
  5. Нажмите Add new data source в правом верхнем углу.

Вы попадёте на вкладку Settings, где настраивается источник данных.

Параметры конфигурации PostgreSQL

Ниже приведён список параметров конфигурации PostgreSQL:

Настройка Описание
Name Задаёт имя, которое вы используете для ссылки на источник данных на панелях и в запросах. Примеры: PostgreSQL-DB-1.
Default Переключатель, задающий этот конкретный источник данных PostgreSQL как предварительно выбранный по умолчанию на панелях и в визуализациях.

Раздел Connection:

Note

Пользователям Grafana Cloud: Grafana Cloud не может напрямую достичь базы данных на localhost, 127.0.0.1 или в приватных диапазонах IP (10.x, 172.16.x, 192.168.x). Если ваш экземпляр PostgreSQL не является общедоступным, вы должны настроить Private data source connect (PDC), чтобы установить защищённый туннель между Grafana Cloud и вашей приватной сетью. Если вы сталкиваетесь с периодическими разрывами соединения с агентом PDC на базе Docker, попробуйте переключиться на агент на базе бинарного файла.

Если ваша база данных общедоступна, но защищена брандмауэром, вы должны добавить исходящие IP-адреса Grafana Cloud в список разрешённых. Grafana Cloud не предоставляет статические IP-адреса для каждого стека. Он предоставляет только диапазоны IP уровня сервиса. Актуальный список исходящих IP-адресов см. в разделе Разрешение IP-адресов Grafana Cloud в брандмауэре.

Настройка Описание
Host URL IP-адрес/имя хоста и необязательный порт вашего экземпляра PostgreSQL. Порт PostgreSQL по умолчанию — 5432. Для адресов IPv6 используйте формат [::1]:5432. Чтобы подключиться через Unix-сокет, введите путь к каталогу сокета (например, /var/run/postgresql).
Database name Имя вашей базы данных PostgreSQL. Эта база данных используется по умолчанию для запросов в редакторе запросов.

Раздел Authentication:

Настройка Описание
Username Введите имя пользователя, используемое для подключения к вашей базе данных PostgreSQL.
Password Введите пароль, используемый для подключения к базе данных PostgreSQL. Это поле необязательно. Если оставить его пустым, клиентский драйвер PostgreSQL определит пароль, используя стандартный файл паролей PostgreSQL (.pgpass). Чтобы использовать нестандартное расположение файла паролей, задайте переменную среды PGPASSFILE в процессе сервера Grafana.
TLS/SSL Mode Определяет, согласовывается ли защищённое соединение TLS/SSL с сервером и каким образом. О рекомендациях по каждому режиму см. Справочник по режимам TLS/SSL. При значении disable параметры TLS/SSL Method и Auth Details не отображаются.
TLS/SSL Method Определяет, как настраиваются сертификаты TLS/SSL.
- File system path Эта опция позволяет настраивать сертификаты, указывая пути к существующим сертификатам в локальной файловой системе, где работает Grafana. Убедитесь, что этот файл доступен для чтения пользователю, от имени которого выполняется процесс Grafana.
- Certificate content Эта опция позволяет настраивать сертификаты, указывая их содержимое. Содержимое хранится и шифруется в базе данных Grafana. При подключении к базе данных сертификаты сохраняются как файлы в локальной файловой системе, в каталоге данных Grafana.

Справочник по режимам TLS/SSL

Выбирайте режим TLS/SSL в зависимости от ваших требований безопасности и от того, где размещена ваша база данных:

Режим Шифрование Идентификация сервера проверена Когда использовать
disable Нет Нет Только локальная разработка или доверенные приватные сети. Не используйте в продакшене.
require Да Нет Рекомендуемый минимум для облачных баз данных, таких как Amazon RDS, Azure Database for PostgreSQL и Google Cloud SQL. Шифрует соединение, но не проверяет сертификат сервера.
verify-ca Да Только CA Используйте, когда нужно подтвердить, что сертификат сервера подписан доверенным CA, но не требуется проверять имя хоста.
verify-full Да CA + имя хоста Наиболее безопасный вариант. Проверяет как CA, так и соответствие имени хоста сервера сертификату. Рекомендуется для продакшена, когда вы контролируете сертификаты.

Note

Большинство облачных сервисов PostgreSQL (Amazon RDS, Azure Database for PostgreSQL, Google Cloud SQL) требуют как минимум режима require. Если вы оставите TLS/SSL Mode в значении disable, соединение может быть отклонено сервером. Проверьте документацию вашего облачного провайдера на предмет рекомендуемой настройки sslmode.

TLS/SSL Auth Details:

Если вы выбрали режимы TLS/SSL Mode require, verify-ca или verify-full и file system path, требуются следующие параметры:

Настройка Описание
TLS/SSL Root Certificate Укажите путь к файлу корневого сертификата.
TLS/SSL Client Certificate Укажите путь к клиентскому сертификату и убедитесь, что файл доступен пользователю, от имени которого выполняется процесс Grafana.
TLS/SSL Client Key Укажите путь к файлу клиентского ключа и убедитесь, что файл доступен пользователю, от имени которого выполняется процесс Grafana.

Если вы выбрали режим TLS/SSL Mode require и TLS/SSL Method certificate content, требуются следующие параметры:

Настройка Описание
TLS/SSL Client Certificate Укажите клиентский сертификат.
TLS/SSL Client Key Укажите клиентский ключ.

Если вы выбрали режимы TLS/SSL Mode verify-ca или verify-full с TLS/SSL Method certificate content, требуются следующие параметры:

Настройка Описание
TLS/SSL Client Certificate Укажите клиентский сертификат.
TLS/SSL Root Certificate Укажите корневой сертификат.
TLS/SSL Client Key Укажите клиентский ключ.

PostgreSQL Options:

Настройка Описание
Version Версия сервера PostgreSQL. Определяет, какие функции доступны в конструкторе запросов. Значение по умолчанию — 9.3. При сохранении источника данных Grafana автоматически определяет версию сервера и обновляет это поле, если удаётся успешно подключиться.
Min time interval Определяет нижнюю границу интервала авто-группировки по времени. Grafana рекомендует согласовывать эту настройку с частотой записи данных. Например, установите её в 1m, если ваши данные записываются каждую минуту. Примеры формата см. в разделе Min time interval.
TimescaleDB База данных временных рядов, построенная как расширение PostgreSQL. Когда она включена, Grafana использует time_bucket в макросе $__timeGroup и отображает специфичные для TimescaleDB агрегатные функции в конструкторе запросов. Grafana автоматически определяет TimescaleDB при сохранении, если ваш сервер имеет версию 9.6 или более позднюю и расширение установлено. Дополнительную информацию см. в документации TimescaleDB.

Connection limits:

Эти настройки управляют тем, как Grafana управляет подключениями к вашему серверу PostgreSQL. Настраивайте эти значения, если вы разделяете базу данных с другими приложениями или используете программное обеспечение для пула подключений, такое как PgBouncer.

Настройка Описание
Max open Максимальное количество открытых подключений к базе данных. Значение по умолчанию — 100. Уменьшите его, если ваш сервер PostgreSQL имеет низкий лимит max_connections или если несколько экземпляров Grafana подключаются к одной и той же базе данных.
Auto max idle Переключатель, устанавливающий максимальное количество простаивающих подключений равным количеству максимальных открытых подключений. Эта настройка включена по умолчанию.
Max idle Максимальное количество подключений в пуле простаивающих подключений. Значение по умолчанию — 100. При использовании PgBouncer или аналогичного ПО для пула подключений рассмотрите возможность его снижения, чтобы избежать удержания ненужных подключений.
Max lifetime Максимальное время в секундах, в течение которого подключение может быть повторно использовано. Значение по умолчанию — 14400 (4 часа). Задайте меньшее значение, если ваша сеть или политика безопасности требуют периодического переподключения.

Private data source connect:

Настройка Описание
Private data source connect Только для пользователей Grafana Cloud. Private data source connect, или PDC, позволяет установить приватное, защищённое соединение между экземпляром, или стеком, Grafana Cloud и источниками данных, защищёнными внутри приватной сети. Нажмите раскрывающийся список, чтобы найти URL для PDC. Дополнительную информацию см. в разделе Private data source connect (PDC).

Нажмите Manage private data source connect, чтобы перейти на страницу вашего подключения PDC, где вы найдёте сведения о конфигурации PDC.

Secure SOCKS proxy:

Если в вашем экземпляре Grafana включена функция Secure SOCKS proxy, в настройках источника данных появляется переключатель. Когда он включён, Grafana маршрутизирует подключения PostgreSQL через SOCKS-прокси для защищённого доступа к базам данных в приватных сетях. Дополнительную информацию см. в разделе Настройка безопасного SOCKS5-прокси.

После добавления настроек подключения PostgreSQL нажмите Save & test, чтобы проверить и сохранить подключение источника данных.

Min time interval

Настройка Min time interval определяет нижнюю границу для переменных $__interval и $__interval_ms.

Эта опция также может быть настроена или переопределена на панели дашборда в настройках источника данных.

Это значение должно быть отформатировано как число, за которым следует допустимый идентификатор времени:

Идентификатор Описание
y год
M месяц
w неделя
d день
h час
m минута
s секунда
ms миллисекунда

Провижининг источника данных

Вы можете определить и настроить источник данных в файлах YAML с помощью провижининга. Дополнительную информацию о провижининге и доступных параметрах конфигурации см. в разделе Провижининг Grafana.

ID плагина — grafana-postgresql-datasource. Примеры провижининга в этом документе используют type: postgres, который остаётся поддерживаемым псевдонимом.

Базовый пример провижининга

Следующий пример провижинит источник данных PostgreSQL с аутентификацией по паролю и отключённым SSL:

YAML
apiVersion: 1

datasources:
  - name: Postgres
    type: postgres
    url: localhost:5432
    user: grafana
    secureJsonData:
      password: 'Password!'
    jsonData:
      database: grafana
      sslmode: 'disable' # disable/require/verify-ca/verify-full
      maxOpenConns: 100
      maxIdleConns: 100
      maxIdleConnsAuto: true
      connMaxLifetime: 14400
      postgresVersion: 903 # 900=9.0 ... 906=9.6, 1000=10, 1100=11, 1200=12, 1300=13, 1400=14, 1500=15
      timescaledb: false

Провижининг с TLS

Следующий пример провижинит источник данных PostgreSQL с режимом TLS verify-full, используя пути файловой системы для сертификатов:

YAML
apiVersion: 1

datasources:
  - name: Postgres-TLS
    type: postgres
    url: db.example.com:5432
    user: grafana
    secureJsonData:
      password: '<PASSWORD>'
    jsonData:
      database: grafana
      sslmode: 'verify-full'
      tlsConfigurationMethod: 'file-path'
      sslRootCertFile: '/etc/grafana/certs/root.crt'
      sslCertFile: '/etc/grafana/certs/client.crt'
      sslKeyFile: '/etc/grafana/certs/client.key'

Замените <PASSWORD> на пароль вашей базы данных и обновите пути к сертификатам в соответствии с вашей средой.

Провижининг с TimescaleDB

Следующий пример включает поддержку TimescaleDB:

YAML
apiVersion: 1

datasources:
  - name: Postgres-TimescaleDB
    type: postgres
    url: timescale.example.com:5432
    user: grafana
    secureJsonData:
      password: '<PASSWORD>'
    jsonData:
      database: metrics
      sslmode: 'require'
      postgresVersion: 1000
      timescaledb: true

Замените <PASSWORD> на пароль вашей базы данных.

Провижининг с Unix-сокетом

Следующий пример подключается через Unix-сокет вместо TCP:

YAML
apiVersion: 1

datasources:
  - name: Postgres-Socket
    type: postgres
    url: /var/run/postgresql
    user: grafana
    secureJsonData:
      password: '<PASSWORD>'
    jsonData:
      database: grafana
      sslmode: 'disable'

Замените <PASSWORD> на пароль вашей базы данных. При использовании Unix-сокета задайте url равным пути к каталогу сокета. Не указывайте номер порта.

Провижининг с переменными среды

Вы можете использовать синтаксис $__env{} для ссылки на переменные среды в файлах провижининга. Это позволяет избежать хранения учётных данных в открытом тексте YAML:

YAML
apiVersion: 1

datasources:
  - name: Postgres
    type: postgres
    url: $__env{PG_HOST}:$__env{PG_PORT}
    user: $__env{PG_USER}
    secureJsonData:
      password: $__env{PG_PASSWORD}
    jsonData:
      database: $__env{PG_DATABASE}
      sslmode: 'require'

Справочник по конфигурации провижининга

В следующей таблице перечислены все поля jsonData и secureJsonData, поддерживаемые при провижининге источника данных PostgreSQL:

Поле Расположение Описание
database jsonData Имя базы данных.
sslmode jsonData Режим TLS/SSL: disable, require, verify-ca или verify-full.
maxOpenConns jsonData Максимум открытых подключений. По умолчанию: 100.
maxIdleConns jsonData Максимум простаивающих подключений. По умолчанию: 100.
maxIdleConnsAuto jsonData Автоматически устанавливать максимум простаивающих равным максимуму открытых. По умолчанию: true.
connMaxLifetime jsonData Максимальное время жизни подключения в секундах. По умолчанию: 14400.
postgresVersion jsonData Код версии сервера для конструктора запросов. Примеры: 900 (9.0), 903 (9.3), 1000 (10), 1100 (11), 1200 (12), 1300 (13), 1400 (14), 1500 (15). Grafana автоматически определяет это при сохранении, когда это возможно.
timescaledb jsonData Включить поддержку TimescaleDB. По умолчанию: false.
timeInterval jsonData Нижняя граница для $__interval и $__interval_ms. Тот же формат, что и Min time interval (например, 1m).
tlsConfigurationMethod jsonData Метод сертификата TLS: file-path или file-content.
sslRootCertFile jsonData Путь к корневому сертификату CA (при использовании метода file-path).
sslCertFile jsonData Путь к клиентскому сертификату (при использовании метода file-path).
sslKeyFile jsonData Путь к клиентскому ключу (при использовании метода file-path).
password secureJsonData Пароль базы данных.
tlsCACert secureJsonData Содержимое корневого сертификата CA (при использовании метода file-content).
tlsClientCert secureJsonData Содержимое клиентского сертификата (при использовании метода file-content).
tlsClientKey secureJsonData Содержимое клиентского ключа (при использовании метода file-content).

Устранение проблем провижининга

Если вы сталкиваетесь с ошибками запросов метрик или другими проблемами при провижининге, обратитесь к разделу Ошибки провижининга в руководстве по устранению неполадок PostgreSQL.

Настройка с помощью Terraform

Вы можете настроить источник данных PostgreSQL с помощью Terraform и провайдера Grafana для Terraform.

Дополнительную информацию о провижининге ресурсов с помощью Terraform см. в разделе Grafana как код с использованием Terraform.

Пример Terraform

Следующий пример создаёт базовый источник данных PostgreSQL:

hcl
resource "grafana_data_source" "postgres" {
  name = "Postgres"
  type = "postgres"
  url  = "localhost:5432"
  user = "grafana"

  json_data_encoded = jsonencode({
    database         = "grafana"
    sslmode          = "disable"
    maxOpenConns     = 100
    maxIdleConns     = 100
    maxIdleConnsAuto = true
    connMaxLifetime  = 14400
    postgresVersion  = 903
    timescaledb      = false
  })

  secure_json_data_encoded = jsonencode({
    password = "Password!"
  })
}

Все доступные параметры конфигурации см. в документации по ресурсу источника данных провайдера Grafana.

Дальнейшие шаги

После настройки источника данных PostgreSQL вы можете: