QMAN — приложение для мониторинга и управления экземплярами QHB

Интерфейсное приложение QMAN (QHB Manager) предназначено для осуществления мониторинга и управления экземплярами и кластерами QHB. Включает в себя интерфейсный модуль, QMAN-агент, REST/SQL API, центральный репозиторий и скрипты выполнения запросов и команд.



Описание

QMAN обеспечивает текущий информационный срез состояния отдельных серверов и кластеров QHB и централизованное хранение данных в едином репозитории на базе QHB. Администратор описывает структуру экземпляров и кластеров и параметры подключения, а затем система периодически обновляет метрики и техническую информацию через агента. Обновление данных выполняется независимо от интерфейса, что гарантирует их актуальность даже при временной недоступности UI. Агент, установленный на каждом хосте с QHB, принимает запросы на выполнение команд от интерфейса и предоставляет данные от установленных экземпляров QHB. Результаты (метрики, статусы, события) записываются в репозиторий QMAN. Поддерживаются следующие варианты функционирования QHB: одиночные экземпляры вне кластера, кластеры под управлением Qluster, кластеры без менеджера (ручное управление/скрипты).

Примечание
Также планируется управление кластерами Patroni, адаптированными для QHB (пока выводится только структура и статус экземпляров).


Компоненты

  • Экземпляры QHB (одиночные и кластерные установки).
  • Агенты QMAN на хостах с QHB.
  • Центральный репозиторий QMAN (БД мониторинга и управления).
  • Интерфейсное приложение QMAN.

Диаграмма связей компонентов QMAN


Установка компонентов

Центральный репозиторий

Центральный репозиторий устанавливается на сервере, который выбран в качестве центрального сервера, к которому идет обращение при авторизации и запросе данных об экземплярах в интерфейсных приложениях, где настроен мониторинг с помощью QMAN и собираются данные метрик, поступающих с других хостов, где проверяется возможность выполнений команд агентами QMAN при обращении к ним из интерфейсного приложения. Скрипты поставляются вместе с агентом QMAN (qman-backend) в едином пакете, находятся в отдельном подкаталоге repo_scripts и запускаются с помощью psql.


Интерфейсное приложение

Модуль qman-client (приложение с графическим интерфейсом) поставляется в отдельном пакете, и представляет из себя бинарный исполняемый файл qman. Настройки приложения хранятся в конфигурационном файле qman_config.toml.


Агент QMAN

Установка агента QMAN выполняется на целевой Linux‑системе. Рекомендуется каталог установки /opt/qman-backend (владелец root, права 755).

  1. Загрузите бинарный файл qman-backend под целевую ОС Linux.
  2. В каталоге установки (/opt/qman-backend) разместите:
    • бинарный файл qman-backend;
    • конфигурацию config.yml (см. пример);
    • подкаталог data с файлами пресетов команд и скриптами (копируется из репозитория qman-backend);
    • файлы presets.yml и validators.yml.

Примеры конфигурации

config.yml (агент QMAN):

msg_db_file: "internal_msg.dat"
repo_conn_str: "host=192.168.110.44 dbname=qman user=qman"
internal_msg_config:
  repository_agent_url: "http://192.168.110.44:3000/internal-msg"
  send_timeout_sec: 12
  send_retry_count: 12
  msg_process_pause_sec: 12

Регистрация сервиса qman-agent в systemd

Создайте файл сервиса /etc/systemd/system/qman-agent.service:

[Unit]
Description=Qman Agent
After=syslog.target
After=network.target

[Service]
WorkingDirectory=/opt/qman-backend
User=qhb
Group=qhb
ExecStart=/opt/qman-backend/qman-backend
Restart=always

[Install]
WantedBy=multi-user.target

Затем выполните:

systemctl enable qman-agent
systemctl start qman-agent
systemctl status qman-agent

API

Агент QMAN устанавливается на каждом хосте, где необходимо управлять QHB, в том числе и на хосте с базой центрального репозитория, общение с которой в приложении QMAN происходит также через команды агента. Благодаря указанию в настройках агенты знают, где находится агент центрального репозитория. Имеется механизм передачи сообщений (в том числе отложенных, в случае обрыва связи) в центральный репозиторий через вызовы агентов.

Агент может выполнять три вида команд:

  • Команды операционной системы.
  • SQL-запросы.
  • обращения через REST-интерфейс.

