RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Глава 30. Персонализация MySQL Enterprise Monitor

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

30.1. Создание советников и правил

Для общих сценариев, повторного использования или редактирования советники и графы обеспечены MySQL Enterprise Monitor. Чтобы создать новых советников и графы, откройте страницу Advisors и выберите Create Advisor, чтобы создать советника, или Import/Export, чтобы создать граф.

30.1.1. Создание советников

Подобные советники группируются по категориям. Чтобы создать нового советника, выберите Create Advisor на странице Advisors.

Категории советников по умолчанию

Категории советников по умолчанию:

  • Administration

  • Agent

  • Availability

  • Backup

  • Cluster

  • Graphing

  • Memory Usage

  • Monitoring and Support Services

  • Operating System

  • Performance

  • Query Analysis

  • Replication

  • Schema

  • Security

Можно также создать собственную категорию советника, создавая советника, изменив параметр Advisor Category.

30.1.2. Обзор создания графа

Графы определяются в XML-файлах, затем импортировали в MEM. Новый настраиваемый график показан в категории Graphing на странице Advisors.

Для примера того, как создать граф, посмотрите раздел 30.1.9.

Элементы XML для создания графа следующие:

  • version

    Номер версии графа. Вообще важно только со связанными графами и используется только внутренне.

  • uuid

    Уникальный идентификатор графа. Каждый пересмотр (версия) требует нового uuid, который используется только внутренне.

  • name

    Видимое имя графа, которое показано в рамках списка графов. Отметьте: графы сортированы в алфавитном порядке.

  • frequency

    Произвольно определите частоту для графа, по умолчанию 1 минута. Можно использовать секунды, минуты, часы и дни.

  • rangeLabel

    Этикетка диапазона оси Y. Например, граф об использовании дискового пространства может использовать MB.

  • series

    Каждый ряд содержит этикетку и выражение. Этикетка это видимое название ряда и простое выражение, которое его определяет.

  • variables

    Каждое определение переменной содержит имя, экземпляр и элемент dcItem. Экзщемпляр определяет, какие данные показывает граф, каждый элемент dcItem содержат пространство имен, имя класса и attribName:

    • nameSpace

      Пространство имен (тип) пункта сбора данных.

    • className

      Класс (тип пространства имен) пункта сбора данных.

    • attribName

      Название атрибута пункта сбора данных.

30.1.3. Обзор создания советника

Чтобы создать нового советника, нажмите кнопку Create Advisor на странице Advisors. Чтобы создать советника на основе существующего, выберите Copy Advisor из меню Advisor. Можно отредактировать любой элемент советника во время процесса копирования, в отличие от редактирования существующего советника. Чтобы удалить советника, выберите Delete Advisor в меню Advisor.

В отличие от основанных на выражении советников, невозможно скопировать одного из основанных на GUI советников, чтобы использовать в качестве основания для своего советника.

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

Если вы не определяете номер версии для нового советника, версия 1.0 автоматически добавляется.

Можно также отредактировать выражение советника. Для получения дополнительной информации о выражениях советника см. главу 18. Выражение может быть столь же простым, как единственный параметр сервера, или может быть сложным, объединив многократные параметры с математическими операциями.

У выражения есть две главных особенности:

  • Выражение проверяет, нарушается ли наиболее успешная практика.

  • Результат выражения должен всегда быть 1 или 0 (соответствие true или false).

Например, если предоставление возможности двоичной регистрации является наиболее успешной практикой для рабочего сервера (как Oracle рекомендует), тогда эта наиболее успешная практика нарушена, если log_bin = OFF. Следовательно, выражение для советника Binary Logging Not Enabled это %log_bin% == OFF . Если это оценивается как 1, событие поднято, потому что наиболее успешной практике не следуют.

