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

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

Этот документ содержит инструкции по настройке источника данных MySQL и объясняет доступные параметры конфигурации. Общую информацию об управлении источниками данных см. в разделе Управление источниками данных.

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

Перед настройкой источника данных MySQL убедитесь, что у вас есть следующее:

  • Разрешения Grafana: для настройки источников данных у вас должна быть роль администратора организации. Администраторы организации также могут настроить источник данных через YAML с помощью системы провижининга Grafana.

  • Работающий экземпляр MySQL: MySQL 5.7 или новее, MariaDB 10.5 или новее либо совместимая база данных на основе MySQL, например Percona Server.

  • Сетевой доступ: Grafana должна иметь возможность подключиться к вашему серверу MySQL. Порт по умолчанию — 3306.

  • Учётные данные для аутентификации: пользователь MySQL, имеющий как минимум разрешения SELECT на базы данных и таблицы, которые вы хотите запрашивать.

  • Сертификаты безопасности: при использовании зашифрованных подключений подготовьте необходимые сертификаты TLS/SSL.

Note

Плагин источника данных MySQL предварительно установлен в Grafana, поэтому дополнительная установка не требуется. Начиная с Grafana 13.2 он поставляется как отдельный плагин, который обновляется независимо от релизов Grafana. Подробности см. в разделе Обновления плагина.

Tip

Пользователи Grafana Cloud: Grafana Cloud не предоставляет статические исходящие IP-адреса для подключений к источникам данных, поэтому добавление IP-адресов в список разрешённых не является поддерживаемым способом подключения. Если ваш сервер MySQL находится в частной сети, настройте Private data source connect (PDC), чтобы установить защищённое подключение, не открывая базу данных в публичный интернет.

Разрешения пользователя базы данных

При добавлении источника данных убедитесь, что указанный пользователь базы данных имеет только разрешения SELECT на соответствующие базу данных и таблицы. Grafana не проверяет безопасность запросов, а значит, они могут содержать потенциально опасные SQL-инструкции, такие как USE otherdb; или DROP TABLE user;, которые могут быть выполнены.

Чтобы минимизировать этот риск, Grafana настоятельно рекомендует создать выделенного пользователя MySQL с ограниченными разрешениями:

SQL
CREATE USER 'grafanaReader' IDENTIFIED BY 'password';
GRANT SELECT ON mydatabase.mytable TO 'grafanaReader';

Используйте подстановочные знаки (*) вместо базы данных или таблицы, если хотите предоставить доступ к большему числу баз данных и таблиц.

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

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

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

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

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

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

  • Name — задаёт имя, которое вы используете для обращения к источнику данных в панелях и запросах. Примеры: mysql-assets-1, mysqldb1.
  • Default — переключатель, делающий этот конкретный источник данных MySQL источником данных по умолчанию, предварительно выбранным в панелях и визуализациях.

Connection:

  • Host URL — введите IP-адрес/имя хоста и, при необходимости, порт вашего экземпляра MySQL. Если порт не указан, Grafana использует порт по умолчанию 3306.
  • Database — введите имя вашей базы данных MySQL.

Authentication:

Источник данных MySQL поддерживает аутентификацию по имени пользователя и паролю, с необязательным TLS для зашифрованных подключений. Kerberos, gMSA и другие механизмы внешней аутентификации не поддерживаются. Вместо этого создайте выделенного пользователя MySQL для Grafana.

  • Username — введите имя пользователя, используемое для подключения к вашей базе данных MySQL.
  • Password — введите пароль, используемый для подключения к базе данных MySQL.
  • Use TLS Client Auth — переключатель для включения аутентификации TLS с использованием клиентского сертификата, указанного в защищённой конфигурации JSON. Дополнительную информацию о TLS и настройке зашифрованных подключений в MySQL см. в разделах Using TLS Connections и Configuring MySQL to Use Encrypted Connections. Укажите клиентский сертификат в поле TLS/SSL Client Certificate. Укажите ключ в поле TLS/SSL Client Key.
  • With CA Cert — переключатель для аутентификации с использованием сертификата CA. Требуется для проверки самоподписанных TLS-сертификатов. Следуйте инструкциям вашего CA (центра сертификации), чтобы скачать файл сертификата. Укажите корневой сертификат в поле TLS/SSL Root Certificate, если этого требует режим TLS/SSL.
  • Skip TLS Verification — переключатель для пропуска проверки цепочки TLS-сертификатов и имени хоста сервера MySQL.
  • Allow Cleartext Passwords — переключатель, разрешающий использование клиентского плагина с открытым текстом, когда этого требует определённый тип учётной записи, например созданной с помощью плагина аутентификации PAM. Учтите, что передача паролей в виде открытого текста может создавать угрозу безопасности в некоторых конфигурациях. Чтобы избежать проблем, связанных с паролями, рекомендуется подключаться клиентами к серверу MySQL с помощью безопасного метода, защищающего пароль. К таким вариантам относятся TLS/SSL, IPsec или частная сеть.

