Мониторинг MySQL с помощью интеграции Grafana Cloud
Настройте мониторинг MySQL в Grafana Cloud за несколько шагов: добавьте интеграцию MySQL, установите Grafana Agent на сервер базы данных, проверьте подключение и используйте преднастроенные панели для метрик и логов. Создайте отдельного пользователя MySQL для агента, ограничьте права по возможности и перезапустите сервис агента после изменения конфигурации.
Быстрая навигация
- Введение
- Начало работы
- Добавление интеграции MySQL
- Установка Grafana Agent
- Исследование панелей
- Аутентификация сервера MySQL
- Критерии приёмки
- Чеклист по ролям
- Метод внедрения
- Альтернативы и ограничения
- План отката
- Тестовые случаи
- Рекомендации по безопасности
- Краткий глоссарий
- Итог
Введение
Grafana — популярное решение с открытым исходным кодом для визуализации и наблюдаемости. Оно умеет подключаться к множеству источников данных: временные ряды, поисковые движки и отдельные приложения. В этой статье показано, как быстро настроить мониторинг MySQL-сервера с помощью официальной интеграции Grafana Cloud и готовых панелей.
Важно: в инструкции показан рабочий сценарий для Grafana Cloud, но шаги применимы и к самохостингу при наличии соответствующих компонентов.
Начало работы
Grafana доступна для самохостинга и как облачный SaaS — Grafana Cloud. В этой статье используется Grafana Cloud из-за поддержки быстрого запуска интеграций и наличия преднастроенных макетов панелей, которые экономят время.
Войдите в аккаунт Grafana. При отсутствии аккаунта можно зарегистрировать бесплатный Grafana Cloud-аккаунт для тестирования.
Добавление интеграции MySQL
Перейдите в раздел Integrations and Connections, доступный через иконку молнии в левой боковой панели. В строке поиска введите mysql.
Вы увидите два результата, оба с меткой MySQL. Выберите элемент, помеченный как Integration. Интеграции предлагают упрощённую конфигурацию и готовые панели для ключевых серверных метрик. Вариант Data source требует ручного подключения, сбора метрик и сборки дашбордов.

На следующем экране выберите операционную систему и архитектуру процессора машины, где размещён ваш MySQL. Подберите значения в выпадающих списках под вашу систему. Нажмите кнопку Install integration, чтобы увидеть инструкции по установке Grafana Agent.

Установка Grafana Agent
Grafana Agent — это служба, которая собирает метрики с машин и отправляет их в ваш Grafana аккаунт. Агент — облегчённая версия сборщика Prometheus.
Запуск скрипта с экрана интеграции скачает Grafana Agent, настроит его для вашего Grafana Cloud и включит мониторинг MySQL. По умолчанию данные собираются каждые 60 секунд.