Выражение составлено из одной или более переменных и ноля или большего количества математических операторов. MySQL Enterprise Monitor использует Java Expression Parser. Операторы и функции состоят из:

  • Оператор IN().

  • Функции MySQL LEAST(), LOCATE(), ABS(), MOD(), NOW() (вернет время с начала эпохи Unix UTC в секундах), UNIX_TIMESTAMP (технически не делает ничего) и INTERVAL [n] SECOND, MINUTE, HOUR, WEEK, MONTH .

  • Функции операторов перечислены на этой странице: http://www.singularsys.com/jep/doc/html/operators.html .

  • Сравнения с метками времени MySQL и датами, собранными агентом в стандартном формате MySQL 'YYYY-MM-DD hh:mm:ss[.nanos]'.

  • Функции IF: IF (condition, true_expression, false_expression) вернут true_expression или false_expression, в зависимости от condition = true или false. Эта функция использует оценку короткого замыкания, таким образом, только одно из выражений оценено.

  • Функции LEFT( string, length) и RIGHT( string, length).

  • Функции NUM( string).

    Функция CAST( expression as type) не осуществляется. Вместо этого используйте NUM(string ), чтобы использовать последовательности в качестве чисел.

Для полного списка встроенных переменных, используемых, чтобы создать советников, посмотрите Server Option, System Variable, and Status Variable Reference.

Создание выражения зависит от переменных, определенных во фрейме Variable Assignment. Эта структура связывает переменные, используемые в области выражения с данными, собранными от целевого экземпляра сервера MySQL: переменные статуса сервера, информация о статусе операционной системы и информация о таблице. Имена переменной связаны с элементами в выпадающем меню Data Item. Чтобы определить больше, чем одну переменную, нажмите кнопку add row.

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

Сохраняя новый Советник, выберите уникальное имя, не используемое любым существующим Советником.

30.1.4. Переменные

Когда MySQL Enterprise Monitor оценивает выражение, он заменяет переменные значениями. Например, у части выражения для советника MyISAM Key Cache Has Sub-Optimal Hit Rate вычисляется частота успешных обращений следующим образом:

100-((%Innodb_buffer_pool_reads% / %Innodb_buffer_pool_read_requests%)*100)

Если текущее значение %Innodb_buffer_pool_reads% = 4522 и %Innodb_buffer_pool_read_requests% = 125989, процент совпадений составляет 96.4%:

100 -((4522 / 125989) * 100)

В соответствии с соглашением, советники используют в MySQL % как разделитель, например, %Key_reads%. Это делает переменные более идентифицируемыми.

Переменные могут использоваться в атрибутах Description, Advice, Action и Links советника, а также в выражениях. Это позволяет вам сообщить о текущем значении выражения. Например, можно добавить сообщение The current value of Innodb_buffer_pool_reads is %Innodb_buffer_pool_reads%. в текстовое поле Advice. Когда это показано на экране, значение %Innodb_buffer_pool_reads% заменено в тексте. Если %%Innodb_buffer_pool_reads%% = 4522, сообщение становится The current value of Innodb_buffer_pool_reads is 4522.

30.1.5. Пороги

У каждого выражения есть пороговое значение, которое вызывает тревогу. Ключевое слово THRESHOLD связано со значением, которые оценивают с аварийным уровнем: любым из Notice, Warning или Critical.

Например, выражение для исполнительного советника Thread Cache Size May Not Be Optimal:

100-((%Threads_created% / %Connections%) * 100) < THRESHOLD

THRESHOLD = 95% для уровня Info, 85% для Warning и 75% для Critical, производит тревоги трех разных уровней.

Выражения могут быть прямыми. Выражение для Binary Logging Not Enabled (одна из тревог Administration):

%log_bin% == THRESHOLD

Когда результат OFF, вызывается только одна тревога уровня Warning. Вы не можете использовать только выражение %log_bin% == "OFF", потому что это не проверило бы двоичную регистрацию на достижение порога, а значит не приведет к тревоге.

Определите точные условия, когда каждое выражение должно быть оценено, чтобы избежать ложных тревог. Например, выражение для MyISAM Key Cache Has Sub-Optimal Hit Rate:

(%Uptime% > 10800) && (%Key_read_requests% > 10000)
&& (100-((%Key_reads% / %Key_read_requests%) * 100) < THRESHOLD)

Первая часть выражения, (%Uptime% > 10800), задерживает оценку выражения в течение 10800 секунд (3 часа). Когда сервер запускается, он мог бы требовать времени, чтобы достигнуть статуса, который является представительным для нормального функционирования. Например, буферный пул InnoDB, кэш ключей MyISAM и кэш SQL-запроса могли бы потребовать некоторое время, чтобы заполнится данными приложения, после которого кэшированные данные повышают производительность.

