Статья опубликована в рамках: Научного журнала «Студенческий» № 35(331)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5
ПРОЕКТИРОВАНИЕ ПРОГРАММНО-АППАРАТНОГО КОМПЛЕКСА ДЛЯ СБОРА И ХРАНЕНИЯ ДАННЫХ
АННОТАЦИЯ
Современные сети и измерительные системы генерируют большие объёмы разного рода данных: кратковременные метрики, событийные логи, потоки пакетов и потоковые измерения с высокой частотой. Для успешной работы большинства комплексов и систем эти данные необходимо обрабатывать, изучать и хранить для дальнейшего использования. Для этого необходим программно-аппаратный комплекс для хранения и обработки данных (ПАК). Данная система позволит обрабатывать заданные объемы информации (в зависимости от необходимости и от целей), что позволит системам гораздо эффективнее функционировать. В данной работе представлен детализированный проект программно-аппаратного комплекса для сбора, передачи, предварительной обработки и долговременного хранения сетевых и телеметрических данных.
Ключевые слова: ПАК, телеметрия, сбор данных, Kafka, MQTT, TimescaleDB, ClickHouse, MinIO, Zeek, Arkime, edge computing.
Для реализации данного проекта необходимо создать программно-аппаратный комплекс, отвечающий нижеперечисленным требованиям для нормального функционирования:
- Поддержка различных типов источников (сенсоры, логи)
- Надёжная доставка данных при сетевых разрывах (локальная буферизация, повторная отправка).
- Горизонтальная масштабируемость по числу источников и объёму данных.
- Слои хранения: оперативный, аналитический и архив.
- Безопасность на уровне хранения данных и управления ключами.
Этот комплекс по своей структуре разделен на 5 логических слоев, описывающих строение и задачи каждого слоя. Разделение по слоям хранения обеспечит модульность комплекса, позволит оптимизировать стоимость и производительность. Также указаны примеры систем:
1) Edge — агенты на устройствах сбора, выполняющие предварительную фильтрацию и буферизацию;
2) Ingest — брокеры сообщений для обмена данными между различными компонентами информационной системы (MQTT/EMQX для лёгких устройств, Apache Kafka для массивных потоков);
3) Stream processing — системы обработки данных (например, Flink/Kafka Streams) для быстрого анализа, фильтрации, преобразования или улучшение данных в реальном времени для трансформаций и различных операций;
4) Storage — системы хранения данных. Например, TimescaleDB для временных рядов, ClickHouse для аналитических задач, MinIO/Ceph для различных объектов;
5) Management — мониторинг, визуализация и управление данными, (Prometheus/Grafana, CI/CD).
Выбор платформы
При выборе аппаратного обеспечения важно соотнести производительность, энергопотребление и стоимость. Также нужно учесть, с каким объемом данных предстоит работать и тип данных. Ниже приведена сравнительная таблица для трёх классов устройств: микроконтроллеры (MCU), одноплатные компьютеры на ARM и серверы. Она поможет оценить характеристики устройств и помочь с выбором необходимого в зависимости от поставленных задач.
Таблица 1.
Классы устройства — сравнение
|
Класс устройства |
Примеры |
Производительность (оцен.) |
Энергопотребление (среднее) |
Применение / комментарии |
|
MCU |
ESP32, STM32 |
Низкая |
160 мА |
Простые сенсоры, предварительная фильтрация |
|
Одноплатные ARM |
Raspberry Pi 4, ODROID |
средняя (несколько сотен MIPS — CPU), 2–8 GB RAM |
5–15 Вт |
edge-агенты с логикой, буферизацией |
|
Серверы |
Rack servers, blade |
высокая (многоядерные CPU, SSD NVMe) |
200 Вт |
приемщики/брокеры, узлы хранения |
Для обмена данными между системами комплекса используются брокеры сообщений. Для выбора нужно учитывать сложность настройки, пропускную способность и целесообразность. В таблице 2 указаны примеры, их достоинства и недостатки, и рекомендации.
Таблица 2.
Сравнение брокеров сообщений
|
Брокер |
Протоколы |
Сильные стороны |
Ограничения |
Рекомендации |
|
EMQX |
MQTT |
масштабируемость, support millions connections, TLS, auth |
сложность настройки в крупном кластере |
IoT и лёгкие устройства |
|
Mosquitto |
MQTT |
лёгкий, простой |
не для больших инсталляций |
локальные gateway, PoC |
|
Apache Kafka |
TCP-based |
высокий throughput, экосистема |
сложность эксплуатации, IO |
основная шина событий для потоков большого объема |
|
RabbitMQ |
AMQP (+plugins) |
гибкость routing |
ограниченная масштабируемость |
очереди задач |
Ключевые компоненты ПАК нужно выбирать исходя из критериев: производительность, затраты на обслуживание, поддержка сообщества и возможности интеграции. Это поможет выбрать для создания комплекса нужные системы. В таблице 3 указаны примерные значения емкости и размера системы.
Таблица 3
Пример расчёта ёмкости
|
Параметр |
Значение |
Единицы |
Комментарий |
|
Число сенсоров |
10000 |
шт |
|
|
Частота |
1 |
msg/s на сенсор |
|
|
Размер сообщения |
1 |
KB |
|
|
Суточный объём |
≈0.84 |
TB/день |
|
|
Hot-storage для мгновенного доступа к информации |
≈2.5 |
TB/день |
коэффициент репликации увеличивает необработанный объем |
Работа комплекса
Работа ПАК будет идти поэтапно. Сначала Edge слой получает сырые данные с датчиков или других источников. Затем брокеры сообщений отправляют данные системам обработки для очистки, дедупликации, агрегации и анализа аномалий. После этого обработанные данные попадают в модули хранения. С помощью систем менеджмента можно контролировать процесс работы, давать указания системам и при необходимости редактировать процессы, происходящие внутри комплекса.
Также нужно обеспечить безопасность комплекса для сохранности данных и недопущения утечек. Для этого применяются следующие практики:
- mTLS и PKI для аутентификации компонентов;
- HashiCorp Vault для хранения и выдачи сертификатов;
- различные методики шифрования данных;
- аудит доступа и логирование операций администратора.
- управление версиями
- бэкапы
Заключение
Предложенные выше решения позволят создать комплекс для хранения и обработки данных, который обеспечит сбалансированный подход к сбору и хранению телеметрических данных. Сочетание гибких методик, полный контроль над системами и высокая эффективность поможет в решении огромного числа задач.
Список литературы:
- Apache Kafka. Документация [Электронный ресурс]. URL: https://kafka.apache.org/documentation/ (дата обращения: 20.10.2025).
- EMQX. Документация и результаты тестирования производительности [Электронный ресурс]. URL: https://www.emqx.io/docs/ (дата обращения: 28.10.2025).
- TimescaleDB. Документация и руководство по эксплуатации [Электронный ресурс]. URL: https://docs.timescale.com/ (дата обращения: 20.10.2025).
- ClickHouse. Документация и руководство по производительности [Электронный ресурс]. URL: https://clickhouse.com/docs/ (дата обращения: 20.10.2025).
- MinIO. High Performance Object Storage for AI/ML and Cloud-Native Applications [Электронный ресурс]. URL: https://min.io/docs/ (дата обращения: 20.10.2025).
- Ceph. Документация: Erasure Coding and Placement Groups [Электронный ресурс]. URL: https://docs.ceph.com/ (дата обращения: 20.10.2025).
- Zeek (Bro) Network Security Monitor. Официальная документация [Электронный ресурс]. URL: https://docs.zeek.org/ (дата обращения: 20.10.2025).
- HashiCorp Vault. Secrets Management and PKI [Электронный ресурс]. URL: https://developer.hashicorp.com/vault/docs (дата обращения: 20.10.2025).
- Prometheus & Grafana. Monitoring and Visualization [Электронный ресурс]. URL: https://prometheus.io/docs/ (дата обращения: 20.10.2025
- Marz N., Warren J. Big Data: Principles and Best Practices of Scalable Real-Time Data Systems. Shelter Island, NY: Manning Publications, 2015. 472 p.
- Chen L., et al. Time Series Databases. Proceedings of the VLDB Endowment, 2019, Vol. 12, No. 11, pp. 1992–2004.
- Hölzli K., et al. Edge Computing. Journal of Network and Computer Applications, 2020, Vol. 156, Article 102610.
- Kreutz D., Ramos F., Verissimo P., et al. Software-Defined Networking: A Comprehensive Survey. Proceedings of the IEEE, 2015, Vol. 103, No. 1, pp. 14–76.


Оставить комментарий