Поговорим о нескольких open source-решениях для мониторинга и визуализации сетевой телеметрии. Подобные проекты всегда интересны для изучения технических решений.

Akvorado
Это — решение для анализа сетевого трафика на основе потоков данных (Netflow, IPFIX, sFlow). Инструмент разработан французским интернет-провайдером Free в 2022 году — изначально для своих нужд, но затем передан в open source под лицензией AGPL-3.0.
Akvorado обогащает потоки данными геолокации (из баз IPinfo или MaxMind) и экспортирует их в Kafka и ClickHouse — для дальнейшей обработки. На главной странице интерфейса представлена статистика по числу получаемых в секунду потоков и количеству подключенных экспортеров — сервисов, которые собирают данные с сетевых устройств (маршрутизаторов, коммутаторов). Там же можно увидеть, как потоки данных распределяются по автономным системам (AS), портам, протоколам, семействам IP — вместе с информацией о последнем полученном потоке.
На вкладке визуализации можно выбрать несколько типов графиков. Кроме классических, например, доступна диаграмма Санки, отражающая распределение потоков внутри системы. Также есть плагин, позволяющий передавать данные в Grafana.
В целом архитектура Akvorado состоит из трёх компонентов: службы приёма данных (inlet service), оркестратора и консоли. Служба приема данных детализирует потоки от каждого экспортера с помощью SNMP, получая имя системы, имена интерфейсов и другие характеристики, а также уточняет данные GeoIP. В свою очередь, оркестратор отвечает за настройку внутренних и внешних компонентов (определение тем Kafka, конфигурацию ClickHouse) и предоставляет параметры для использования другими службами. Консольный же компонент предоставляет интерфейс для управления потоками.
Посмотреть, как все это выглядит — вместе с примерами метрик и графиков — можно на скриншотах в репозитории. Для тех, кто хочет оценить Akvorado в деле, разработчики предоставили компактное демо. Документация, которая прилагается к инструменту, также достаточно исчерпывающая. В ней можно найти советы по быстрому старту, руководства по настройке компонентов и примеры работы. Отдельно стоит отметить раздел, посвящённый устранению неполадок и отладке.
В репозитории разработчики подчёркивают, что проект находится на ранних этапах развития — но его уже используют на практике в том же Free. Специалист компании рассказал в личном блоге, как он использовал akvorado и функцию фильтрации Flowspec для борьбы с DDoS (хотя по умолчанию akvorado и не имеет встроенных компонентов для обнаружения подобных атак).
Kubezonnet
Этот инструмент (лицензия Apache 2.0) позволяет мониторить трафик, проходящий между разными зонами в Kubernetes. Разработчиком выступила компания Polar Signals, которая развивает мониторинговое программное обеспечение. В прошлом году инженеры обнаружили, что почти половина их облачных расходов за месяц пришлась на оплату межзонного трафика. При этом биллинг от провайдеров не предоставлял достаточной информации — только общие метрики без разбивки по подам. Так, в Polar Signals решили разработать собственное решение, чтобы отслеживать межзонную рабочую нагрузку.
Статистика отображается в двух форматах: Prometheus-метрики, которые отражают общий сетевой трафик из подов, и журналы потоков, описывающие исходные/конечные поды с указанием переданных по сети байт. Сам инструмент состоит из двух компонентов: агента и сервера. Первый использует eBPF в ядре Linux через хук postrouting в Netfilter для перехвата сетевых пакетов, покидающих поды. Второй определяет, каким подам принадлежат IP и на каких узлах находятся эти поды.
Для работы kubezonnet потребуется Cilium в качестве CNI. Cilium — это открытая облачная платформа для сетевой безопасности, наблюдения за трафиком и управления сетевой политикой в Kubernetes и других средах с поддержкой CNI. Также необходимо ядро Linux версии 6.4+, поскольку именно в ней были добавлены eBPF-программы в Netfilter.