Кроме того, если некоторая часть системы в большой степени не используется, тревога могла бы быть вызвана на основе ограниченных данных. Например, если ваше приложение не использует механизм хранения MyISAM, советник MyISAM Key Cache Has Sub-Optimal Hit Rate мог быть вызван на основе очень ограниченного использования других таблиц MyISAM, например, таблицы mysql.user. Поэтому у этого советника есть вторая часть: (%Key_read_requests% > 10000). Советник не оценен, если нет значимой деятельности, связанной с ключевым кэшем.

30.1.6. Применение строк

Добавьте последовательности в двойных кавычках в текстовых полях Expression или Thresholds. Например, выражение для советника Slave I/O Thread Not Running:

(%Slave_running% == "ON") && (%Slave_IO_Running% != THRESHOLD)

Точно так же пороговое текстовое окно Critical Alerts установлено в "Yes".

Когда выражение оценено, также "OFF" или "ON" заменяют %Slave_running%, "Yes" или "No" для %Slave_IO_Running%, в зависимости от состояния вашей системы. Если ведомый работает, но поток I/O нет, выражение становится:

("ON" == "ON") && ("No" != "Yes")

Без кавычек это выражение не оценилось бы к TRUE как должно.

Так, чтобы это интерпретировалось правильно, оператор == преобразовывается в = прежде, чем быть переданным анализатору выражений MySQL.

30.1.7. Формат Wiki

Редактируя или определяя советника, можно ввести текст в формате Wiki в текстовые поля Problem Description, Advice, Recommended Action и Links and Further Reading. Можно отформатировать и подчеркнуть текст и добавить гиперссылки, используя нотации, перечисленные в следующей таблице.

Таблица 30.1. Форматирование с разметкой Wiki

Маркер Описание

__bold__

Жирный текст

~~italic~~

Выделите курсивом текст

\\

Создайте разрыв строки

\\ \\

Создайте двойной разрыв строки

\\\\G

Создайте двойной разрыв строки

*item 1

Создайте пункт маркированного списка

#item 1

Создайте пронумерованный пункт списка

\_

Используйте \ для экранирования специальных символов

'{'moreInfo:name|url'}'

Создайте гиперссылку

Например, следующий текст Wiki:

Replication is a __very nice feature__ of MySQL.Replication can be very
useful for solving problems in the following areas:
* Data Distribution
* Load Balancing
* Backup and Recovery
You can check replication status and start a slave using the following
commands: SHOW SLAVE STATUS \\\\G\\START SLAVE; '{'moreInfo:MySQL Manual: Replication
FAQ|http://dev.mysql.com/doc/refman/en/faqs-replication.html'}'

переведен в следующую разметку HTML:

Replication is a <b>very nice feature</b> of MySQL.Replication can be very
useful for solving problems in the following areas:
<ul><li>Data distribution</li>
<li>Load Balancing</li>
<li>Backup and recovery</li>
</ul>You can check replication status and start a slave with the following
commands: SHOW SLAVE STATUS \G;<br/>START SLAVE;
<a href="http://dev.mysql.com/doc/refman/en/faqs-replication.html"
target="_blank" >MySQL Manual: Replication FAQ</a>

30.1.8. Создание нового советника: пример

Эта секция документирует шаги, чтобы создать советника.

Чтобы создать советника, нажмите кнопку Create Advisor на странице Advisors. Новая страница советника показана.

Этот пример создает советника, который проверяет, были ли разорваны связи, используя запрос KILL, и производит событие.

