Глава 5. Установка агента монитора

MySQL Enterprise Monitor Agent контролирует сервер MySQL и посылает данные MySQL Enterprise Service Manager. Данные интерпретируются MySQL Enterprise Advisors и показываются в пользовательском интерфейсе MySQL Enterprise Monitor. Следующий раздел описывает, как установить агента на всех платформах.

Сильно рекомендуется, чтобы MySQL Enterprise Monitor Agent 8.0 был установлен для использования с MySQL Enterprise Service Manager 8.0.

5.1. Общие примечания, связанные с агентом

Эта секция описывает важные особенности агента.

5.2. Создание учетных записей пользователей MySQL для агента монитора

MySQL Enterprise Monitor Agent требует пользователя, формируемого в каждом экземпляре MySQL, который проверяется, с подходящими привилегиями, чтобы собрать информацию о сервере, включая имена переменных, репликацию и информацию о статусе механизма хранения.

Агент требует пользователя Admin и может произвольно использовать пользователей General или Limited в зависимости от требований к защите системы. Во время процесса установки будет предложено создать пользователей General и Limited. Можно позволить агенту соединяться с базой данных, используя пользователя Admin для всех задач, но рекомендуется создать General или Limited для задач, которые не требуют root-доступа к базе данных. Не необходимо создавать обоих пользователей. Возможно создать одного или другого. Агент использует пользователя с самыми низкими требуемыми полномочиями для запроса и изменяет его на пользователя с более высокими привилегиями только если запрос этого требует.

Создание пользователя Admin

Если вы не хотите предоставлять информацию пользователя root инсталлятору, можно создать пользователя вручную в вашем сервере MySQL и обеспечить эти параметры как комбинацию пользователя/пароля агента во время установки. Привилегии, требуемые для этой учетной записи пользователя, варьируются в зависимости от информации, которую вы собираете с использованием MySQL Enterprise Monitor Agent.

Например, следующий запрос GRANT дает агенту необходимые права SELECT, REPLICATION CLIENT, SHOW DATABASES и SUPER:

GRANT SELECT, CREATE USER, REPLICATION CLIENT, SHOW DATABASES, SUPER,
      PROCESS ON *.* TO' agent_user
      '@'localhost';

При использовании Auto-Create Less Privileged Users также добавьте WITH GRANT OPTION.

Из соображений безопасности вы могли бы ограничить права CREATE и INSERT агенту так, чтобы это могло только составить таблицы в базе данных mysql:

GRANT CREATE, INSERT ON mysql.*
      TO 'agent_user
      '@'localhost';

Если ведущий или ведомый работают с MySQL до 5.6, необходимо предоставить SELECT на таблице mysql.inventory для каждого пользователя с привилегиями репликации на соответствующем ведущем. Это позволяет MySQL Enterprise Monitor Agent прочитать UUID ведущего репликации:

GRANT SELECT ON mysql.inventory
      TO 'replicationuser
      '@'%';

Выполните этот шаг после запуска агента на соответствующем сервере MySQL, чтобы гарантировать, что таблица mysql.inventory составлена правильно. Запустите агент, закройте его, выполните вышеупомянутую команду GRANT и запустите агент.

Если агент не может получить доступ к информации таблицы, предупреждение, содержащее эту информацию, написано в журнал агента.

Вы могли бы отключить регистрацию для запросов привилегий, чтобы предотвратить копирование информации ведомым. В этом случае выполните запрос SET SQL_LOG_BIN=0 до выполнения GRANT.

Если работаете с MySQL 5.6 или позже, не необходимо предоставлять select на mysql.inventory, так как master_uuid используется от статуса ведомого. Поэтому нет никакой потребности останавливать агента или устанавливать SQL_LOG_BIN = 0.

Создание пользователей Limited и General

Если у пользователя Admin есть необходимые привилегии, чтобы создать других пользователей, можно поставить флажок Auto-Create Less Privileged Users и они создаются для вас автоматически.

Если галочка Auto-Create Less Privileged Users снята, агент использует только пользователя Admin для контроля.

