Мониторинг 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 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. Перейдите в User settings → Profile, откройте вкладку Media и добавьте свой адрес электронной почты.

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

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

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

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

1. Откройте конфигурацию узла сети MySQL server в Zabbix.

2. Перейдите на вкладку Macros и выберите Inherited and host macros.

3. Нажмите Change рядом, например, со значением макроса ранее настроенного} и задайте другое имя пользователя 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.