Гид по технологиям

Мониторинг MySQL с помощью интеграции Grafana Cloud

7 min read DevOps Обновлено 19 Dec 2025
Мониторинг MySQL через интеграцию Grafana Cloud
Мониторинг 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 в Grafana

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

Установка интеграции MySQL в Grafana

Установка Grafana Agent

Grafana Agent — это служба, которая собирает метрики с машин и отправляет их в ваш Grafana аккаунт. Агент — облегчённая версия сборщика Prometheus.

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

Инструкция по установке Grafana Agent на хосте MySQL

Скопируйте показанный скрипт и выполните его на сервере с 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.

Панель состояния интеграции в Grafana Cloud

После успешного теста откройте View Dashboards, чтобы начать работу с визуализациями.

Исследование панелей

Интеграция MySQL включает две панели: MySQL Overview и MySQL Logs.

  • Overview показывает графики по основным аспектам работы: время безотказной работы, запросы в секунду, активные соединения, сортировки и сетевую активность. Эти метрики помогают диагностировать производительность и найти возможности для оптимизации.

Обзор состояния MySQL в Grafana

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

Просмотр логов MySQL в Grafana

Вы можете редактировать дашборды. Нажмите значок настроек в правом верхнем углу и сделайте дашборд редактируемым кнопкой 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.

Инженер по наблюдаемости:

  • Настроить дашборды и алертинг по критическим метрикам.
  • Проверить полноту логов и метрик.

Метод внедрения

  1. Подготовьте тестовый сервер или среду staging.
  2. Зарегистрируйте Grafana Cloud-аккаунт и добавьте интеграцию MySQL.
  3. Установите Grafana Agent и проверьте соединение.
  4. Создайте пользователя MySQL с минимально необходимыми правами.
  5. Сравните метрики и логи между staging и production.
  6. Постепенно разверните в production по плану изменений.

Альтернативы и когда это не подходит

  • Если вы не используете Grafana Cloud, а предпочитаете локальное развёртывание, можно настроить Prometheus и mysqld_exporter вручную и подключить Grafana как источник данных.
  • Если у вас ограничены права на сервере (например, в управляемом хостинге без возможности установить агента), рассмотрите сбор через удалённые экспортёры или использование встроенных метрик хоста.
  • Интеграция может не подходить, если политика безопасности запрещает создание пользователя с правами на системные таблицы. В таком случае собранных метрик будет недостаточно для полного обзора.

План отката

Если после изменений наблюдаются ошибки или ухудшение работы:

  1. Откатить конфигурацию /etc/grafana-agent.yaml к предыдущей версии (сделайте резервную копию перед изменением).
  2. Перезапустить службу Grafana Agent.
  3. Если вы меняли права MySQL, верните их к предыдущему состоянию командой REVOKE/GRANT, или восстановите из резервной копии привилегий.
  4. Уведомить команду и зафиксировать причины отката.

Тестовые случаи и критерии приёмки

  • Установка агента

    • Шаг: выполнить скрипт установки на тестовом хосте.
    • Ожидаемое: служба 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.

Обзор MySQL после настройки интеграции в Grafana

Важно: регулярный просмотр метрик и логов помогает заметить тенденции производительности и предотвратить крупные инциденты.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как убрать рекламу в Instagram
Социальные сети

Как убрать рекламу в Instagram

Preview Program для Chromecast и Nest — как присоединиться
Руководство

Preview Program для Chromecast и Nest — как присоединиться

Quick Export в Photoshop — быстрый экспорт
Photoshop

Quick Export в Photoshop — быстрый экспорт

Диалоговые окна в Java — JOptionPane, JDialog, JFrame
Java

Диалоговые окна в Java — JOptionPane, JDialog, JFrame

Как вставить текстовое поле в Google Docs
Google Docs

Как вставить текстовое поле в Google Docs

Тестирование API с Postman — быстрое руководство
API

Тестирование API с Postman — быстрое руководство