Команды описаны в так называемых пресетах — шаблонах команд, которые содержат собственно команды и участки кода для подстановки параметров, заключенные в двойные фигурные скобки. Пресеты находятся в соответствующих подкаталогах каталога /opt/qman-backend/data/tpl. Список всех команд-пресетов содержится в файле /opt/qman-backend/presets.yml, а в файле /opt/qman-backend/validators.yml описываются обязательные параметры, необходимые для выполнения команд. В случае пропуска необходимых параметров команда не выполняется.

Мониторинг кластера Patroni может осуществляться через REST-интерфейс Patroni (подробную информацию см. в документации Patroni). Параметры для доступа к Patroni через REST-интерфейс хранятся в данных репозитория QMAN.



Интерфейсное приложение QMAN

Настройки (адрес и порт хоста центрального репозитория, настройки интерфейса)

В файле qman_config.toml нужно прописать адрес хоста центрального репозитория, порт агента (3000), имя пользователя и пароль.


Создание базы данных и пользователей для входа в QMAN

В экземпляре QHB для центрального репозитория и в каждом доступном для QMAN экземпляре QHB необходимо создать пользователя qman и служебную базу данных qman. В центральном репозитории при установке объектов репозитория из скриптов, поставляемых вместе с агентом QMAN, пользователь qman, база данных qman и роль qman_user создаются автоматически. Для зарегистрированных в QMAN экземпляров необходимо самостоятельно выполнить следующий скрипт от имени суперпользователя:

-- База qman и пользователь qman
CREATE DATABASE qman;
CREATE USER qman WITH superuser login;
GRANT all ON database qman TO qman;

В дальнейшем все операции через агента QMAN на стороне управляемых экземпляров выполняются от имени служебного пользователя qman. Работа от имени пользователя qman должна выполняться только через агента QMAN с подключением только через сокеты Unix (тип соединения local в qhb_hba.conf). Работа от имени пользователя qman по сети должна быть невозможна.

Роли-пользователи создаются для каждого реального пользователя. Необходимо при этом задавать пароли, которые будут использоваться при входе в приложение QMAN. Каждому реальному пользователю QMAN должна быть выдана роль qman_user. Без этой роли пользователь не сможет зайти в приложение. Для этого необходимо выполнить:

GRANT qman_user TO <new_user>;

для каждого нового пользователя QMAN.


Вход и аутентификация пользователей

При входе в QMAN пользователь вводит имя и пароль. При этом происходит подключение к репозиторию и проверка наличия роли qman_user. Если такая роль у пользователя есть, пользователь получает так называемый «тикет», и все дальнейшие действия происходят с передачей этого «тикета», по которому проверяется актуальность доступа пользователя к QMAN. Если пользователь при этом более часа не выполнял никаких операций, необходим повторный вход в систему.

Рисунок 1. Окно входа

Окно входа

Настройки для входа можно сохранить в файле qman_config.toml в том же каталоге, где находится бинарный файл.


Структура дерева объектов. Операции по модификации объектов

Интерфейс отображает иерархическое дерево экземпляров QHB, объединенных в логические разделы или группы (например, подразделения предприятия). Экземпляры могут быть как одиночными, так и объединенными в кластеры, включающие в себя ведущий экземпляр и реплики. Поддерживаются следующие сущности: группа, хост, кластер и экземпляр QHB.

Представление экземпляров в разрезе хостов и в разрезе кластеров

Физическое представление

Экземпляры в этом случае представлены списком для каждого отдельного хоста:

Рисунок 2. Экземпляры в разрезе хостов

Экземпляры в разрезе хостов

В данный режим дерево объектов переключается кнопкой «Хосты».

Логическое представление

В этом случае экземпляры представлены списками внутри групп по каждому кластеру:

Рисунок 3. Экземпляры в разрезе кластеров

Экземпляры в разрезе кластеров

В данный режим дерево объектов переключается кнопкой «Кластеры».

Переключение представления информации по экземплярам позволяет анализировать инфраструктуру по хостам или по кластерам. При переходе от одного представления данных к другому фокус на выбранном экземпляре сохраняется и можно определить, в каком кластере работает выбранный экземпляр или на каком хосте он развернут. Поддерживается интеграция с кластерами Qluster, а также вывод состава и состояния узлов кластеров Patroni.

Навигация по дереву элементов