Создайте своего советника, выполнив эти шаги:

  1. Используя текстовое окно Advisor Name, дайте советнику соответствующее имя, такое как "Connections killed".

  2. Из выпадающего списка Advisor Category выберите категорию советника.

  3. Определите переменную для своего выражения в поле Variable Assignment.

    • В поле Variable введите %connections_killed%, переменную, которая используется в текстовом окне Expression .

    • В списке Data Item выберите mysql:status:Com_kill.

    • В поле Instance введите local.

  4. Введите следующее выражение в текстовую область Expression.

    '%connections_killed% > THRESHOLD'
    
  5. Установите следующий порог:

    • Установите уровень Info Alert = 0. Информационное событие произведено, если 1 или больше связей закрыты.

  6. Добавьте соответствующие записи для полей Problem Description, Advice и Links. Произвольно, используйте разметку Wiki для этих текстовых областей. Можно также сослаться на переменную %connections_killed% в этих текстовых полях.

  7. Сохраните советник.

После того, как вы создадите советника, наметьте его для сервера MySQL, который вы хотите контролировать. Для получения инструкций относительно настройки советника см. таблицу 18.3.

30.1.9. Создание нового графа: пример

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

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

Начните с перехода к разделу Configuration страницы Advisors, там нажмите на ссылку Import/Export. Выберите раздел Custom Rule/Graph/Data Items Import. Именно сюда импортируется XML-файл.

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

<?xml version="1.0"?>
<com_mysql_merlin_server_graph_Design>
<version>1.0</version>
<uuid>a57c2bba-ea9b-102b-b396-94aca32bee29</uuid>
<name>Custom Graph 001</name>
<rangeLabel>MB</rangeLabel>

<series>
  <label>used</label>
  <expression>used_fs/1024/1024</expression>
</series>

<series>
  <label>total_size</label>
  <expression>total_fs/1024/1024</expression>
</series>

<displayprofile>
  <name>Disk Usage - All Filesystems</name>
  <type>Aggregate</type>
  <aggregate op="sum">
    <source>used</source>
    <source>total_size</source>
  </aggregate>
</displayprofile>

<variables>
  <name>used_fs</name>
  <dcItem>
    <nameSpace>os</nameSpace>
    <className>fs</className>
    <attribName>fs_used</attribName>
  </dcItem>
  <instance>/</instance>
</variables>

<variables>
  <name>total_fs</name>
  <dcItem>
    <nameSpace>os</nameSpace>
    <className>fs</className>
    <attribName>fs_total</attribName>
  </dcItem>
  <instance>/</instance>
</variables>
</com_mysql_merlin_server_graph_Design>

После успешной загрузки графа показано уведомление.

Это также создает нового советника с тем же самым именем, как новый граф, который не запланирован по умолчанию. Перейдите в Configuration, Advisors, Graphing, чтобы определить местонахождение и включить новый советник.

Этот граф показан на соответствующей странице графов (как любой граф) под именем, определенным в рамках предопределения, которое является в примере выше Custom Graph 001.

30.2. Специальный сбор данных

Эта секция описывает, как формировать свои сборы данных для контролирующего агента.

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

Чтобы создать сбор данных, необходимо добавить класс к custom.xml в каталоге etc установки вашего агента. Каждый определенный класс это сбор данных.

custom.xml утвержден items-mysql-monitor.dtd.

После определения сбора данных это доступно, чтобы выбрать в выпадающем меню Data Item фрейма Variable Assignment страницы Advisor.

Следующие разделы описывают этот процесс подробно.

30.2.1. Custom.xml

Следующий XML показывает структуру сбора данных:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE classes SYSTEM "items-mysql-monitor.dtd">
<classes>
  <class>
    <namespace>NameSpace</namespace>
    <classname>ClassName</classname>
    <precondition><![CDATA[Add Precondition Query Here]]></precondition>
    <query><![CDATA[Add Main Query Here]]></query>
    <attributes
      <attribute name="AttributeName1"/>
      <attribute name="AttributeName2"/>
    </attributes>
  </class>
</classes>

Таблица 30.2. Элементы класса сбора данных

Элемент Описание

classes

Контейнерный элемент для всех определенных классов.

class

Контейнерный элемент для определения коллекции.

namespace

Логическая группировка для нового пункта сбора данных.

classname

Название сбора данных. Не используйте пробелы или специальные символы в этом элементе.

precondition

(Дополнительный) Запрос, который проверяет некоторые условия. Если он вернет true, главный запрос выполняется. Например, запрос предварительного условия может использоваться, чтобы проверить версию сервера MySQL. Посмотрите раздел 30.2.2.1.