Если галочка Auto-Create Less Privileged Users снята, можно войти в параметры доступа для пользователей General и Limited. Если вы определяете этих пользователей, необходимо создать их вручную. Установщик пытается проверить этих пользователей и показывает предупреждающее сообщение, если они недействительны. Процесс установки продолжается, и агент работает правильно, но необходимо создать тех пользователей позже.

В типичной конфигурации агент работает на том же самом хосте, где сервер MySQL, который он контролирует, таким образом, имя хоста часто localhost. Если агент работает на машине кроме проверенного сервера (серверов) MySQL, то измените localhost на правильное значение. Для получения дополнительной информации о дистанционном мониторинге, посмотрите раздел 5.7.

5.3. Соображения о Java на UNIX-платформах

MySQL Enterprise Monitor Agent для UNIX-платформ поставляют с и без совместимой JVM. Для тех инсталляторов, которые не включают совместимую JVM, необходимо загрузить и установить совместимую версию, если у вас ее нет. Консультируйтесь с документацией поддержки своей платформы для получения информации о соответствующих установках.

На 64-битных платформах рекомендуется использовать 32-битный JRE с 32-битным MySQL Enterprise Monitor Agent. 32-битная версия использует значительно меньше RAM, чем 64-битная версия. Для получения дополнительной информации посмотрите здесь.

Библиотеки совместимости

Если вы намереваетесь использовать 32-битный JVM на 64-битной платформе, надо гарантировать, чтобы у вас были правильно установленные библиотеки совместимости, позволяя 64-битному приложению работать с 32-битной JVM.

Эти библиотеки отличаются между версиями Linux. Например, в Debian или Ubuntu, необходимо гарантировать, что устанавливается Multiarch или, используя более ранние версии, ia32-libs. В RedHat или CentOS необходимо гарантировать, что установлены glibc.i686, libXext.i686 и libXtst.i686.

5.4. Графический интерфейс агента

Эта секция описывает, как установить агент, используя Installation Wizard. Шаги идентичны методу установки из командной строки.

Чтобы установить в каталог по умолчанию (/opt/mysql/enterprise/agent), авторизуйтесь как root. Непривилегированный пользователь может установить в каталог /home/ user_name/mysql/enterprise/agent.

Чтобы автоматически запустить агент после перезагрузки, необходимо установить его как root. Если вы устанавливаете как непривилегированный пользователь, необходимо запустить агент вручную после каждой перезагрузки.

Хотя MySQL Enterprise Monitor Agent устанавливается как пользователь root, каталоги и файлы, в которые пишет агент, принадлежат пользователю mysql в группе mysql , которая включает logs/, spool/ и etc/agentManaged. Агент запущен и работает как пользователь mysql. При попытке установить в каталог, с которым пользователь mysql не может взаимодействовать, ошибка показана, объяснив, как исправить ситуацию.

Можно также установить Monitor Agent в режиме unattended. См. раздел 8.1.

Чтобы установить много агентов на той же самой машине, используйте опцию agentservicename с инсталлятором, чтобы определить уникальное сервисное имя каждый раз. См. installer_agentservicename.

В FreeBSD инсталлятор агента не связывает необходимый JRE 8.

Нет 64-битной установки агента для Microsoft Windows.