При переходе на раздел или хост отображаются подчиненные объекты. Для раздела это хосты, для хостов — экземпляры. При переходе по ссылкам на экраны с данными других объектов сохраняется история навигации, и пользователь может вернуться обратно или снова перейти на то место, где он только что был. Кнопки навигации работают аналогично кнопкам навигации по просмотренным страницам в браузерах.

Элементы дерева и управление ими

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

  • Каждый элемент дерева имеет внутренний идентификатор, идентификатор родителя и тип элемента.
  • Справа от дерева отображается панель свойств с перечнем атрибутов и их значениями. Для каждого элемента выводятся наименование и комментарий.
  • Для каждого элемента могут быть определены дополнительные характеристики (хранятся в атрибуте с типом JSON).
    • Атрибуты хоста: доменное имя (или IP‑адрес), наименование операционной системы, порт агента QMAN.
    • Атрибуты сервера QHB: имя , порт, путь к каталогу данных PGDATA, путь к каталогу резервных копий, текущая роль в кластере, признак использования метрик.
    • Атрибуты кластера: система управления (Patroni/Qluster).

Операции с объектами дерева:

  • добавление объекта заданного типа;
  • редактирование данных объекта;
  • перенос объекта в другой раздел;
  • удаление объекта.

Информация по хостам

Помимо основных атрибутов, по хостам приводится также информация со списком экземпляров

Рисунок 4. Список экземпляров

Список экземпляров

и информация об использовании ими дискового пространства.

Рисунок 5. Распределение пространства

Распределение пространства


Информация по экземплярам

Объекты экземпляров в дереве объектов

Дерево объектов состоит из разделов-групп (они могут соответствовать произвольным структурным подразделениям), в которых описываются физические или виртуальные хосты, к которым, в свою очередь, привязываются экземпляры QHB.
Глубина ветвления для групп и количество объектов внутри групп не ограничены. Хосты могут быть как внутри групп, так и вне их, т. е. могут быть привязаны прямо к «корню» дерева. Экземпляры должны быть привязаны к хостам. К каждому хосту может быть привязан один или несколько экземпляров. Кроме того, экземпляры могут входить в кластеры. Все операции по добавлению или удалению объектов дерева осуществляются с помощью управляющих кнопок дерева.

Панель экземпляра

Общая информация

Закладка «Информация» содержит несколько разделов:

  • Имя и ссылка на хост, на котором развернут экземпляр и имя и ссылка на кластер, в случае вхождения экземпляра в кластер.
  • Каталог данных и каталог резервирования.
  • Порт экземпляра.
  • Роль экземпляра (основной или резервный, в случае вхождения в кластер).
  • Использование метрик.
  • Информация о лицензии.
  • Управление стартом, остановкой и перезапуском экземпляра, а также перезагрузкой параметров.
  • Окно SQL-запросов.
SQL

Закладка SQL поддерживает две возможности — выполнение одиночных запросов или команд, а также сеансы, где можно открывать транзакции и выполнять последовательность связанных действий, явно завершая транзакции. По умолчанию происходит выборка первых 10 строк из результатов запроса. Для следующей порции строк нужно нажать соответствующую кнопку (со стрелкой вправо). Очередной запрос имеет свою область с вводом запроса и выводом данных. Если необходимо выполнить не запрос, а команду, нужно предварительно нажать кнопку «Команда». Это временный порядок выполнения. Результаты выполнения запроса можно экспортировать в формате Markdown или в формате XLS. Особенностью экспорта в XLS является возможность сгруппировать данные по отдельным листам с помощью указания столбца, в котором будут браться строки с одинаковым значением для каждого листа Excel. В этом случае значение наименования листа не нужно заполнять, поскольку каждый лист будет именоваться в соответствии со значением из выбранного для разбивки столбца. Особенность экспорта — имя файла нужно указывать вместе с расширением .xls.

Рисунок 6. Окно SQL

Окно SQL

Настройки

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

Рисунок 7. Настройки

Настройки

Настройки аутентификации по имени узлов (host-based authentication)

Данные на закладке HBA выводят настройки аутентификации на основе данных из файла qhb_hba.conf.

Рисунок 8. Настройки HBA

Настройки HBA

Журналы QHB

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

Рисунок 9. Журналы

Журналы

Резервное копирование с помощью утилиты QBackup

Для выполнения резервного копирования на панели экземпляра нужно выбрать закладку «Резервное копирование». В разделе «Настройки» приведены основные параметры, связанные с настройкой резервного копирования.

