4 Мониторинг MySQL с помощью Zabbix агент 2
Введение
На этой странице описаны шаги, необходимые для начала базового мониторинга сервера MySQL.
Для мониторинга сервера MySQL существует несколько подходов: Zabbix агент, Zabbix агент 2 или стандарт Open Database Connectivity (ODBC). Основное внимание в этом руководстве уделено мониторингу сервера MySQL с помощью Zabbix агента 2, который является рекомендуемым подходом благодаря простой настройке в различных средах. Однако на этой странице также приведены инструкции для других подходов, поэтому вы можете выбрать тот, который лучше всего соответствует вашим требованиям.
Для кого предназначено это руководство
Это руководство предназначено для новых пользователей Zabbix и содержит минимальный набор шагов, необходимых для включения базового мониторинга сервера MySQL. Если вам нужны возможности глубокой настройки или требуется более расширенная конфигурация, смотрите раздел Configuration руководства Zabbix.
Предварительные требования
Прежде чем продолжить работу с этим руководством, необходимо загрузить и установить сервер Zabbix, веб-интерфейс Zabbix и агент Zabbix 2 в соответствии с инструкциями для вашей ОС.
В зависимости от вашей среды некоторые шаги в этом руководстве могут немного отличаться. Это руководство основано на среде с Ubuntu.
Создание пользователя MySQL
Для мониторинга сервера MySQL Zabbix требуется доступ к нему и его процессам. В вашей установке MySQL уже есть пользователь с необходимым уровнем доступа (пользователь "zabbix", созданный при установке Zabbix), однако у этого пользователя больше привилегий, чем требуется для простого мониторинга (привилегии на DROP баз данных, DELETE записей из таблиц и т. д.). Поэтому необходимо создать пользователя MySQL, предназначенного только для мониторинга сервера MySQL.
1. Подключитесь к клиенту MySQL, создайте пользователя "zbx_monitor" (замените <password> для пользователя "zbx_monitor" на пароль по вашему выбору) и предоставьте пользователю необходимые привилегии с помощью GRANT:
mysql -u root -p
# Enter password:
mysql> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
mysql> quit;
После создания пользователя можно переходить к следующему шагу.
Настройка веб-интерфейса Zabbix
1. Войдите в веб-интерфейс Zabbix.
2. Создайте узел сети в веб-интерфейсе Zabbix:
- В поле Host name введите имя узла сети (например, "MySQL server").
- В поле Templates введите или выберите шаблон "MySQL by Zabbix agent 2", который будет привязан к узлу сети.
- В поле Host groups введите или выберите группу узлов сети (например, "Databases").
- В поле Interfaces добавьте интерфейс типа "Agent" и укажите IP-адрес вашего сервера MySQL. В этом руководстве используется "127.0.0.1" (localhost) для мониторинга сервера MySQL, установленного на той же машине, что и сервер Zabbix и Zabbix агент 2.

- На вкладке Macros переключитесь на Inherited and host macros, найдите следующие макросы и нажмите Change рядом со значением макроса, чтобы обновить его:
- {$MYSQL.DSN} - задайте источник данных сервера MySQL (строку подключения именованной сессии из файла конфигурации плагина MySQL для Zabbix агент 2). В этом руководстве используется источник данных по умолчанию "tcp://localhost:3306" для мониторинга сервера MySQL, установленного на той же машине, что и сервер Zabbix и Zabbix агент 2.
- {$MYSQL.PASSWORD} - задайте пароль ранее созданного пользователя MySQL "zbx_monitor".
- {$MYSQL.USER} - задайте имя ранее созданного пользователя MySQL "zbx_monitor".

3. Нажмите Add, чтобы добавить узел сети. Этот узел сети будет представлять ваш сервер MySQL.
Просмотр собранных метрик
Поздравляем! На этом этапе Zabbix уже отслеживает ваш сервер MySQL.
Чтобы просмотреть собранные метрики, перейдите в раздел меню Мониторинг → Узлы сети и нажмите Панели рядом с узлом сети.

Это действие перенаправит вас на панель узла сети (настроенную на уровне шаблона) с наиболее важными метриками, собранными с сервера MySQL.

Кроме того, в разделе меню Мониторинг → Узлы сети вы можете нажать Последние данные, чтобы просмотреть все последние собранные метрики в виде списка. Обратите внимание, что для элемента данных MySQL: Calculated value of innodb_log_file_size отсутствие данных является ожидаемым, так как это значение будет вычислено на основе данных за последний час.

Настройка оповещений о проблемах
Zabbix может уведомлять вас о проблемах в вашей инфраструктуре различными способами. В этом руководстве приведены основные шаги по настройке отправки оповещений по электронной почте.
1. Перейдите в Настройки пользователя → Профиль, откройте вкладку Способы оповещения и добавьте свой адрес электронной почты.