Чтобы установить агента, сделайте следующее:

  1. Управляйте инсталлятором как требуется вашей операционной системой.

  2. Отобразится диалог Language Selection. Выберите свой язык и нажмите OK.

    Диалог выбора каталога будет показан.

  3. Измените инсталляционный каталог или примите значение по умолчанию и выберите тип подключения для агента.

    Нажмите Forward. Появится диалог Monitoring Options. Файлы копируются в инсталляционный каталог.

  4. Можно выбрать, контролировать ли хост, на котором агент устанавливается, или хост и экземпляр MySQL. Если вы выбираете только хост, необходимо формировать связь с MySQL Enterprise Service Manager, но никакая другая конфигурация не требуется. Если вы выбираете хост и базу данных, необходимо также сформировать параметры соединения с базой данных.

    Нажмите Forward. Если вы устанавливаете на Apple OS X, отобразится диалог Install as a service. Этот диалог позволяет вам установить агент как сервис, который перезапускается каждый раз, когда хост перезапущен. Этот выбор требует пароля Administrator.

    На всех других платформах показан диалог MySQL Enterprise Monitor Options.

  5. Закончите следующие шаги:

    Нажмите Forward, отобразится диалог Monitored Database Configuration Options .

  6. Monitored Database Configuration Options позволяет вам выбрать остающиеся шаги установки. Следующие варианты доступны:

    Отобразится диалог Monitored Database Information .

  7. Monitored Database Information позволяет определить параметры связи для MySQL.

    Нажмите Forward. Если вы выбрали Validate hostname, port, and Admin account privileges в диалоге Monitored Database Configuration Options, поставляемые параметры проверяются.

    Если вы выбрали Configure encryption settings for user accounts в диалоге Monitored Database Configuration Options, выводится диалог Encryption Settings.

  8. Диалог Encryption Settings позволяет вам определить параметры SSL для связи с SSL-экземпляром MySQL.

  9. Если вы выбрали Configure less-privileged user accounts в диалоге Monitored Database Configuration Options, отобразится диалог Less Privileged User Account Creation.

    Нажмите Forward, чтобы создать учетную запись агента и закончить установку.

5.5. Запуск и остановка MySQL Enterprise Monitor Agent

MySQL Enterprise Monitor Agent может быть начат и остановлен в любое время. Если не запущен, информация о текущем статусе вашего сервера недоступна. MySQL Enterprise Service Manager обеспечивает предупреждение, если агент и сервер MySQL, который он контролирует, недоступны.

5.5.1. Старт/остановка агента в Windows

У вас есть выбор запуска Monitor Agent с заключительного инсталляционного экрана. Иначе можно сделать это из Start Menu, Programs, MySQL, MySQL Enterprise Monitor Agent. Просто выберите опцию Start MySQL Enterprise Monitor Agent.

В Windows Vista или позже запуск агента требует административных привилегий: вы должны войти как администратор. Чтобы запустить или остановить агента щелкают правой кнопкой мыши по пункту меню и выбирают Run as Administrator. То же самое ограничение относится к старту агента из командной строки. Надо открыть от имени администратора окно cmd, сделав щелчок правой кнопкой мыши по символу cmd и выбрать из меню Run as Administrator.

Чтобы сообщить о результатах, агент должен быть в состоянии соединиться с Monitor UI через порт, определенный во время установки. Значение по умолчанию для этого порта 18443, гарантируйте, что этот порт не заблокирован. Если вы нуждаетесь в помощи, исследуя установку агента, посмотрите, раздел 5.10.

Можно запустить агента из командной строки:

shell> sc start MySQLEnterpriseMonitorAgent

или:

shell> net start MySQLEnterpriseMonitorAgent

Можно также запустить агент, дав команду agentctl.bat start. Остановите агента, передав аргумент stop. Этот пакетный файл лежит в каталоге Agent.

Для подтверждения, что сервис работает, можно открыть окно Microsoft Management Console Services. Чтобы сделать это, перейдите в Control Panel, найдите Administrative Tools и нажмите Services. Найдите сервис MySQL Enterprise Monitor Agent и проверьте столбец Status.

Можно также начать агент из этого окна, а не через меню Start или из командной строки. Просто щелкните правой кнопкой мыши по MySQL Enterprise Monitor Agent и выберите Start. Запуск агента из этого окна открывает диалоговое окно, если агент не может соединиться с сервером MySQL, который контролирует. Никакая ошибка не показана, если агент неспособен соединиться с MySQL Enterprise Service Manager.

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

shell> sc stop MySQLEnterpriseMonitorAgent

или:

shell> net stop MySQLEnterpriseMonitorAgent

MySQLEnterpriseMonitorAgent это имя по умолчанию сервиса Monitor Agent.