Рисунок 10. Список настроек

Список настроек

Приводятся хост и порт экземпляра, каталог данных и каталог резервирования. Далее идет список настроек, влияющих на выполнение копирования. Режим непрерывного резервирования файлов WAL включается через параметр archive_mode. Также должны быть определены команды сохранения и восстановления файлов WAL archive_command и restore_command. Принудительное переключение файлов WAL по истечении времени происходит при использовании параметра archive_timeout. Для выполнения инкрементального резервного копирования обязательно необходимо задать значение для параметра qcdc_registry_size, определяющего объем выделяемой для этого памяти. При использовании потокового режима архивации (скорее всего, он будет использоваться в большинстве случаев) нужно установить в параметре wal_level значение replica. При выполнении резервного копирования с резервного сервера необходимо выставить hot_standby в значение on, archive_mode — в always, а full_page_writes — в on. При настройке выполнения резервирования необходимо тщательно изучить соответствующий раздел документации.

Ниже расположен раздел со списком резервных копий, данные для которого берутся из файла catalog.json в каталоге резервных копий.

Рисунок 11. Список бэкапов

Список бэкапов

При выборе конкретной копии данных можно проверить ее на целостность или, при необходимости, удалить. Старые архивы с возрастом более заданного количества дней а также ставшие ненужными файлы WAL тоже можно удалить. Соответствующие кнопки расположены сразу после списка резервных копий. Данные из копии можно восстановить, указав каталог, в который будет происходить восстановление, и выбрав необходимый режим восстановления — до последнего изменения или, при необходимости, на момент времени (в качестве примеров далее приводится синтаксис соответствующих параметров утилиты qbackup):

  • собственно на момент времени: --target-time='2017-05-18 14:18:11+03';
  • на номер транзакции: --target-xid=687;
  • на определенный LSN: --target-lsn=16/B374D848;
  • на заданную точку восстановления: --target-name='before_app_upgrade'.

В нижней части закладки расположены элементы управления созданием резервных копий. Можно определить, необходимо ли сжатие копии, привести комментарий, выбрать вид копии — полная или инкрементальная. После начала выполнения резервного копирования можно с помощью кнопки «Лог» обновлять вывод данных журнала и следить за ходом выполнения копирования.

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

При выборе пункта «Пространство» на закладке «Обзор» выводится диаграмма распределения пространства между базами данных, журналами и файлами WAL.

Рисунок 12. Диаграмма использования пространства

Диаграмма использования пространства

Вкладка «Обзор» содержит диаграмму с данными об объеме баз данных.

Во вкладке «Раздувание» приводятся данные о раздувании таблиц и индексов. Основная цель — выявить наиболее значимые факты перерасхода пространства на основе данных статистики по таблицам и индексам, чтобы определить кандидатов на проведение очистки.

Рисунок 13. Раздувание

Раздувание

На закладке «Заморозка» выводятся данные, относящиеся к функционалу заморозки транзакций. Под заголовком «Доступные номера XID активных бэкендов» выводятся данные о горизонте транзакций и доступных номерах транзакций для активных обслуживающих процессов.

Рисунок 14. Заморозка

Заморозка

Под заголовком «Мониторинг вакуума» выводятся данные об активных процессах очистки.

Рисунок 15. Мониторинг вакуума

Мониторинг вакуума

Блок данных внизу вкладки содержит статистику по заморозке и транзакциям в разрезе баз данных экземпляра.

Метрики

Сбор метрик осуществляется через сервер метрик metricsd.

Настройка загрузки данных метрик в базу метрик репозитория происходит через утилиту qdlm. Настройка сбора метрик и загрузки данных метрик описаны в документации QHB.

Если метрики собираются для этого экземпляра, необходимо в разделе «Информация» сделать соответствующую пометку.

Рисунок 16. Пометка об использовании метрик

Пометка об использовании метрик

Для сбора метрик с нескольких экземпляров необходимо использовать префикс на уровне коллектора метрик, совпадающий с обозначением экземпляра в дереве объектов. Запрос метрик из репозитория будет происходить именно по этому префиксу. По умолчанию запрашиваются все метрики с начала суток, далее по ним строится иерархическое дерево с их именами. Каждая часть имени метрик образует ветвь, где листовые элементы — собственно сами метрики. С течением времени метрики дополнительно загружаются в репозиторий, и их состав может пополняться. Поэтому имеет смысл при необходимости обновлять содержание дерева, используя свежие данные.

