Источник данных MySQL
В Подсистему встроен плагин источника данных MySQL, который позволяет запрашивать и визуализировать данные из совместимой с MySQL базы данных, например MariaDB или Percona Server. Нет необходимости устанавливать плагин, чтобы добавить источник данных MySQL в пользовательский экземпляр Подсистемы.
Подсистема предлагает несколько вариантов конфигурации для этого источника данных, а также визуальный и текстовый редактор запросов.
Настройка источника данных MySQL
Для настройки источника данных MySQL должна быть роль "Organization administrator". Администраторы также могут настроить источник данных с помощью YAML в подготовке Подсистемы.
Подсистема поставляется с плагином MySQL, поэтому никакой дополнительной установки не требуется.
При добавлении источника данных следует убедиться, что пользователь базы данных имеет только разрешения "SELECT" на доступ к соответствующей базе данных и таблицам. Подсистема не проверяет безопасность запросов, а значит, они могут содержать потенциально опасные операторы SQL, такие как "USE otherdb;" или "DROP TABLE user;", которые могут быть выполнены. Чтобы свести к минимуму этот риск, настоятельно рекомендуется создать отдельного пользователя MySQL с ограниченными правами.
Добавление источника данных MySQL
Чтобы добавить источник данных MySQL, нужно выполнить следующие действия:
- выбрать "Connections (Подключения)" в меню слева;
- нажать Add new connection (Добавить новое подключение) и ввести "MySQL" в строке поиска;
- выбрать опцию "Источник данных MySQL";
- нажать Add new data source (Добавить новый источник данных) в правом верхнем углу.
В результате осуществится переходе на вкладку "Setting (Настройки)", где можно настроить источник данных.
Параметры конфигурации MySQL
Ниже приведен список параметров конфигурации MySQL:
- Имя – задает имя, которое используется для обращения к источнику данных на панелях и в запросах, например: mysql-assets-1, mysqldb1;
- По умолчанию – переключить, чтобы сделать этот конкретный источник данных MySQL предварительно выбранным источником данных по умолчанию на панелях и в визуализациях;
- Подключение:
- URL-адрес хоста – ввести IP-адрес/имя хоста и необязательный порт экземпляра MySQL. Если порт не указан, будет использоваться порт по умолчанию 3306;
- База данных – ввести имя базы данных MySQL;
- Аутентификация:
- Имя пользователя – ввести имя пользователя, используемое для подключения к базе данных MySQL;
- Пароль – ввести пароль, используемый для подключения к базе данных MySQL;
- Использовать клиентскую аутентификацию TLS – переключить для включения аутентификации TLS с использованием клиентского сертификата, указанного в конфигурации безопасного JSON; указать клиентский сертификат в секции "Клиентский сертификат TLS/SSL", указать ключ в секции "Клиентский ключ TLS/SSL";
- С сертификатом CA – переключить аутентификацию на использование сертификата CA; требуется для проверки самоподписанных сертификатов TLS; предоставить корневой сертификат в секции "Корневой сертификат TLS/SSL", если этого требует режим TLS/SSL;
- Пропустить проверку TLS – переключить для пропуска проверки цепочки сертификатов TLS сервера MySQL и имени хоста;
- Разрешить передачу паролей в открытом виде – переключить этот параметр, чтобы разрешить использование клиентского плагина для передачи паролей в открытом виде, если это требуется для определенного типа учетной записи, например, для учетной записи, определенной с помощью плагина аутентификации PAM. Следует обратить внимание, что передача паролей в открытом виде может представлять угрозу безопасности в определенных конфигурациях. Чтобы избежать проблем, связанных с паролями, рекомендуется, чтобы клиенты подключались к серверу MySQL с помощью безопасного метода, защищающего пароль. К таким методам относятся TLS/SSL, IPsec или частная сеть.
Ниже приведены дополнительные настройки MySQL:
- Параметры MySQL:
- Часовой пояс сеанса – указывает часовой пояс, используемый в сеансе базы данных, например Europe/Berlin или +02:00; требуется, если часовой пояс базы данных (или хоста базы данных) отличается от UTC; задать значение +00:00 для корректной обработки времени в Подсистеме; задать значение, используемое в сеансе, с помощью SET time_zone='...'. Если оставить это поле пустым, часовой пояс не будет обновлен;
- Минимальный временной интервал – определяет нижний предел для переменных $__interval и $__interval_ms. Рекомендуется устанавливать этот параметр в соответствии с частотой записи данных. Например, если данные записываются каждую минуту, установить 1m в качестве минимального временного интервала.
- Ограничения на подключение:
- Максимальное количество открытых соединений – максимальное количество открытых соединений с базой данных, по умолчанию 100;
- Максимальное количество простаивающих соединений – максимальное количество соединений в пуле простаивающих соединений, по умолчанию 100;
- Авто (максимальное количество простаивающих соединений) – максимальное количество простаивающих соединений равным максимальному количеству открытых соединений. Значение по умолчанию – true;
- Максимальное время использования – максимальное количество секунд, в течение которых соединение может быть повторно использовано. Это значение всегда должно быть меньше, чем настроенное wait_timeout в MySQL. Значение по умолчанию – 14400 или 4 часа.
После добавления настроек подключения к MySQL нужно нажать Save&Test (Сохранить и протестировать), чтобы протестировать и сохранить подключение к источнику данных.
Редактор запросов MySQL
Редактор запросов MySQL находится на странице "Explore (Исследование)".
Примечание – Если база данных по умолчанию настроена на странице "Настройка источника данных" или в файле конфигурации подготовки, пользователи смогут выполнять запросы только к этой предварительно настроенной базе данных. Эта функция скрыта за флагом и доступна после включения sqlDatasourceDatabaseSelection.
Компоненты редактора запросов MySQL
Редактор запросов MySQL имеет два режима: Builder (Конструктор) и Code (Код).
Режим конструктора позволяет создавать запросы с помощью визуального интерфейса. Режим кода позволяет создавать сложные запросы и поддерживает написание SQL-запросов.
Примечание – Если имя таблицы или базы данных содержит зарезервированное слово или запрещенный символ, редактор заключит имя в кавычки. Например, имя table-name будет заключено в обратные одинарные кавычки –
table-name.
Режим конструктора MySQL
Следующие компоненты помогут создать запрос MySQL:
- Формат – выбрать формат ответа в раскрывающемся списке для запроса MySQL. По умолчанию используется "Таблица". Если используется формат "Временные ряды", один из столбцов должен быть time;
- Dataset – выбрать базу данных для запроса из раскрывающегося списка.
- Таблица – выбрать таблицу из выпадающего списка; таблицы соответствуют выбранной базе данных;
- Операции с данными – (необязательно) выбрать агрегацию в раскрывающемся списке; можно добавить несколько операций с данными, нажав
; нажать
, чтобы удалить операцию с данными; нажать значок
, чтобы удалить весь столбец; - Столбец – выбрать столбец, для которого будет выполняться агрегация;
- Псевдоним – (необязательно) добавить псевдоним из выпадающего списка; также можно добавить пользовательский собственный псевдоним, введя его в поле и нажав Enter; чтобы удалить псевдоним, нажать
.
- Фильтр – переключатель для добавления фильтров.
- Фильтрация по значению столбца – (необязательно) если включить фильтрацию, можно добавить столбец для фильтрации из выпадающего списка; чтобы отфильтровать по нескольким столбцам, нажать
справа от выпадающего списка условий; можно выбрать различные операторы из выпадающего списка рядом с условием; при добавлении нескольких фильтров можно добавить оператор AND для отображения всех истинных условий или оператор OR для отображения любых истинных условий; использовать второй раскрывающийся список для выбора фильтра; чтобы удалить фильтр, нажать кнопку
рядом с раскрывающимся списком этого фильтра; после выбора столбца с типом даты можно выбрать "Макросы" в списке операторов и нажать timeFilter для добавления макроса $\_\_timeFilterв запрос с выбранным столбцом даты. - Группировка – переключатель для добавления "Группировка по столбцу".
- Фильтрация по значению столбца – (необязательно) если включить фильтрацию, можно добавить столбец для фильтрации из выпадающего списка; чтобы отфильтровать по нескольким столбцам, нажать
- Группировка по столбцу – выбрать столбец для фильтрации в раскрывающемся списке; нажать
, чтобы отфильтровать по нескольким столбцам; нажать
, чтобы удалить фильтр. - Сортировка – переключить, чтобы добавить инструкцию "ORDER BY".
- Сортировка по – выбрать столбец для сортировки из выпадающего списка; выбрать порядок по возрастанию (ASC) или по убыванию (DESC);
- Ограничение – можно добавить необязательное ограничение на количество возвращаемых результатов. По умолчанию установлено значение 50.
- Предварительный просмотр – включение предварительного просмотра SQL-запроса, сгенерированного конструктором запросов; предварительный просмотр включен по умолчанию.
Режим кода MySQL
Чтобы создавать сложные запросы, нужно переключиться в режим кода, нажав "Код" в правом верхнем углу окна редактора. Режим кода поддерживает автозаполнение таблиц, столбцов, ключевых слов SQL, стандартных функций SQL, переменных шаблонов Подсистемы и макросов Подсистемы. Столбцы нельзя заполнить до указания таблицы.
Для работы выбирают "Таблицу" или "Временную шкалу" в качестве формата, нажимают значок (скобки) в правом нижнем углу, чтобы отформатировать запрос, затем (раскрыть), чтобы развернуть редактор в режиме кода. CTRL/CMD+Return служит сочетанием клавиш для выполнения запроса.
Следует обратить внимание, что изменения, внесенные в запрос в режиме "Код", не будут перенесены в режим "Конструктор" и будут отменены. Будет предложено скопировать код в буфер обмена, чтобы сохранить внесенные изменения.
Макросы
Можно добавлять макросы в свои запросы, чтобы упростить синтаксис и включить динамические элементы, например фильтры по диапазону дат.
Табличные SQL-запросы
Если для параметра "Формат" установлено значение "Таблица", можно выполнить практически любой тип SQL-запроса. На панели "Таблица" автоматически отобразятся столбцы и строки, полученные в результате запроса.
Создание шаблонов
Вместо того чтобы жестко задавать значения, такие как имена серверов, приложений или датчиков, в запросах метрик можно использовать переменные. Переменные отображаются в виде выпадающих списков в верхней части панели мониторинга. Эти выпадающие списки позволяют легко изменять данные, отображаемые на панели мониторинга.
Переменная запроса
Если добавить переменную шаблона Query , можно написать запрос MySQL для получения таких элементов, как названия измерений, имена ключей или значения ключей, которые будут отображаться в раскрывающемся меню.
Аннотации
Аннотации позволяют накладывать подробную информацию о событиях поверх графиков с помощью добавления запросов аннотаций в "Панелях мониторинга" через значок (шестеренка) и выбор в левом меню "Annotations (Аннотации)" (таблица 33).
Оповещения
Можно использовать запросы временных рядов для создания оповещений. Запросы в табличном формате пока не поддерживаются в условиях правил оповещений.