Скопируйте показанный скрипт и выполните его на сервере с MySQL. В выводе скрипта вы увидите строки о загрузке бинарника и получении файла конфигурации.
Проверьте, что служба Grafana Agent запущена:
$ sudo systemctl status grafana-agent.serviceВы увидите статус службы подобного вида:
● grafana-agent.service - Monitoring system and forwarder
Loaded: loaded (/lib/systemd/system/grafana-agent.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-08-13 17:39:03 UTC; 39s ago
Docs: https://grafana.com/docs/agent/latest/Нажмите Test integration в Grafana Cloud, чтобы проверить соединение. Агент должен передавать данные в Grafana.

После успешного теста откройте View Dashboards, чтобы начать работу с визуализациями.
Исследование панелей
Интеграция MySQL включает две панели: MySQL Overview и MySQL Logs.
- Overview показывает графики по основным аспектам работы: время безотказной работы, запросы в секунду, активные соединения, сортировки и сетевую активность. Эти метрики помогают диагностировать производительность и найти возможности для оптимизации.

- Logs предоставляет поток логов вашего MySQL-инстанса. Интеграция автоматически собирает логи из каталога /var/log/mysql. Дашборд также показывает количество строк логов по уровням важности и кодам ошибок.

Вы можете редактировать дашборды. Нажмите значок настроек в правом верхнем углу и сделайте дашборд редактируемым кнопкой Make editable. После этого станут доступны изменения конфигурации и панелей.
Аутентификация сервера MySQL
Частая проблема — учётная запись MySQL, которую использует Grafana Agent. По умолчанию агент настроен на использование root. Это может не работать, если вход root отключён или запрещён на сервере.
Рекомендация — создать отдельного пользователя MySQL для Grafana и выдать минимально необходимые права. В MySQL-shell выполните команды для создания пользователя и выдачи привилегий:
> CREATE USER 'grafana'@'localhost' IDENTIFIED BY ''; > GRANT ALL PRIVILEGES ON *.* TO 'grafana'@'localhost';> FLUSH PRIVILEGES;Примечание: GRANT ON . даёт доступ ко всем таблицам, включая системные. Интеграция собирает расширенный набор метрик именно при наличии доступа к системным таблицам. При необходимости ограничьте GRANT до конкретных схем или таблиц, но учтите, что это может снизить объём метрик.
Далее отредактируйте файл конфигурации Grafana Agent, обычно /etc/grafana-agent.yaml. Найдите секцию интеграций:
integrations:
mysqld_exporter:
data_source_name: root@(localhost:3306)/Измените data_source_name, чтобы указать нового пользователя:
data_source_name: grafana:@(localhost:3306)/ Перезапустите агент:
$ sudo service grafana-agent restartВажно: храните пароли безопасно. Рассмотрите использование механизмов управления секретами (Vault, secret manager) или файлов с ограниченным доступом.
Критерии приёмки
- Агент находится в состоянии active (running).
- В Grafana Cloud кнопка Test integration проходит успешно.
- В дашборде Overview появляются метрики (uptime, qps, connections) не позже чем через 2–3 минуты после запуска агента.
- Поток логов отображается в Logs и содержит последние записи из /var/log/mysql.
Чеклист по ролям
Администратор СУБД:
- Создать пользователя grafana с паролем.
- Решить вопросы прав доступа и политики паролей.
Системный администратор:
- Установить и запустить Grafana Agent.
- Обеспечить сетевой доступ на исходящие соединения к Grafana Cloud.
Инженер по наблюдаемости:
- Настроить дашборды и алертинг по критическим метрикам.
- Проверить полноту логов и метрик.
Метод внедрения
- Подготовьте тестовый сервер или среду staging.
- Зарегистрируйте Grafana Cloud-аккаунт и добавьте интеграцию MySQL.
- Установите Grafana Agent и проверьте соединение.
- Создайте пользователя MySQL с минимально необходимыми правами.
- Сравните метрики и логи между staging и production.
- Постепенно разверните в production по плану изменений.
Альтернативы и когда это не подходит
- Если вы не используете Grafana Cloud, а предпочитаете локальное развёртывание, можно настроить Prometheus и mysqld_exporter вручную и подключить Grafana как источник данных.
- Если у вас ограничены права на сервере (например, в управляемом хостинге без возможности установить агента), рассмотрите сбор через удалённые экспортёры или использование встроенных метрик хоста.
- Интеграция может не подходить, если политика безопасности запрещает создание пользователя с правами на системные таблицы. В таком случае собранных метрик будет недостаточно для полного обзора.
План отката
Если после изменений наблюдаются ошибки или ухудшение работы:
- Откатить конфигурацию /etc/grafana-agent.yaml к предыдущей версии (сделайте резервную копию перед изменением).
- Перезапустить службу Grafana Agent.
- Если вы меняли права MySQL, верните их к предыдущему состоянию командой REVOKE/GRANT, или восстановите из резервной копии привилегий.
- Уведомить команду и зафиксировать причины отката.
Тестовые случаи и критерии приёмки
Установка агента
- Шаг: выполнить скрипт установки на тестовом хосте.
- Ожидаемое: служба grafana-agent активна.
Передача метрик
- Шаг: нажать Test integration.
- Ожидаемое: тест успешен, метрики появляются в Overview.
Подключение логов
- Шаг: записать тестовую строку в /var/log/mysql.
- Ожидаемое: строка появляется в потоке Logs.
Аутентификация
- Шаг: сменить data_source_name на нового пользователя.
- Ожидаемое: агент авторизуется и продолжает собирать данные.
Рекомендации по безопасности
- Не используйте аккаунт root для регулярного сбора метрик. Создайте отдельного пользователя с минимально необходимыми привилегиями.
- Храните пароли в безопасном хранилище. Избегайте явного прописывания паролей в конфиг-файлах с открытым доступом.
- Ограничьте доступ к /etc/grafana-agent.yaml правами файловой системы (root:root, 600).
- Настройте сетевые правила так, чтобы инстанс агента мог только исходяще подключаться к Grafana Cloud.
- Включите шифрование для каналов передачи данных, если доступно.
Примеры ошибок и способы решения
Агент не стартует:
- Проверьте логи systemd: sudo journalctl -u grafana-agent.service
- Убедитесь, что бинарник скачан и имеет права на исполнение.
Нет метрик в дашборде:
- Проверьте правильность data_source_name в конфигурации.
- Убедитесь, что брандмауэр пропускает исходящие соединения.
Логи не собираются:
- Проверьте, существует ли каталог /var/log/mysql и права доступа.
- Убедитесь, что в конфиге агента включён сбор логов и путь указан корректно.
Наглядное руководство принятия решения
flowchart TD
A[Нужен мониторинг MySQL?] --> B{Есть доступ к серверу включая установку агента?}
B -- Да --> C[Добавить интеграцию в Grafana Cloud]
C --> D[Установить Grafana Agent]
D --> E[Создать пользователя MySQL и задать data_source_name]
E --> F[Проверить метрики и логи]
F --> G[Настроить алерты и сохранить конфигурацию]
B -- Нет --> H[Рассмотреть удалённый экспортёр или Prometheus в облаке]Локальные особенности для русскоязычных окружений
- Убедитесь, что временные зоны на сервере и в Grafana согласованы, чтобы временные метки логов отображались корректно.
- Проверяйте кодировки логов (UTF-8 предпочтительна) — при использовании локализованных сообщений MySQL они должны корректно индексироваться.
Краткий глоссарий
- Grafana Agent — служба для сбора метрик и логов и отправки их в Grafana.
- Integration — преднастроенный способ подключения источника данных с готовыми панелями.
- data_source_name — строка подключения к MySQL, содержащая пользователя, пароль и хост.
Итог
Интеграция MySQL в Grafana Cloud позволяет быстро организовать мониторинг базы данных с минимальными усилиями. Установка агента и настройка учётной записи MySQL займут немного времени, после чего вы получите готовые дашборды и поток логов. Следуйте рекомендациям по безопасности и тестируйте изменения в staging-среде перед переносом в production.

Важно: регулярный просмотр метрик и логов помогает заметить тенденции производительности и предотвратить крупные инциденты.
Похожие материалы
Как убрать рекламу в Instagram
Preview Program для Chromecast и Nest — как присоединиться
Quick Export в Photoshop — быстрый экспорт
Диалоговые окна в Java — JOptionPane, JDialog, JFrame
Как вставить текстовое поле в Google Docs