5.5.2. Запуск/остановка агента в Mac OS X

Применение launchd

Предпочтительный метод состоит в том, чтобы использовать launchd, чтобы загрузить агент как сервис. После выбора "Install as a service" во время процесса установки, можно начать или остановить сервис агента, используя следующие команды.

Запустить:

shell> sudo launchctl load /Library/LaunchDaemons/mysql.agent.plist

Завершение:

shell> sudo launchctl unload /Library/LaunchDaemons/mysql.agent.plist

Применение init

Альтернативно скрипт init.d, чтобы запустить агент в Mac OS X лежит в /Applications/mysql/enterprise/agent/etc/init.d. Чтобы запустить агент, перейдите в этот каталог и в командной строке введите:

shell> ./mysql-monitor-agent start

Чтобы остановить агент, используйте команду stop:

shell> ./mysql-monitor-agent stop

Если агент не может быть остановлен потому, что файл pid, который содержит ID процесса агента, не может быть найден, можно использовать kill, чтобы послать сигнал TERM процессу:

shell> kill -TERM PID

Если вы управляете больше чем одним агентом на определенной машине, необходимо также определить путь к файлу ini, когда вы останавливаете агент. Выполнение mysql-monitor-agent stop без файла ini останавливает только агента, связанного с файлом ini по умолчанию.

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

shell> ./mysql-monitor-agent status

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

shell> tail /Applications/mysql/enterprise/agent/logs/mysql-monitor-agent.log

Установка создает каталоги /Applications/mysql/enterprise/agent и logs, который расположен в каталоге agent.

Чтобы видеть все параметры командной строки, доступные, управляя агентом, перейдите в каталог /Applications/mysql/enterprise/agent/etc/init.d и выполните mysql-monitor-agent help, это показывает такое сообщение:

shell> ./mysql-monitor-agent {start|stop|restart|status}

Чтобы сообщить о результатах, агент соединяется с Monitor UI через порт, определенный во время установки. Значение по умолчанию для этого порта 18443, гарантируйте, что этот порт не заблокирован. Чтобы исследовать установку агента, посмотрите раздел 5.10.

5.5.3. Запус/остановка агента в Unix

Когда установка закончена, можно запустить агент из командной строки:

shell> /opt/mysql/enterprise/agent/etc/init.d/mysql-monitor-agent start

Для не-root установок команда была бы:

shell> /home/<user name>/mysql/enterprise/agent/etc/init.d/mysql-monitor-agent start

Чтобы остановить агента, используйте команду stop:

shell> ./mysql-monitor-agent stop

Если агент не может быть остановлен потому, что файл pid, который содержит ID процесса агента, не может быть найден, можно использовать kill для отправки сигнала TERM процессу:

shell> kill -TERM PID

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

shell> ./mysql-monitor-agent status

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

shell> tail /opt/mysql/enterprise/agent/logs/mysql-monitor-agent.log

Установка создает каталог /opt/mysql/enterprise/agent с подкаталогом logs.

Чтобы видеть все параметры командной строки, доступные, управляя агентом, перейдите в каталог /opt/mysql/enterprise/agent/etc/init.d и выполните mysql-monitor-agent help:

shell> ./mysql-monitor-agent {start|stop|restart|status}

Чтобы сообщить о результатах, агент соединяется с Monitor UI через порт, определенный во время установки. Значение по умолчанию для этого порта 18443, гарантируйте, что этот порт не заблокирован. Чтобы исследовать установку агента, посмотрите раздел 5.10.

5.5.4. sql_mode

При запуске агент устанавливает на проверяемом экземпляре MySQL sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER . Если sql_mode=ONLY_FULL_GROUP_BY, запросы агента могут потерпеть неудачу. Локальный агент MySQL Enterprise Service Manager также установит на хранилище sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION.

5.6. Контроль многократных серверов MySQL

Можно контролировать многократные серверы MySQL (на той же самой машине или удаленно через различные машины) с использованием единственного агента.