query

Главный запрос. Для получения дополнительной информации посмотрите раздел 30.2.2.2.

attributes

Позволяет вам маркировать типы данных, возвращенные запросом. Возможные типы: STRING, INTEGER и FLOAT. Эта информация запрашивается советником, получающим данные. Также возможно определить один или несколько признаков как счетчики. Посмотрите раздел 30.2.3.

Значения в пространстве имен и элементах имени класса используются в качестве первых двух элементов имени.

30.2.2. Запросы

Эта секция описывает предварительное условие и главные запросы для сбора данных.

30.2.2.1. Запросы предварительного условия

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

<precondition>
  <![CDATA[SELECT @@version NOT LIKE '5.0%' AND @@version NOT LIKE '5.1%']]>
</precondition>

Если версия сервера выше, чем 5.1, предварительное условие возвращает true, и главный запрос выполняется. Если сервер MySQL версии 5.0.x или 5.1.x, предварительное условие возвращает false, и главный запрос не выполняется.

30.2.2.2. Главные запросы

Главные запросы позволяют вам получить данные из проверенного сервера.

Определяя запросы, следующие ограничения применяются:

  • Запрос должен быть определен в контейнере <![CDATA[]]>. Например: <![CDATA[SELECT X FROM Y AS FOO]]>. Не должно быть символов между CDATA и [, а также между [ и началом запроса. То же самое правило относится к закрывающим ]].

  • Только операторы SELECT возможны. Невозможно использовать INSERT, UPDATE, DELETE и т.д.

  • Невозможно определить больше, чем один запрос в классе.

  • Агент должен иметь достаточные права, чтобы управлять запросом.

  • Не определяйте запросы, которые занимают больше времени, чем определено в советнике. Например, если запрос занимает 2 минуты, чтобы работать, но определенный советниками график требует, чтобы запрос выполнялся каждую минуту, никакие результаты не возвращены. Чтобы избежать этого, проверьте свой запрос полностью на проверенном сервере. Если сбор данных развернут на многих агентах, он должен быть проверен на каждом проверенном сервере и графике.

  • Запрос может возвратить только одну строку, если тип результата не CLASS_TYPE_1STCOL_ATTRIBUTES. См. раздел 30.2.3.2.

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

SELECT X AS NAME FROM Y

Пункты показаны в выпадающем меню Data Item фрейма Variable Assignment новой страницы советника. Они принимают следующий формат: namespace:classname:name. Например, mysql:status:open_files_limit.

Примеры, используемые в этой секции, взяты от советников по умолчанию, поставленных с вашей установкой MySQL Enterprise Monitor installation.

Следующий пример используется советником Server Has Anonymous Accounts:

<class>
  <namespace>mysql</namespace>
  <classname>anonymous_user</classname>
  <query><![CDATA[SELECT COUNT(*) AS user_count FROM mysql.user
    WHERE user='']]></query>
</class>

В этом советнике переменная %user_count% отображается на Data Item mysql:anonymous_user:user_count, определенный в запросе.

30.2.2.3. Форматирование Wiki в запросах

Возможно отформатировать результат запроса с разметкой Wiki. Это позволяет вам показать информацию из запроса непосредственно в советнике.

Следующий пример взят от сбора данных, используемого советником Server Has Accounts Without A Password:

<query>
<![CDATA[SELECT GROUP_CONCAT('\\\\\n* ', '\'',user,'\'@\'',host,'\''
  ORDER BY user, host)
  as user FROM mysql.user WHERE password='' /*!50507 AND (plugin = '' OR
  plugin IS NULL OR plugin = 'mysql_native_password') OR
  (plugin = 'sha256_password' AND authentication_string= '')*/]]>
</query>

Разметка Wiki форматирует пользователя и хост в информацию, показанную на странице Events в MySQL Enterprise Monitor User Interface. Этот пример перечисляет имя пользователя и хоста для всех учетных записей без определенного пароля.

30.2.3. Признаки сбора данных

Чтобы правильно оценить данные, возвращенные по условию сбора, назначьте признаки на возвращенные значения.

Признаки определяются, используя следующий формат:

<attributes>
  <attribute name="AttributeName1" counter="true" type="INTEGER"/>
  <attribute name="AttributeName2" counter="false" type="STRING"/>
</attributes>

Таблица 30.3. Элементы признака

Имя Описание

name

Название признака определяется в пункте AS запроса.

counter

Является ли признак типом счетчика.

  • true: да.

  • false: нет.

type

Тип значения атрибута. Возможные значения: INTEGER, STRING или FLOAT.

Если тип признака неправильно определяется в определении признака, например, INTEGER вместо STRING, невозможно изменить значение в custom.xml после запуска агента. Это вызвано тем, что для агента невозможно изменить типы признака после того, как они определяются. Попытка изменить их приводит к ошибке InvalidValueForTypeException. Чтобы исправить это, необходимо остановить агент, отредактировать определение типа и перезапустить агент.

30.2.3.1. Значения по умолчанию

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

<attributes>
  <default counter="true" type="INTEGER"/>
  <attribute name="bytes_read"/>
  <attribute name="bytes_written"/>
</attributes>

Возможно отвергнуть настройку по умолчанию, назначая counter, type в определении признака. Например:

<attributes>
  <default counter="true" type="INTEGER"/>
  <attribute name="total_wait_time_ms"/>
  <attribute name="total_statements"/>
  <attribute name="max_wait_time_ms" counter="false"/>
  <attribute name="total_errors"/>
  <attribute name="total_warnings"/>
  <attribute name="total_rows_returned"/>
  <attribute name="total_lock_time_ms"/>
</attributes>

30.2.3.2. Возврат нескольких строк

Возможно возвратить больше чем один ряд, используя тип результата CLASS_TYPE_1STCOL_ATTRIBUTES. Этот тип результата позволяет возвращение набора результатов с двумя колонками как пара ключ/значение. В отличие от атрибутов по умолчанию, которые взяты от имени столбца, ключ это название атрибута, а значение это значение атрибута.

Значение ключа должно быть уникальным в наборе результатов.

Следующий пример показывает, как набор результатов с 2 колонками возвращен и отформатирован элементом resulttype:

<class>
  <namespace>mysql</namespace>
  <classname>rpl_semi_sync_vars</classname>
  <query><![CDATA[
    SHOW GLOBAL VARIABLES WHERE
    Variable_name='rpl_semi_sync_master_timeout' OR
    Variable_name='rpl_semi_sync_master_trace_level' OR
    Variable_name='rpl_semi_sync_master_wait_no_slave' OR
    Variable_name='rpl_semi_sync_master_enabled' OR
    Variable_name='rpl_semi_sync_slave_enabled'
  ]]></query>
  <resulttype>CLASS_TYPE_1STCOL_ATTRIBUTES</resulttype>
  <attributes>
    <attribute name="rpl_semi_sync_master_timeout" counter="false" type="INTEGER"/>
    <attribute name="rpl_semi_sync_master_trace_level" counter="false" type="INTEGER"/>
    <attribute name="rpl_semi_sync_master_wait_no_slave" counter="false" type="STRING"/>
    <attribute name="rpl_semi_sync_master_enabled" counter="false" type="STRING"/>
    <attribute name="rpl_semi_sync_slave_enabled" counter="false" type="STRING"/>
  </attributes>
</class>

30.3. Затемненные периоды уведомления о событии

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

Чтобы позволить затемненный период для отдельного экземпляра, можно использовать контекстное меню на странице MySQL Instances. Откройте меню экземпляров и выберите Enable Event Handler Blackout. Имя экземпляра станет серым, чтобы указать на присутствие активного затемнения. Никакие обработчики событий не приводятся в действие для отобранного экземпляра на время затемненного периода.

Можно также позволить затемненный период, введя следующий URL в строку адреса браузера, заменив соответствующие значения имени хоста, порта и имени сервера:

https://HostName:18443/rest?command=blackout&server_name=ServerName:3306&blackout_state=true