2. Следуйте руководству Получение уведомления о проблеме.
В следующий раз, когда Zabbix обнаружит проблему, вы должны получить оповещение по электронной почте.
Проверьте вашу конфигурацию
Чтобы проверить вашу конфигурацию, мы можем сымитировать реальную проблему, обновив конфигурацию узла сети в веб-интерфейсе Zabbix.
1. Откройте конфигурацию вашего узла сети MySQL server в Zabbix.
2. Перейдите на вкладку Macros и выберите Inherited and host macros.
3. Нажмите Change рядом, например, с ранее настроенным значением макроса {$MYSQL.USER} и укажите другое имя пользователя MySQL.
4. Нажмите Update, чтобы обновить конфигурацию узла сети.
5. Через некоторое время Zabbix обнаружит проблему «MySQL: Service is down», поскольку не сможет подключиться к серверу MySQL. Проблема появится в разделе Monitoring → Problems.

Если оповещения настроены, вы также получите уведомление о проблеме.
6. Измените значение макроса обратно на предыдущее, чтобы устранить проблему и продолжить мониторинг сервера MySQL.
Другие подходы к мониторингу MySQL
Вместо мониторинга сервера MySQL с помощью Zabbix агент 2 вы также можете использовать Zabbix агент или стандарт Open Database Connectivity (ODBC). Хотя рекомендуется использовать Zabbix агент 2, могут существовать конфигурации, которые не поддерживают Zabbix агент 2 или требуют индивидуального подхода.
Основное различие между Zabbix агентом и ODBC заключается в методе сбора данных: Zabbix агент устанавливается непосредственно на сервере MySQL и собирает данные с помощью встроенной функциональности, тогда как ODBC использует драйвер ODBC для установления соединения с сервером MySQL и получения данных с помощью SQL-запросов.
Хотя многие шаги настройки аналогичны мониторингу сервера MySQL с помощью Zabbix агент 2, есть и существенные различия — вам необходимо настроить Zabbix агент или ODBC, чтобы иметь возможность мониторить сервер MySQL. Следующие инструкции помогут вам разобраться в этих различиях.
Мониторинг MySQL с помощью агента Zabbix
Чтобы отслеживать сервер MySQL с помощью агента Zabbix, необходимо загрузить и установить сервер Zabbix, веб-интерфейс Zabbix и агент Zabbix в соответствии с инструкциями для вашей ОС.
После успешной установки необходимых компонентов Zabbix необходимо создать пользователя MySQL, как описано в разделе Создание пользователя MySQL.
После создания пользователя MySQL необходимо настроить агент Zabbix так, чтобы он мог устанавливать соединение с сервером MySQL и отслеживать его. Это включает настройку нескольких пользовательских параметров для выполнения пользовательских проверок агента, а также предоставление агенту Zabbix необходимых учетных данных для подключения к серверу MySQL от имени ранее созданного пользователя "zbx_monitor".
Настройка агента Zabbix
1. Перейдите в каталог дополнительных конфигураций агента Zabbix.
cd /usr/local/etc/zabbix/zabbix_agentd.d
Каталог дополнительных конфигураций агента Zabbix должен находиться в том же каталоге, что и файл конфигурации агента Zabbix (zabbix_agentd.conf).
В зависимости от вашей ОС и установки Zabbix этот каталог может находиться в другом месте, отличном от указанного в этом руководстве.
Расположение по умолчанию смотрите в параметре Include в файле конфигурации агента Zabbix.
Вместо определения всех необходимых пользовательских параметров для мониторинга сервера MySQL в файле конфигурации агента Zabbix эти параметры будут определены в отдельном файле в каталоге дополнительных конфигураций.
2. Создайте файл template_db_mysql.conf в каталоге дополнительных конфигураций агента Zabbix.
vi template_db_mysql.conf
3. Скопируйте содержимое файла template_db_mysql.conf (расположенного в репозитории Zabbix) в созданный вами файл template_db_mysql.conf и сохраните его.
4. Перезапустите агент Zabbix, чтобы обновить его конфигурацию.
systemctl restart zabbix-agent
После настройки пользовательских параметров агента Zabbix можно перейти к настройке учетных данных, которые позволят агенту Zabbix получить доступ к серверу MySQL.
5. Перейдите в домашний каталог агента Zabbix (если он отсутствует в вашей системе, его необходимо создать; по умолчанию: /var/lib/zabbix).
cd /var/lib/zabbix
6. Создайте файл .my.cnf в домашнем каталоге агента Zabbix.
vi .my.cnf
7. Скопируйте следующее содержимое в файл .my.cnf (замените <password> на пароль пользователя "zbx_monitor").
[client]
user='zbx_monitor'
password='<password>'
Настройте веб-интерфейс Zabbix и проверьте вашу конфигурацию
Чтобы настроить веб-интерфейс Zabbix, следуйте инструкциям в разделе Настройка веб-интерфейса Zabbix со следующими изменениями:
- В поле Templates введите или выберите шаблон "MySQL by Zabbix agent", который будет привязан к узлу сети.
- Настройка Macros не требуется.
После настройки веб-интерфейса Zabbix вы можете просматривать собранные метрики и настроить оповещения о проблемах.
Чтобы проверить вашу конфигурацию, следуйте инструкциям в разделе Проверка конфигурации со следующими изменениями:
- В разделе Inherited and host macros конфигурации узла сети сервера MySQL нажмите Change рядом со значением макроса {$MYSQL.PORT} и укажите другой порт (например, "6033").