Удостоверьтесь, что у экземпляра MySQL, который вы хотите контролировать, есть подходящий пользователь, чтобы использовать для соединения с хостом. Для получения дополнительной информации посмотрите раздел 5.2.

Как правило, агент просматривает хост и сообщает о непроверенных экземплярах MySQL в пользовательскому интерфейсе MySQL Enterprise Monitor. См. раздел 1.2. Для получения информации о том, как изменить статус экземпляра MySQL от непроверенного до проверенного, см. главу 15.

5.7. Настройка агента, чтобы контролировать удаленный сервер MySQL

Как правило, агент работает на той же самой машине, где серверы MySQL, которые он контролирует. Чтобы контролировать серверы MySQL, работающие на удаленных хостах, можно установить агент на любой машине.

Процесс для установки агента, чтобы контролировать сервер MySQL на удаленной машине идентичен процессу, описанному в главе 5. Следуйте указаниям, данными там, стараясь выбрать "host-only" и добавьте удаленные экземпляры MySQL позже или определите правильный IP-адрес или имя хоста для MySQL Enterprise Service Manager и аналогично для сервера MySQL: так как агент не работает на той же самой машине, где сервер MySQL, это не может быть умолчанием (localhost).

Гарантируйте, что агент имеет соответствующие права для входа на сервер MySQL от хоста кроме localhost и что порт, используемый сервером MySQL, как правило, 3306, должен быть открыт для удаленного доступа. Для получения дополнительной информации об авторизации, требуемой агентами, посмотрите раздел 5.2.

Агент также должен быть в состоянии авторизоваться в MySQL Enterprise Service Manager, как правило, используя порт 18443, поэтому гарантируйте, что соответствующий порт открыт.

Ограничения дистанционного мониторинга

5.8. Контроль вне брандмауэра с тоннелем SSH

Если вы управляете сервером SSH на машине, на которой стоит MySQL Enterprise Service Manager и клиентом SSH на машине, на которой стоит агент, можно создать тоннель SSH так, чтобы агент мог обойти брандмауэр. Во-первых, необходимо внести корректировку в agent-mgmt-hostname value в файле etc/bootstrap.properties. Остановите агент и измените hostname так:

agent-mgmt-hostname = https://agent_name:password@localhost:18443/

Замените agent_name и password вашими значениями. Аналогично замените порт 18443, если вы не управляете Monitor UI на этом порте. Надо использовать localhost для имени хоста, так как агент соединяется через тоннель SSH.

Затем выполните следующую команду на машине, где агент работает:

shell> ssh -L 18443:Monitor_UI_Host:18443 -l user_name -N Monitor_UI_Host

По запросу введите пароль для user_name.

Если вы не управляете MySQL Enterprise Service Manager на порте 18443, замените соответствующим номером порта. Аналогично надо заменить Monitor_UI_Host правильным значением. user_name представляет действительного пользователя операционной системы на машине, которая выполняет MySQL Enterprise Service Manager.

Обязательно перезапустите агента так, чтобы новое значение для hostname вступило в силу. Для получения инструкций относительно перезапуска агента см.:

5.9. Тайм-аут связи HTTP

У связи HTTP между агентом и Service Manager есть тайм-аут по умолчанию в 250 секунд для предпринятой связи и в 300 секунд для установленной связи. Возможно отвергнуть эти значения в bootstrap.properties, добавляя следующие параметры:

  1. http-connect-timeout-ms=N: N это количество миллисекунд, чтобы ждать прежде, чем прекратить попытку подключения по HTTP.

  2. http-socket-timeout-ms=N : N это количество миллисекунд, чтобы ждать прежде, чем прекратить чтение или запись по HTTP.

Если установлено в ноль (0), никакой тайм-аут не определяется. Отрицательные величины не поддерживаются.

5.10. Поиск неисправностей агента

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

Некоторые дополнительные подсказки:

5.11. Отставание агента

Отставание агента это механизм кэширования, который хранит контролирующие данные пока агент не может общаться с MySQL Enterprise Service Manager. Отставание может сохранить 10 МБ проверенных данных в активной RAM.