Підсистема аналітичної звітності реєстру

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

1. Загальний опис

Підсистема, призначенням якої є візуалізація даних реєстру у вигляді інформаційних панелей (дашбордів) змодельованих за допомогою Підсистеми моделювання регламенту реєстру.

Інформаційні панелі можуть складатися з табличних форм представлення даних, діаграм та графіків, елементів фільтрації та іншими елементами управління відображенням даними.

Детальніше з підходом до обробки аналітичних запитів до даних реєстру можна ознайомитись у розділі Обробка аналітичних запитів.

2. Функції підсистеми

  • Перегляд та маніпуляція відображенням даних реєстру на інформаційних панелях

  • Перегляд та аналіз даних журналу подій аудиту реєстру на інформаційних панелях

3. Технічний дизайн підсистеми

reporting.drawio

Підсистема побудована на основі Redash, відкритого програмного забезпечення для візуалізації та дослідження даних, яке дозволяє користувачам підключатися до різних джерел даних, запитувати та візуалізувати дані, а також створювати інтерактивні інформаційні панелі та звіти. Воно використовує архітектуру мікросервісів і складається з таких компонентів:

  • Redash Server: Сервер Redash відповідає за обробку запитів користувачів, управління аутентифікацією та авторизацією користувачів, а також надання веб-інтерфейсу Redash та адміністративного API. Користувачі взаємодіють з Redash через веб-інтерфейс, а підсистеми розгортання регламенту та розгортання реєстру, через API. Redash Server асинхронно взаємодіє з іншими сервісами за допомогою черги завдань RQ (Redis Queue), для виконання запитів та отримання даних.

  • Обробники черги завдань: Redash використовує робочі процеси для виконання завдань з черги асинхронно. Обробники черги виконують завдання, такі як виконання запитів до джерел даних, генерація результатів запитів та надсилання оновлень виконання запиту до інтерфейсу користувача.

    • Redash Worker: Обробник що відповідає за виконання завдань, які надійшли в чергу з сервера Redash в результаті взаємодії з користувачем. Наприклад завдання запиту на отримання даних з джерела даних, коли користувач відкриває інформаційну панель.

    • Redash Scheduler: Цей обробники черги відповідає за виконання запитів з певною періодичністю за заданим графіком. Наприклад виконання завдань оновлення даних для збережених запитів для яких налаштовано розклад.

  • Redash DB: Redash використовує реляційну базу даних PostgreSQL, як основне сховище метаданих. База даних зберігає різні метадані, пов’язані з користувачами, запитами, інформаційними панелями та візуалізаціями. Вона також зберігає результати запитів та кешовані дані. Сервіси Redash взаємодіють з базою даних для отримання та збереження необхідної інформації.

  • Redis Queue: База даних черги завдань в Redis - це сховище даних у пам’яті, яке Redash використовує для керування загальними блокуваннями виконання запитів та розподілу завдань між робочими процесами.

Взаємодія між цими компонентами підсистеми може бути узагальнена наступним чином:

  • Коли користувач взаємодіє з веб-інтерфейсом Redash, їх запити обробляються сервером Redash. Сервер аутентифікує користувача, за допомогою підсистеми управління користувачами та ролями, перевіряє запит і взаємодіє з відповідними сервісами на основі дій користувача.

  • Коли користувач виконує запит, сервер отримує запит та відправляє його до робочого процесу через систему черги завдань (Redis Queue). Робочий процес Redash Worker бере завдання і виконує запит асинхронно, періодично оновлюючи стан запиту та надсилаючи оновлення до інтерфейсу користувача.

  • Після завершення виконання запиту робочий процес зберігає кінцевий результат, і сервер отримує його для відображення користувачу.

4. Складові підсистеми

Назва компоненти Представлення в реєстрі Походження Репозиторій Призначення

Redash Server

redash-viewer

3rd-party

Надання користувацького Web UI та адміністративного API

Redash Worker

redash-viewer-adhocworker

3rd-party

Обробка завдань із черги

Redash Scheduler

redash-viewer-scheduler

3rd-party

Обробка завдань за розкладом

Prometheus exporter

redash-exporter

3rd-party

Збір метрик для моніторингу і їх публікація у форматі Prometheus

Сховище черги завдань

redash-viewer-redis-master

3rd-party

Зберігання черги завдань

Сховище метаданих

redash-viewer-postgresql

3rd-party

Зберігання бази метаданих Redash (запитів, інформаційних панелей, налаштувань тощо)

5. Джерела даних

Назва компоненти Представлення в реєстрі

Аналітична БД реєстру

  • analytical:registry

Операційна БД подій аудиту

  • operational:audit

6. Технологічний стек

При проектуванні та розробці підсистеми, були використані наступні технології:

7. Атрибути якості підсистеми

7.1. Observability

Підсистема аналітичної звітності реєстру підтримує журналювання та збір метрик продуктивності для подальшого аналізу через веб-інтерфейси відповідних підсистем Платформи.

Детальніше з дизайном підсистем можна ознайомитись у відповідних розділах:

7.2. Security

Підсистема аналітичної звітності реєстру розмежована на користувацький інтерфейс та адміністративний з додатковим мережевим захистом що сприяє безпеці керування підсистемою та зменшує поверхню атаки.

Автентифікація та розмежування прав виконуєтсья централізовано підсистемою управління користувачами та ролями.

За замовчуванням користувачу надаються мінімальні права необхідні для виконання поставлених завдань. Також підсистема обмежує доступ до інформаційних панелей та до джерел даних на основі рольової моделі. Таким чином користувач може бачити тільки ті інформаційні панелі та дані тільки з тих джерел які дозволені для його ролі.

Використовується багаторівнева система мережевого захисту між компонентами підсистеми а самі компоненти постійно скануються на відомі вразливості.