Мониторинг MySQL с помощью ODBC
Чтобы выполнять мониторинг сервера MySQL с помощью ODBC, необходимо загрузить и установить сервер Zabbix и веб-интерфейс Zabbix.
После успешной установки необходимых компонентов Zabbix необходимо создать пользователя MySQL, как описано в разделе Создание пользователя MySQL.
После создания пользователя MySQL необходимо настроить ODBC. Это включает установку одной из наиболее распространённых реализаций ODBC API с открытым исходным кодом — unixODBC — и драйвера unixODBC, а также редактирование файла конфигурации драйвера ODBC.
Настройка ODBC
1. Установите unixODBC. Рекомендуемый способ установки unixODBC — использовать стандартные репозитории пакетов операционной системы Linux.
apt install unixodbc
2. Установите драйвер базы данных MariaDB unixODBC. Несмотря на то, что у вас база данных MySQL, драйвер MariaDB unixODBC используется из соображений совместимости.
apt install odbc-mariadb
3. Проверьте расположение файлов конфигурации ODBC odbcinst.ini и odbc.ini.
odbcinst -j
Результат выполнения этой команды должен быть похож на следующий.
unixODBC 2.3.9
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
...
4. Чтобы настроить драйвер ODBC для мониторинга базы данных MySQL, вам потребуется имя драйвера, которое указано в файле odbcinst.ini. В следующем примере файла odbcinst.ini имя драйвера — "MariaDB Unicode".
[MariaDB Unicode]
Driver=libmaodbc.so
Description=MariaDB Connector/ODBC(Unicode)
Threading=0
UsageCount=1
5. Скопируйте следующее содержимое в файл odbc.ini (замените <password> на пароль пользователя "zbx_monitor"). В этом руководстве используется "127.0.0.1" (localhost) в качестве адреса сервера MySQL для мониторинга сервера MySQL, установленного на той же машине, что и драйвер ODBC. Обратите внимание на имя источника данных (DSN) "test", которое потребуется при настройке веб-интерфейса Zabbix.
[test]
Driver=MariaDB Unicode
Server=127.0.0.1
User=zbx_monitor
Password=<password>
Port=3306
Database=zabbix
Настройка веб-интерфейса Zabbix и проверка конфигурации
Чтобы настроить веб-интерфейс Zabbix, следуйте инструкциям из раздела Настройка веб-интерфейса Zabbix со следующими изменениями:
- В поле Templates введите или выберите шаблон "MySQL by ODBC", который будет привязан к узлу сети.
- Настройка Interfaces не требуется.
- Значение макроса {$MYSQL.DSN} в разделе Inherited and host macros конфигурации узла сети сервера MySQL должно быть установлено в имя DSN из файла odbc.ini.
После настройки веб-интерфейса Zabbix вы сможете просматривать собранные метрики, настроить оповещения о проблемах и проверить конфигурацию.
См. также
- Создание элемента данных — как начать мониторинг дополнительных метрик.
- Эскалации проблем — как создавать многошаговые сценарии оповещений (например, сначала отправить сообщение системному администратору, затем, если проблема не будет решена в течение 45 минут, отправить сообщение менеджеру центра обработки данных).
- Мониторинг ODBC — как настроить ODBC в других дистрибутивах Linux и как начать мониторинг дополнительных метрик, связанных с базой данных, с помощью ODBC.
- Шаблон MySQL by Zabbix agent — дополнительная информация о шаблоне MySQL by Zabbix agent.
- Шаблон MySQL by Zabbix agent 2 — дополнительная информация о шаблоне MySQL by Zabbix agent 2.
- Шаблон MySQL by ODBC — дополнительная информация о шаблоне MySQL by ODBC.