Архитектура системы

Диаграмма предоставляет общий обзор архитектуры TiSoarNG, описывая различные компоненты, сервисы и их взаимодействие. Ниже приведено подробное описание каждой части системы:
Logger
- Описание: Logger отвечает за сбор логов из различных источников, таких как syslog-ng или rsyslog.
- Поток данных: Данные поступают от Логгера в сервис Vector для дальнейшей обработки.
Vector
- Описание: Vector - это инструмент для обработки данных, который обрабатывает лог-файлы.
- Взаимодействие:
- Получает данные от Логгера.
- Отправляет обработанные данные в ClickHouse для хранения.
- Взаимодействует с Redis для передачи данных и очередей сообщений.
- Взаимодействует с Конфигурациями (Vector Remap Language - Документация VRL) для управления конфигурацией.
ClickHouse
- Описание: ClickHouse - это колонкообразная база данных, используемая для хранения разобранных логов.
- Взаимодействие:
- Получает разобранные логи от Vector.
- Предоставляет данные для Правил для применения правил обработки.
- Взаимодействует напрямую с Laravel App для доступа к данным.
Redis
- Описание: Redis используется для списков, лент и очередей сообщений.
- Взаимодействие:
- Взаимодействует с Vector для передачи данных и очередей сообщений.
- Взаимодействует с Elixir App для операций с данными и управления.
Конфигурации (VRL)
- Описание: Управляет конфигурациями с использованием Vector Remap Language.
- Взаимодействие:
- Получает конфигурации от Elixir App.
- Отправляет данные конфигурации в Vector.
Правила
- Описание: Применяет правила обработки к данным.
- Взаимодействие:
- Получает данные от ClickHouse.
- Взаимодействует с Elixir App для выполнения действий на основе правил.
Postgres
- Описание: Используется для хранения различных данных, включая правила и конфигурации.
- Взаимодействие:
- Взаимодействует с Elixir App для доступа к хранимым данным.
- Обеспечивает хранение данных для Правил.
Elixir App
- Описание: Основное приложение, которое выполняет различные действия и обрабатывает бизнес-логику.
- Взаимодействие:
- Взаимодействует с Redis, Postgres, Конфигурациями и Правилами для данных и управления.
- Отправляет сообщения в Nats для дальнейшей обработки.
- Взаимодействует напрямую с компонентами Отчеты по действиям и TiSoarNG Identity.
Nats
- Описание: Сервис брокера сообщений.
- Взаимодействие:
- Получает сообщения от Elixir App.
- Обеспечивает связь с периферийными системами.
Entropy
- Описание: Другой сервис, взаимодействующий с ClickHouse для обработки данных.
- Взаимодействие:
- Взаимодействует с ClickHouse.
Отчеты по действиям
- Компоненты:
- Nginx: Служит как шлюз UI и API.
- Laravel App: Обрабатывает бизнес-логику и напрямую обращается к сервисам, таким как Postgres, ClickHouse и Redis.
- MySQL: Используется Laravel App для дополнительного хранения данных.
- Puppeteer: Преобразует HTML в PDF.
TiSoarNG Identity
- Компоненты:
- KeyCloak: Обеспечивает OpenID для аутентификации и управления идентификацией.
- Postgres: Хранит информацию о пользователях, группах и ролях.
Периферийные устройства
- Описание: Представляет различные периферийные системы, такие как фаерволы.
- Взаимодействие:
- Взаимодействует с Elixir App через Nats.
Поток данных и управления
- Поток данных: Представлен сплошными стрелками, показывающими поток данных между компонентами.
- Поток управления: Представлен пунктирными стрелками, указывающими на управляющие команды и взаимодействие между компонентами.
Это подробное описание архитектуры помогает понять сложные взаимодействия в системе TiSoarNG и служит справочником для реализации и устранения неполадок.