Функциональная архитектура
Ниже представлен список компонентов с развернутым описанием их функций в рамках системы:
- сервер приложений;
- модуль мониторинга активности пользователя;
- модуль настройки и аналитики;
- веб-интерфейс.
Архитектура приложения представлена в Приложении 1. Пример сетевой схемы представлен в Приложении 2.
Сервер приложений
Сервер приложений данных предназначен для хранения и извлечения всей информации в полном объеме. В качестве СУБД Системы используется RocksDB и OLAP ClickHouse. Взаимодействие сервера приложений происходит непосредственно с RocksDB и ClickHouse. С ClickHouse связь осуществляется через https-протокол.
Официальный сайт с описанием RocksDB – https://rocksdb.org.
RocksDB – это встроенное файловое хранилище, к которому возможно получить доступ через интерфейсы Системы с аутентификацией пользователя, а также на уровне файловой системы пользователю с соответствующими правами доступа. Доступ к БД защищается на уровне файловой системы.
Официальный сайт с описанием ClickHouse – https://clickhouse.yandex/docs/ru.
ClickHouse – столбцовая система управления базами данных (СУБД) для онлайн-обработки аналитических запросов (OLAP).
Модуль мониторинга активности пользователя
ММАП предназначен для автоматического сбора информации о моментах переключений пользователя между различными вкладками и окнами приложений. Модуль может быть установлен на АРМ сотрудников.
ММАП раз в 10 минут запаковывает и передает .zip архив с активностью пользователя на сервер приложений.
Архивы, которые передаются на сервер приложений, сохраняются в директорию «agent_activity_queue» в папку с названием даты прихода активности и соответствующего 10-минутного интервала. Каждую минуту данные всех архивов с активностью агрегируются в один csv-файл. Название csv-файла содержит случайный UUID. Формат csv-файла: activity yyyy.mm.dd hh_mm-yyyy.mm.dd hh_mm.csv.
Поля csv-файла полностью соответствуют таблице «monitoring_activity» в ClickHouse. Загрузка данных производится из csv-файла в таблицу БД ClickHouse «monitoring_activity». Описание колонок в этой таблице представлено ниже.
Имя колонки | Тип | Описание |
---|---|---|
time | DateTime64 | Время события, инициированного пользователем, представлено как календарная дата и время, с заданной до миллисекунд и наносекунд точностью |
employee_account_id | UInt64 | Идентификатор сущности EmployeeAccount в RocksDB модуля мониторинга |
time_offset | Int8 | Часовой пояс (сдвиг в часах от времени в UTC) |
program | String | Название запущенной программы |
version | String | Версия запущенной программы |
executable_path | String | Полный путь до исполняемого файла |
type | Int16 | Тип события |
main_window | String | Заголовок окна |
tab | String | Вкладка главного окна, может быть пустым |
url | String | URL веб-страницы, может быть пустым |
file_path | String | Полный путь к открытому файлу, может быть пустым |
ui_hierarchy_name | Array (String) | Название элемента, предоставляемое приложением (может быть URL либо название окна). Обязательное поле, но может быть пустым |
ui_hierarchy_ctrl | Array (Int32) | Control type элемента |
parameters_name | Array (String) | Название элемента, из которого получено значение |
parameters_value | Array (String) | CRC32 хеш от значения поля в UTF-8 формате (КП00-000006) |
id | UInt64 | Идентификатор доменной сущности в rocks |
cpu_loading | UInt32 | Значение загрузки процессора 0-100 (проценты) |
memory_loading | UInt32 | Значение использования оперативной памяти 0-100 (проценты) |
input_type | UInt8 | Если была аппаратная hid-активность, то параметр заполняется как 1, если не было, то как 0 |
computer_name | String | Имя компьютера |
Взаимодействие с сервером приложений
Взаимодействие осуществляется по протоколу https, порт: 8010. Агент мониторинга передает файлы активности пользователей, а также запрашивает настройки. Взаимодействие автоматическое.
Взаимодействие с сервером Active Directory
Взаимодействие осуществляется по LDAPS. Цель обмена: аутентификация агента мониторинга на АРМ пользователя. Взаимодействие автоматическое.
Модуль настройки и аналитики
Модуль предназначен для настройки параметров системы:
- настройка ролевой модели, языка системы;
- парольной политики и т.д.
Также модуль предназначен для формирования аналитических отчетов:
- карт процесса;
- табличного отображения;
- графиков и т.д.
Платформа реализации компонента: Java SE, версия: 8u162.
Веб-интерфейс
В веб-интерфейсе визуализируются все данные из:
- модуля настройки и аналитической отчетности;
- модуля мониторинга и активности пользователя.