Настройка источника данных 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 с ограниченными разрешениями:
CREATE USER 'grafanaReader' IDENTIFIED BY 'password';
GRANT SELECT ON mydatabase.mytable TO 'grafanaReader';
Используйте подстановочные знаки (*) вместо базы данных или таблицы, если хотите предоставить доступ к большему числу баз данных и таблиц.
Добавление источника данных MySQL
Чтобы добавить источник данных MySQL, выполните следующие шаги:
- В меню слева нажмите Connections.
- Нажмите Add new connection и введите
MySQLв строке поиска. - Выберите вариант MySQL data source.
- Нажмите 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.
Это значение должно быть отформатировано как число, за которым следует допустимый идентификатор времени:
Вы можете переопределить этот параметр в панели дашборда в её параметрах источника данных.
Провижининг источника данных
Вы можете определить и настроить источник данных в файлах YAML в рамках системы провижининга Grafana. Дополнительную информацию о провижининге и доступных параметрах конфигурации см. в разделе Provision Grafana.
Примеры провижининга MySQL
Basic provisioning:
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:
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:
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:
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 вы можете:
- Писать запросы с помощью редактора запросов, чтобы исследовать и визуализировать данные.
- Использовать переменные шаблонов для создания динамических многоразовых дашбордов.
- Добавлять аннотации, чтобы накладывать события MySQL на ваши графики.
- Настроить алертинг для создания правил алертинга на основе ваших данных MySQL.
- Устранять неполадки, если у вас возникнут проблемы с источником данных.