Дополнительные параметры

Ниже приведены дополнительные параметры MySQL.

MySQL options:

  • Session Timezone — задаёт часовой пояс, используемый в сессии базы данных, например Europe/Berlin или +02:00. Требуется, если часовой пояс базы данных (или хоста базы данных) установлен в значение, отличное от UTC. Установите его в +00:00, чтобы Grafana могла правильно обрабатывать время. Установите значение, используемое в сессии, с помощью SET time_zone='...'. Если оставить это поле пустым, часовой пояс не будет обновлён. Дополнительную информацию см. в разделе MySQL Server Time Zone Support.
  • Min time interval — задаёт нижнюю границу для переменных $__interval и $__interval_ms. Grafana рекомендует согласовывать этот параметр с частотой записи данных. Например, установите его в 1m, если ваши данные записываются каждую минуту. Примеры формата см. в разделе Min time interval.

Connection limits:

  • Max open — максимальное количество открытых подключений к базе данных, по умолчанию 100.
  • Max idle — максимальное количество подключений в пуле неактивных подключений, по умолчанию 100.
  • Auto (max idle) — переключатель, устанавливающий максимальное количество неактивных подключений равным максимальному количеству открытых подключений. По умолчанию — true.
  • Max lifetime — максимальное время в секундах, в течение которого подключение может быть переиспользовано. Оно всегда должно быть меньше настроенного в MySQL параметра wait_timeout. По умолчанию — 14400, то есть 4 часа.

Private data source connect:

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

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

Secure SOCKS proxy:

Note

Этот раздел отображается только тогда, когда на сервере Grafana включена функция безопасного прокси SOCKS.

  • Enabled — переключатель для маршрутизации запросов к экземпляру MySQL через безопасный прокси SOCKS.

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

Min time interval

Параметр Min time interval задаёт нижнюю границу для переменных $__interval и $__interval_ms.

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

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

Вы можете переопределить этот параметр в панели дашборда в её параметрах источника данных.

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

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

Примеры провижининга MySQL

Basic provisioning:

YAML
apiVersion: 1

datasources:
  - name: MySQL
    type: mysql
    url: localhost:3306
    user: grafana
    jsonData:
      database: grafana
      maxOpenConns: 100
      maxIdleConns: 100
      maxIdleConnsAuto: true
      connMaxLifetime: 14400
    secureJsonData:
      password: ${GRAFANA_MYSQL_PASSWORD}

Using TLS verification:

YAML
apiVersion: 1

datasources:
  - name: MySQL
    type: mysql
    url: localhost:3306
    user: grafana
    jsonData:
      tlsAuth: true
      database: grafana
      maxOpenConns: 100
      maxIdleConns: 100
      maxIdleConnsAuto: true
      connMaxLifetime: 14400
    secureJsonData:
      password: ${GRAFANA_MYSQL_PASSWORD}
      tlsClientCert: ${GRAFANA_TLS_CLIENT_CERT}
      tlsCACert: ${GRAFANA_TLS_CA_CERT}

Use TLS and skip certificate verification:

YAML
apiVersion: 1

datasources:
  - name: MySQL
    type: mysql
    url: localhost:3306
    user: grafana
    jsonData:
      tlsAuth: true
      tlsSkipVerify: true
      database: grafana
      maxOpenConns: 100
      maxIdleConns: 100
      maxIdleConnsAuto: true
      connMaxLifetime: 14400
    secureJsonData:
      password: ${GRAFANA_MYSQL_PASSWORD}
      tlsClientCert: ${GRAFANA_TLS_CLIENT_CERT}
      tlsCACert: ${GRAFANA_TLS_CA_CERT}

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

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

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

Пример Terraform

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

hcl
resource "grafana_data_source" "mysql" {
  name = "MySQL"
  type = "mysql"
  url  = "localhost:3306"
  user = "grafana"

  json_data_encoded = jsonencode({
    database         = "grafana"
    maxOpenConns     = 100
    maxIdleConns     = 100
    maxIdleConnsAuto = true
    connMaxLifetime  = 14400
  })

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

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

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

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