Интерфейс к данным метрик представляет собой графики.

В метриках используется четыре основных класса метрик в разрезе единиц их измерения — Units (единицы, штуки), Seconds (секунды), Bytes (байты), Percent (проценты). Метрики каждого класса могут попадать в общие графики, объединяющие соответствующие классы метрик. Для этого единицы измерения приводятся именно к этим четырем значениям, чтобы данные были сопоставимы. Конечно, можно исследовать график каждой метрики отдельно, на основном графике, который представляет данные именно для текущей выбранной метрики. При выборе метрики она добавляется на соответствующую ее единицам измерений область на сводном графике, который доступен по кнопке «Показать сводку». Области с разными единицами измерения можно сворачивать и разворачивать, концентрируясь на необходимых данных.

Для метрик типа timer в настоящее время используется разделение на две метрики — с окончанием на _count выводится метрика для количества событий в панели Units, а основная часть метрик — на панель Seconds, т. к. остальные значения имеют временной тип. Метрики, которые не определяются как существующие в справочнике метрик Qman, по умолчанию выводятся также на панели с типом Units.

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

  • Изменения вертикального размера графика с помощью горизонтальной линии снизу от графика, которая служит управляющим элементом. С ее помощью вертикальный размер можно увеличить или уменьшить.
  • Прокрутка графика влево-вправо - Shift+Scroll.
  • Прокрутка графика вверх-вниз - Alt+Scroll.
  • Изменение масштаба изображения - Ctrl+Scroll.
  • Переход к оптимальному представлению графика - Двойной клик мышью.
  • Выделение области графика - с помощью нажатия правой кнопки мыши и выделения прямоугольной области на графике.

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

Рисунок 17. Вывод графиков метрик

Вывод графиков метрик

Общий SQL-кеш запросов

На панели «Кеш» по умолчанию выводится общая статистика по общему SQL-кешу запросов, а также список запросов, находящихся в нем.

Рисунок 18. Данные SQL-кеша

Данные SQL-кеша

При навигации на конкретный запрос можно вывести его текст, план запроса, а также выполнить профилирование запроса в заданном сеансе.

Рисунок 19. SQL-запросы в кеше

SQL-запросы в кеше

Это может быть или сеанс администратора или сеанс приложения. При нажатии кнопки «Профилирование» PID обслуживающего процесса необходимо внести в поле «PID бэкенда» и нажать кнопку «Получить». При выполнении запроса в указанном обслуживающем процессе появится план этого запроса.

Рисунок 20. Профилирование SQL-запроса

Профилирование SQL-запроса

Базы данных и схемы

При навигации на пункт меню «Databases» выводится список баз данных экземпляра и диаграмма занимаемого ими пространства. Базы-шаблоны в этом списке не учитываются.

Рисунок 21. Список баз данных экземпляра

Список баз данных экземпляра

В раскрывающемся списке под пунктом «Databases» выводится список существующих баз данных, за исключением баз-шаблонов. При открытии конкретной базы данных выводится список существующих в ней схем, к каждой из которых относится список принадлежащих ей объектов.

Рисунок 22. Базы данных и их схемы

Базы данных и их схемы

Информация

На этой вкладке приводится общая информация о функционировании базы данных — ее размер, коэффициент эффективности кеширования, процент зафиксированных транзакций, число конфликтов и взаимоблокировок, количество и объем временных файлов.

Рисунок 23. Основная информация о функционировании базы данных

Основная информация о функционировании базы данных

SQL

Вкладка SQL повторяет функциональность вкладки SQL на уровне экземпляра. По умолчанию выбирается текущая база данных.

Пространство

Вкладка «Обзор» содержит данные об объеме базы данных.

Вкладка «Раздувание» предоставляет данные о раздувании таблиц и индексов, в частности, объем перерасхода пространства.

Вкладка «Заморозка» содержит данные по объектам базы данных по заморозке, горизонту транзакций и количеству операций очистки для каждой таблицы базы данных.

Сеансы

Вкладка «Сессии» приводит список всех сеансов, относящихся к выбранной базе данных. Можно увидеть информацию о самом обслуживающем процессе, о выполняемом им (либо в настоящее время, либо в последний раз) запросе. Также выводятся граф блокировок. На панели справа можно увидеть детали выполнения запроса, а также отменить его выполнение («Отмена») или завершить сессию («Завершение»). При необходимости можно также выполнить операцию EXPLAIN для запроса. При этом произойдет переход в закладку «Планы».