Как заявляют разработчики, благодаря kubezonnet они устранили лишние потоки межзонного трафика и избавились от дублирующих мониторинговых задач. В частности, инфраструктуре обнаружилась проблема: один из сервисов генерировал неожиданно высокую нагрузку на основную базу данных. Из-за того, что множество сервисов постоянно обращались к этой БД, выявить источник аномалии было сложно — весь трафик смешивался в общем потоке. Анализ flow-логов показал, что большая часть запросов шла от одного конкретного сервиса. В итоге компания смогла сократить расходы на межзонную тарификацию на 50% и обезопасить инфраструктуру от скачков трафика.
Но пока у инструмента есть ряд ограничений. Например, он может работать только с IPv4. Хотя специалисты планируют расширить функциональность и внедрить поддержку IPv6.
Xenoeye
Это — инструмент, с помощью которого можно мониторить трафик IP-сетей или сервисов и наблюдать за распределением сетевых пакетов, используя данные Netflow, IPFIX и sFlow. Проект был опубликован на GitHub в 2023 году под простой и разрешительной лицензией ISC. Его автор — российский разработчик, в портфолио которого множество других открытых проектов, включая хранилище «ключ-значение» tkvdb (по функциональности проект напоминает Berkeley DB, LevelDB или SQLite4 LSM). На момент релиза tkvdb был одним из редких примеров реализации подобного решения на основе Radix.
Изначально коллектор разрабатывался для средних и крупных сетей с разными группами пользователей. Поэтому объектом мониторинга может быть как отдельная сеть, так и набор сетей, а также геообъекты. Агрегация данных происходит по выбранным полям, а затем они экспортируются в PostgreSQL. Из коробки доступен только базовый набор полей Netflow и IPFIX, но можно добавить нужное поле самостоятельно.
Также на основе собранных данных можно формировать отчёты об IP-адресах, протоколах, службах, GeoIP и автономных системах. В документации есть примеры построения отчетов. Графики можно отрисовывать с помощью gnuplot или MatPlotlib, а визуализировать их в Grafana.
Ещё инструмент используют для поиска заражённых хостов по типу спам-рассылок, HTTP/HTTPS-флуда и SSH-сканеров. Или для идентификации резких всплесков трафика при DoS/DDoS-атаках (для обнаружения применяются скользящие средние).
У xenoeye имеется подробная документация, доступная как на английском, так и на русском языках. В ней отмечены разделы, посвящённые пошаговой установке или детальной настройке (например, про конфигурацию данные для экспорта в СУБД). Есть даже подраздел, посвященный внутреннему устройству инструмента: с разбором потоков, объектов мониторинга и фильтров и так далее.
Что еще есть у нас в блоге
Как развиваются квантовые вычисления. Amazon представляет собственный квантовый чип с возможностью масштабирования архитектуры до 100 тыс. кубитов, а Microsoft заявляет о разработке с потенциалом в миллион. Рассказываем, что происходит в сфере квантовых вычислений, какие дорожные карты строят корпорации и как на будущее технологии смотрят в России, США и Китае.
Прокачаться в работе с Ansible — подборка ресурсов. Рекомендуем полезные материалы, которые могут помочь освоить эту систему автоматизации ИТ-процессов. Внутри — статья для быстрого старта в Ansible с нуля, советы для специалистов с опытом по написанию плейбука, серия заданий по разработке сценариев, а ещё — обзор лучших и худших практик по работе с этим инструментом.
Деньги и автономия — ситуация в сфере баз данных уязвимостей. Рассказываем, почему с базой данных Common Vulnerabilities and Exposures (CVE) в последнее время всё непросто. Американские власти порывались ограничить финансирование компании, а в Европе и России создают собственные решения такого класса.
В Европе снова заговорили об отказе от американских платформ и суверенном облаке — анализ ситуации. Европейские регуляторы и политики призывают снизить технологическую зависимость от американских облачных провайдеров — и даже называют её «угрозой национальной безопасности». Аналогичные настроения видны и на академическом уровне среди специалистов по ИБ. Обсуждаем, как попытки изменить ситуацию уже предприняты и что в ЕС планируют делать дальше.