URL состоит из следующих компонентов:

  • Имя хоста Service Manager: URL для MySQL Enterprise Service Manager.

  • command: команда, чтобы выполнить. Это может быть одним из следующего:

    • blackout: применяет или удаляет blackout_state к указанным типам актива.

    • blackout_status: запросит текущий статус указанного актива.

  • blackout_state: может быть одним из следующего:

    • true: затемнить указанные активы.

    • false: удалить затемнение из указанных активов.

  • Asset type: может быть одним из следующего:

    • server_name: имя и номер порта экземпляра MySQL.

    • server_uuid: UUID экземпляра MySQL.

    • group_name: имя группы. См. главу 17.

    • asset_type: (используемый только для затемнения агентов и blackout_status) может быть одним из следующеих значений:

      • agent.Agent: определяет агента как тип актива. Команда или URL должна также содержать параметр agent_id.

      • mysql.MysqlServer: определяет экземпляр MySQL как тип актива. Команда или URL должна также содержать параметр id со значением UUID экземпляра MySQL.

Войдите в MySQL Enterprise Service Manager как пользователь с правом blackout. См. раздел 22.5. Используйте имя пользователя и пароль, которые вы определили, когда первоначально входили в Monitor UI.

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

https://localhost:18443/rest?command=blackout&group_name=Finance&blackout_state=true

Когда диалоговое окно аутентификации HTTP откроется, введите параметры для администратора.

Чтобы подтвердить, что сервер затемняется проверьте, что его имя стало серым в Monitor UI.

Чтобы повторно активировать затемненную группу серверов или сервер, используйте соответствующий URL и строку запроса, изменяя blackout_state=true на blackout_state=false. Это должно быть сделано пользователем с административными привилегиями.

Перезапуск MySQL Enterprise Monitor НЕ активирует затемненный сервер.

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

https://localhost:18443/rest?command=blackout&agent_id=agentID&blackout_state=true

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

https://localhost:18443/rest?command=blackout&agent_id=agentID&blackout_state=true&recursive=true

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

https://localhost:18443/rest?command=blackout_status&agent_id=agentID&asset_type=agent.Agent

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

https://localhost:18443/rest?command=blackout_status&id=mysqlUUID&asset_type=mysql.MysqlServer

Можно также проверить затемненный статус экземпляра MySQL, используя его имя сервера:

https://localhost:18443/rest?command=blackout_status&server_name=serverName

В настоящее время невозможно проверить затемненный статус группы.

30.3.1. Затемнения скриптов

Также возможно управлять затемнениями из командной строки или скрипта. Примеры в этой секции используют curl. Можно управлять командами из командной строки или добавить к текстовому файлу и сохранить как *.sh или *.bat в зависимости от вашей платформы.

В Unix используйте chmod +x blackout.sh , чтобы сделать файл исполняемым.

Перезапуск MySQL Enterprise Service Manager или MySQL Enterprise Monitor Agent не удаляет затемнение.

Затемнение сервера

Команда blackout позволяет затемнить отдельный экземпляр MySQL.

Для затемнения отдельного экземпляра MySQL необходимо обеспечить следующее:

  • --user: имя пользователя и пароль для пользователя Service Manager, управляющего командой. Гарантируйте, что этот пользователь имеет правильные права, чтобы выполнить затемнения.

  • URL Service Manager API. Например: "https://servicemanager:18443/rest"

  • command=blackout: команда затемнения.

  • Одно из следующего:

    • server_name= ServerName: название сервера.

    • server_uuid= AlphanumericString: UUID экземпляра MySQL.

Чтобы затемнить сервер, используя server_name:

curl -G -k --user myadmin:mypassword "https://servicemanager:18443/rest" \
     --data-urlencode "command=blackout" \
     --data-urlencode "server_name=servername:3306" \
     --data-urlencode "blackout_state=true"

Чтобы затемнить сервер, используя server_uuid:

curl -G -k --user myadmin:mypassword "https://servicemanager:18443/rest" \
     --data-urlencode "command=blackout" \
     --data-urlencode "server_uuid=62e74f29-526a-11ba-77fb-0242xy112504" \
     --data-urlencode "blackout_state=true"

Чтобы удалить затемнение, управляйте той же самой командой с "blackout_state=false":

curl -G -k --user myadmin:mypassword "https://servicemanager:18443/rest" \
     --data-urlencode "command=blackout" \
     --data-urlencode "server_uuid=62e74f29-526a-11ba-77fb-0242xy112504" \
     --data-urlencode "blackout_state=false"