Рисунок 24. Сеансы

Сеансы

Планы

Для анализа планов запросов можно выполнить команду EXPLAIN со всеми ее параметрами.

Рисунок 25. Планы

Планы

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

Рисунок 26. Планы. Расширенный анализ

Планы. Расширенный анализ

Профилирование

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

Рисунок 27. Профилирование длительных запросов

Профилирование длительных запросов

Роли

Роли и пользователи разделены. Список ролей без права подключения к базам содержится в разделе Roles.

Рисунок 28. Роли

Роли

Стандартные атрибуты ролей представлены на панели роли:

Рисунок 29. Информация о роли

Информация о роли

Пользователи

Список ролей без права подключения к базам содержится в разделе Users.

Рисунок 30. Пользователи

Пользователи

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

Рисунок 31. Права

Права


Использование чат-бота ИИ

QMAN может использовать возможности искусственного интеллекта, в частности, системы DeepSeek. Для этого в конфигурационном файле qman_config.toml заполняются соответствующие параметры раздела chatbot: model, url, key, temperature. Значение 1.2 в примере конфигурации для DeepSeek3, например, соответствует высокой креативности, когда ответы становятся разнообразными, но могут быть менее точными. В других моделях значения могут иметь свои диапазоны и характеристики. Необходимо уточнять значение, исходя из документации используемой версии. Указанные в конфигурации значения подгружаются из файла и видны через окно настроек чат-бота.

Рисунок 32. Настройки чат-бота

Настройки чат-бота

Основной возможностью работы с ИИ на текущий момент является предоставление формализованного описания выбранной схемы базы данных для того, чтобы далее в диалоговом режиме можно было описывать запросы на нативном языке и получать сформулированные на языке SQL запросы к базе данных. Описание схемы базы данных содержит перечень всех основных типов объектов базы данных, существующих в указанной схеме, включая также комментарии к ним. Описание предоставляется в формате JSON. Это позволяет максимально структурировать описание схемы и соединить формальное описание объектов с комментариями к этим объектам на нативном языке, что является очень эффективным подходом. Благодаря этому, точность ответов значительно повышается. Запрос для получения описания передаваемой в качестве параметра схемы находится в шаблоне qman-backend/data/tpl/sql/schema_objects.tpl. Для инициализации чата с ИИ можно воспользоваться кнопкой «Передать схему чат-боту» при навигации на имя интересующей схемы.

Рисунок 33. Начало использования чат-бота

Начало использования чат-бота

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

Рисунок 34. Ответы чат-бота

Ответы чат-бота

Кроме того, окно чата ИИ можно вызвать независимо, из пункта главного меню «Чат-бот».


Информация о кластерах

Переключение на представление данных о кластерах

Для вывода информации о кластерах нужно в меню дерева объектов переключиться в режим просмотра кластеров с помощью кнопки «Кластеры». В этом режиме выводится информация только по активным кластерам со списком входящих в данный кластер узлов. В зависимости от типа кластера — Patroni или Qluster — выводится соответствующая информация.

Кластеры Patroni в QMAN

В настоящее время в QMAN нет возможности управлять кластерами Patroni. Выводятся лишь основные данные:

  • параметры конфигурации;
  • состав кластера;
  • статус входящих в него узлов.

Рисунок 35. Кластер Patroni

Кластер Patroni

Кластеры Qluster в QMAN

При навигации на кластер типа «Qluster» выводятся следующие данные:

  • параметры конфигурации Qluster;
  • список узлов кластера, их роль (L — основной, R — резервный), тип (QHB или QCP), порт QHB и порт API;
  • элементы управления;
  • поле «Лог» с выводом результатов команд.

Элементы управления:

  • кнопка «Сделать лидером» — переключение лидера кластера на выбранный узел кластера с типом «QHB»;
  • кнопка «Удаление» — удаление узла из состава кластера. Сервис qluster при этом останавливается;
  • кнопка «Конфиг БД» — вывод в поле «Лог» настроек QHB;
  • кнопка «SQL только для чтения» — вывод в поле «Лог» списка идентификаторов запросов только для чтения.

Рисунок 36. Кластер Qluster

Кластер Qluster