4 Мониторинг MySQL с помощью агента Zabbix 2

Введение

На этой странице вы пройдете через шаги, необходимые для начала базового мониторинга сервера MySQL.

Для мониторинга сервера MySQL существует несколько подходов: Zabbix agent, Zabbix agent 2 или стандарт Open Database Connectivity (ODBC). Основное внимание в этом руководстве уделено мониторингу сервера MySQL с помощью Zabbix agent 2, который является рекомендуемым подходом благодаря простой настройке в различных конфигурациях. Однако на этой странице также приведены инструкции для других подходов, поэтому вы можете выбрать тот, который лучше всего соответствует вашим требованиям.

Для кого предназначено это руководство

Это руководство предназначено для новых пользователей Zabbix и содержит минимальный набор шагов, необходимых для включения базового мониторинга сервера MySQL. Если вам нужны возможности глубокой настройки или более расширенная конфигурация, см. раздел Configuration руководства Zabbix.

Prerequisites

Before proceeding with this guide, you need to download and install Zabbix server, Zabbix frontend and Zabbix agent 2 according to the instructions for your OS.

Depending on your environment, some steps in this guide may slightly differ. This guide is based on an environment running 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 server. В этом руководстве используется "127.0.0.1" (localhost) для мониторинга MySQL server, установленного на той же машине, что и сервер Zabbix и Zabbix agent 2.

  • На вкладке Macros переключитесь на Inherited and host macros, найдите следующие макросы и нажмите Change рядом со значением макроса, чтобы обновить его:

3. Нажмите Add, чтобы добавить узел сети. Этот узел сети будет представлять ваш MySQL server.

Просмотр собранных метрик

Поздравляем! На этом этапе Zabbix уже выполняет мониторинг вашего сервера MySQL.

Чтобы просмотреть собранные метрики, перейдите в раздел меню Monitoring → Hosts и нажмите Dashboards рядом с узлом сети.

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

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

Настройка оповещений о проблемах

Zabbix может уведомлять вас о проблемах в вашей инфраструктуре с помощью различных методов. Это руководство содержит базовые шаги настройки для отправки оповещений по электронной почте.

1. Перейдите в Настройки пользователя → Профиль, откройте вкладку Media и добавьте свой email.

2. Следуйте руководству по получению уведомления о проблеме.

В следующий раз, когда Zabbix обнаружит проблему, вы должны получить оповещение по электронной почте.

Проверьте вашу конфигурацию

Чтобы проверить вашу конфигурацию, мы можем имитировать реальную проблему, обновив конфигурацию узла сети в веб-интерфейсе Zabbix.

1. Откройте конфигурацию узла сети вашего сервера MySQL в 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, есть и некоторые существенные различия — для мониторинга сервера MySQL необходимо настроить агент Zabbix или ODBC. Следующие инструкции проведут вас через эти различия.

Мониторинг 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 со следующими изменениями:

  • В поле Шаблоны введите или выберите шаблон "MySQL by Zabbix agent", который будет связан с узлом сети.
  • Настройка Макросов не требуется.

После настройки веб-интерфейса Zabbix вы можете просмотреть собранные метрики и настроить оповещения о проблемах.

Чтобы проверить вашу конфигурацию, следуйте инструкциям в разделе Проверьте вашу конфигурацию со следующими изменениями:

  • В разделе Унаследованные и макросы узла сети конфигурации узла сети MySQL server нажмите Изменить рядом со значением макроса {$MYSQL.PORT} и задайте другой порт (например, "6033").

Мониторинг MySQL с помощью ODBC

Чтобы отслеживать сервер MySQL с помощью ODBC, необходимо скачать и установить сервер Zabbix и веб-интерфейс Zabbix.

После успешной установки необходимых компонентов Zabbix нужно создать пользователя MySQL, как описано в разделе Создание пользователя MySQL.

После создания пользователя MySQL необходимо настроить ODBC. Это включает установку одной из наиболее часто используемых реализаций API ODBC с открытым исходным кодом - 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"). В этом руководстве в качестве адреса сервера MySQL используется "127.0.0.1" (localhost) для мониторинга сервера 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 с учетом следующих изменений:

  • В поле Шаблоны введите или выберите шаблон "MySQL by ODBC", который будет связан с узлом сети.
  • Настраивать Интерфейсы не требуется.
  • Значение макроса {$MYSQL.DSN} в разделе Унаследованные и макросы узла сети в конфигурации узла сети MySQL server должно быть установлено в имя 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.