Также возможно затемнить все экземпляры MySQL, проверенные определенным агентом. Для получения дополнительной информации посмотрите здесь.

Затемнение группы

Команда blackout позволяет вам затемнять группы экземпляров MySQL. Для получения дополнительной информации о MySQL Enterprise Service Manager Groups см. главу 17.

Для затемнения группы экземпляров MySQL необходимо обеспечить следующее:

  • --user: имя пользователя и пароль для Service Manager. Гарантируйте, что этот пользователь имеет правильные права, чтобы выполнить затемнение.

  • URL Service Manager API. Например: "https://servicemanager:18443/rest"

  • command=blackout: команда затемнения.

  • group_name= GroupName: имя группы для затемнения.

Следующая команда затемняет все экземпляры MySQL в группе Group 1.

curl -G -k --user myadmin:mypassword "https://servicemanager:18443/rest" \
     --data-urlencode "command=blackout" \
     --data-urlencode "group_name=Group 1" \
     --data-urlencode "blackout_state=true"

Чтобы удалить затемнение, управляйте той же самой командой с "blackout_state=false".

curl -G -k --user myadmin:mypassword "https://servicemanager:18443/rest" \
     --data-urlencode "command=blackout" \
     --data-urlencode "group_name=Group 1" \
     --data-urlencode "blackout_state=false"

Затемнение агента

Команда blackout позволяет вам затемнить агента или агента и все экземпляры MySQL, которые он в настоящее время контролирует.

Для затемнения агента необходимо обеспечить следующее:

  • --user: имя пользователя и пароль для Service Manager. Гарантируйте, что этот пользователь имеет правильные права, чтобы выполнить затемнение.

  • URL Service Manager API. Например: "https://servicemanager:18443/rest"

  • command=blackout: команда затемнения.

  • id= alphanumericString: id затемняемого агента.

Для затемнения агента выполните:

curl -G -k --user myadmin:mypassword "https://servicemanager:18443/rest" \
     --data-urlencode "command=blackout" \
     --data-urlencode "agent_id=1e365f83-b703-4588-9472-877c90a2c49f" \
     --data-urlencode "blackout_state=true"

Для затемнения агента и всех экземпляров MySQL, которые это контролирует, выполните:

curl -G -k --user myadmin:mypassword "https://servicemanager:18443/rest" \
     --data-urlencode "command=blackout" \
     --data-urlencode "agent_id=1e365f83-b703-4588-9472-877c90a2c49f" \
     --data-urlencode "blackout_state=true" --data-urlencode "recursive=true"

Статус затемнения

Команда blackout_status позволяет вам проверить, затемняется экземпляр агента или MySQL в настоящее время.

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

  • --user: имя пользователя и пароль для Service Manager. Гарантируйте, что этот пользователь имеет правильные права, чтобы выполнить затемнение.

  • URL Service Manager API. Например: "https://servicemanager:18443/rest"

  • command=blackout_status: команда blackout status.

  • id= alphanumericString: id проверяемого агента или экземпляра MySQL.

  • asset_type: одно из следующего:

    • agent.Agent: проверить затемненный статус агента.

    • mysql.MysqlServer: проверить затемненный статус экземпляра MySQL.

Следующая команда проверяет затемненный статус агента:

curl -G -k --user myadmin:mypassword "https://servicemanager:18443/rest" \
     --data-urlencode "command=blackout_status" \
     --data-urlencode "id=1e365f83-b703-4588-9472-877c90a2c49f" \
     --data-urlencode "asset_type=agent.Agent"

Следующая команда проверяет затемненный статус экземпляра MySQL:

curl -G -k --user myadmin:mypassword "https://servicemanager:18443/rest" \
     --data-urlencode "command=blackout_status" \
     --data-urlencode "id=750cead2-441d-11ea-b3e7-dfdaa5ad712e" \
     --data-urlencode "asset_type=mysql.MysqlServer"

Поиск

 

Найди своих коллег!

Вы можете направить письмо администратору этой странички, Алексею Паутову. mailto:alexey.v.pautov@mail.ru