Автор: Никита Выпряжкин, Джуниор администратор отдела DevOps
Сетевой трафик — как поток воды в реке. Можно стоять на берегу и наблюдать, как он течет, а можно погрузиться глубже и понять: откуда берется каждая капля, куда направляется и что происходит по пути. Большинство админов довольствуется первым вариантом, но те, кто хочет по-настоящему контролировать свою инфраструктуру, выбирают второй.
Akvorado решает именно эту задачу. Платформа работает с данными NetFlow, sFlow и IPFIX, превращая абстрактные цифры в понятную картину того, что происходит в сети. Причем делает это не просто красиво, а с прицелом на производительность и масштабируемость.
В отличие от классических решений вроде nfcapd или softflowd, Akvorado изначально проектировался под современные реалии: высокие нагрузки, большие объемы данных, необходимость быстрого поиска и интуитивного интерфейса.
Кому будет полезна эта статья?
Данный путеводитель будет полезен специалистам различных отраслей:
- Сетевым инженерам для понимания, где и почему тормозит сеть. Когда пользователи жалуются на «медленный интернет», Akvorado покажет конкретные цифры: кто сколько трафика генерирует, какие протоколы доминируют, есть ли аномалии в поведении.
- Специалисты по информационной безопасности как система раннего предупреждения. Массовые сканирования, подозрительные соединения, DDoS-атаки — всё это становится видимым через призму сетевых потоков. Особенно ценно, что можно отследить географию трафика и автономные системы источников.
- DevOps-инженерам для отладки микросервисной архитектуры. Когда у вас десятки сервисов общаются между собой через сеть, понимание паттернов их взаимодействия становится критичным. Akvorado покажет, кто с кем «разговаривает» и насколько интенсивно.
- IT-менеджерам для обоснования бюджетных решений. Цифры о реальном использовании каналов связи говорят громче любых предположений. Нужно ли расширять канал до филиала? Стоит ли блокировать YouTube? Akvorado даст фактические данные для таких решений.
Часть 1. Архитектура: Компоненты оркестра
Akvorado не является монолитным приложением. Это набор взаимосвязанных сервисов, каждый из которых выполняет свою роль:
1. Akvorado Inlet
Это входной шлюз. Inlet — это легковесный UDP-сервер, который сидит на портах (например, 2055/udp для NetFlow) и принимает данные от ваших сетевых устройств. Его главная задача — принять пакеты и мгновенно передать их дальше, в очередь Kafka, чтобы избежать потерь. Он невероятно эффективен, что позволяет ему справляться с огромными объемами входящего трафика.
2. Apache Kafka
Kafka — это сердце системы. Он выступает в роли надежного и масштабируемого буфера. Inlet принимает данные, которые затем отправляются в «топики» Kafka. Там они хранятся и ждут, пока другие сервисы их обработают. Это обеспечивает асинхронность и отказоустойчивость всей системы.
3. Akvorado Orchestrator
Это мозг всей операции. Orchestrator читает необработанные данные из Kafka и выполняет их «обогащение». Это ключевая функция, которая превращает «сырой» IP-адрес в полезную информацию. Он добавляет данные о географии, ASN, именах хостов и т.д.
4. ClickHouse
ClickHouse — это сверхбыстрая колоночная (столбцовая) база данных с открытым исходным кодом. Это лучший выбор для Akvorado, так как она специально создана для аналитических запросов к огромным массивам данных. ClickHouse обрабатывает запросы, на которые в традиционных базах данных ушли бы часы, за считанные секунды.
5. Akvorado Console
Это веб-интерфейс, который отображается в вашем браузере. Console запрашивает данные из ClickHouse и представляет их в виде графиков, таблиц и интерактивных карт. Он позволяет легко фильтровать данные, искать аномалии и проводить детальный анализ.

6. Зависимости (Redis, Traefik/Nginx)
Redis используется для кэширования временных данных, что значительно ускоряет работу системы. Traefik и Nginx — это обратные прокси, которые направляют веб-трафик к разным частям Akvorado. Они обеспечивают безопасный и организованный доступ.

Часть 2. Запуск: Метод Quickstart
Самый простой способ начать работу с Akvorado — использовать официальный «quickstart» скрипт. Он автоматически загрузит и настроит все необходимые файлы. Для этого нужно следовать следующему алгоритму:
-
Загрузка и запуск: Откройте терминал и выполните эту команду. Она создаст новую директорию akvorado со всеми необходимыми файлами.
curl -sL https://github.com/akvorado/akvorado/releases/latest/download/docker-compose-quickstart.tar.gz | tar zxvf -
-
Переход и старт: Перейдите в созданную директорию и запустите Docker Compose. Не забудьте предварительно установить докер (и плагин compose к нему, если у вас docker собран без него):
cd akvorado docker-compose up -d
Всё, Akvorado запущен! Но чтобы не быть «слепыми» в своей же системе, давайте разберем, что находится в файлах.
Часть 3. Все о файлах конфигурации
Все ключевые настройки Akvorado хранятся в двух файлах: docker-compose.yml и akvorado.yml.
docker-compose.yml: Управление инфраструктурой
Этот файл — дирижер всего оркестра. Он описывает, какие сервисы нужно запустить, как они связаны, какие порты открыть и какие данные сохранять.
-
Порты: В секции akvorado-inlet определены порты, на которых Akvorado слушает входящие потоки. По умолчанию это 2055/udp (NetFlow), 6343/udp (sFlow) и 4739/udp (IPFIX).
-
Тома (Volumes): Этот файл управляет, как данные хранятся на диске. Например, строка akvorado-geoip:/usr/share/GeoIP:ro монтирует именованный том akvorado-geoip в контейнер akvorado-orchestrator.
akvorado.yml: Внутренние настройки
Этот файл находится в директории /config и управляет поведением самого приложения Akvorado.
- Сжатие в Kafka: секция kafka содержит запись compression-codec: zstd. Это критически важно! Использование zstd позволяет значительно сэкономить место и снизить нагрузку на сеть, что важно при больших объемах трафика.
-
Настройка inlet: Его настройки находятся в отдельном файле inlet.yaml, который включается в akvorado.yml. В нем вы найдете следующие настройки:
- listen: :2055 — Порт, который Inlet слушает для трафика.
- use-src-addr-for-exporter-addr: true — Очень важная опция, если ваши устройства находятся за NAT. Она говорит Akvorado использовать IP-адрес отправителя пакета (то есть ваш роутер) в качестве адреса экспортера.
-
Классификаторы: секция core в inlet.yaml — это мощный инструмент для автоматического обогащения данных.
- exporter-classifiers — Позволяет автоматически классифицировать устройства (экспортеры) на основе их характеристик.
- interface-classifiers — Использует регулярные выражения для автоматического определения, является ли сетевой интерфейс внешним или внутренним. Это упрощает анализ трафика.

Часть 4. Как решить проблемы с GeoIP: Подробное руководство
Часто приходится сталкиваться с проблемой настройки GeoIP. Docker-контейнер не может увидеть файлы, скачанные на локальную машину, из-за различий в файловых системах. Для решения данной проблемы можно воспользоваться одним из следующих способов:
Способ 1: Автоматический (Рекомендуемый)
Этот метод использует отдельный Docker-сервис для автоматической загрузки баз данных MaxMind (на бесплатной основе). Создайте файл .env с вашим ID аккаунта и лицензионным ключом MaxMind.
GEOIPUPDATE_ACCOUNT_ID=ВАШ_ID_АККАУНТА
GEOIPUPDATE_LICENSE_KEY=ВАШ_ЛИЦЕНЗИОННЫЙ_КЛЮЧ
Затем используйте docker-compose-maxmind.yml. Этот файл содержит сервис geoip, который автоматически скачает базы данных в именованный том Docker, а затем смонтирует его в контейнер Akvorado.

Способ 2: Ручной (Для отладки)
Если вы хотите использовать файлы, скачанные вручную, вам нужно явно смонтировать локальный каталог в контейнер. Для этого измените docker-compose.yml: замените именованный том на bind mount (монтирование каталога с хоста).
# Вместо именованного тома:
# - akvorado-geoip:/usr/share/GeoIP:ro
# Используйте bind mount:
- /путь/к/вашему/каталогу:/usr/share/GeoIP:ro
После удалите определение тома: Не забудьте удалить строку akvorado-geoip: из секции volumes.
Часть 5. Завершающие штрихи
После установки Akvorado выполните следующие шаги:
- Проверка контейнера: Убедитесь, что все контейнеры запущены с помощью команды docker-compose ps;
- Проверка доступа: Веб-интерфейс будет доступен по адресу http://<ваш_ip_сервера>:8081;
- Настройка устройств: Это последний и самый важный шаг — настроить маршрутизаторы или коммутаторы так, чтобы они отправляли сетевые потоки на IP-адрес вашего сервера Akvorado.

А как же безопасность?
В базовой «quickstart» конфигурации веб-интерфейс Akvorado доступен без пароля. Чтобы защитить его, можно использовать htpasswd, который часто применяется для аутентификации в Nginx и Apache.
Шаг 1: Установка httpd-tools
Сначала вам потребуется утилита htpasswd. В зависимости от вашего дистрибутива Linux, её можно установить следующим образом:
Для RHEL / Fedora / CentOS
sudo dnf install httpd-tools -y
Для Debian / Ubuntu
sudo apt-get install apache2-utils -y
Шаг 2: Создание файла .htpasswd
Создайте файл .htpasswd в директории, которая будет доступна для Docker Compose. Хорошим местом является ваша рабочая директория Akvorado. Для этого выполните в консоли команду:
touch /akvorado/docker/.htpasswd
Шаг 3: Генерация учетных данных
Используйте команду htpasswd для создания пары логин/пароль:
sudo htpasswd -c /akvorado/docker/.htpasswd admin
Здесь:
- sudo htpasswd -c: Запускает утилиту в режиме создания нового файла.
- /akvorado/docker/.htpasswd: Путь к файлу.
- admin: Имя пользователя, которое вы создаёте.
Команда запросит у вас пароль, который будет зашифрован и сохранен в файле.

Почему мне стоит перейти на Akvorado?
Akvorado выделяется на фоне других решений, таких как ntopng, Grafana Flow и ElastiFlow, благодаря своему подходу к архитектуре и обработке данных. Давайте сравним их между собой:
Akvorado | ntopng | Grafana Flow | ElastiFlow | |
Архитектура | Распределённая (Inlet, Kafka, Orchestrator, ClickHouse). | Монолитная. | Связка Grafana + Telegraf + InfluxDB/Prometheus. | Распределённая (Logstash, Elasticsearch, Kibana). |
Масштабируемость | Высокая. Легко масштабируется горизонтально за счёт Kafka и ClickHouse. | Низкая. Ограничена ресурсами одного сервера. | Средняя. Зависит от настроек базы данных. | Высокая. Опирается на стек ELK. |
Производительность | Отличная. ClickHouse позволяет мгновенно получать доступ к огромным объемам данных. | Хорошая. Достаточна для небольших сетей. | Зависит от базы данных и объема данных. | Хорошая. Но может быть медленнее на больших объемах из-за Elasticsearch. |
«Обогащение» данных | Встроенное и гибкое. Поддерживает GeoIP, ASN, SNMP и гибкие классификаторы. | Базовое (только GeoIP). | Базовое. Требует дополнительной настройки. | Встроенное (GeoIP, ASN). |
Сложность настройки | Средняя. Требует понимания Docker Compose и YAML-файлов. | Низкая. Простая установка. | Средняя. Нужно настраивать несколько компонентов. | Высокая. Стек ELK сложен в настройке. |
Лучшее применение | Для любых сетей, где требуется детальный анализ, высокая производительность и масштабируемость. | Для небольших сетей, домашнего использования и быстрого старта. | Для тех, кто уже использует экосистему Grafana. | Для тех, кто уже использует стек ELK. |
Ключевое преимущество Akvorado — это использование ClickHouse. В отличие от Elasticsearch, который оптимизирован для полнотекстового поиска, ClickHouse создан специально для сверхбыстрых аналитических запросов на огромных объемах структурированных данных. Это позволяет Akvorado обеспечивать производительность, недостижимую для многих аналогов, особенно на крупных проектах.
Вот еще несколько причин, почему Akvorado может стать любимым инструментом для мониторинга:
- Простота, которая скрывает мощь. Вы можете запустить его за несколько минут с помощью «quickstart»-скрипта. Это идеальный способ быстро оценить все его возможности, не тратя часы на сложную настройку.
- Визуальный анализ с первого взгляда. Akvorado автоматически обогащает данные, добавляя географическую информацию и номера автономных систем. Это означает, что вы сразу увидите на карте, откуда идет трафик, без каких-либо дополнительных шагов. Это превращает «сухие» данные в интуитивно понятную картину.
- Идеальный инструмент для обучения. Если вы только начинаете работать с сетевыми потоками, Akvorado — отличный способ разобраться в том, как устроена сетевая аналитика. Он наглядно показывает, как из пакетов данных можно получить ценную информацию.
- Высокая производительность на вашем компьютере. Даже на обычном ноутбуке Akvorado работает очень быстро, поскольку он использует ClickHouse — базу данных, оптимизированную для аналитических запросов. Вы сможете анализировать большие объемы данных без задержек.
Подводим итоги
Akvorado представляет собой современный подход к анализу сетевого трафика, который решает главную проблему традиционных решений — сложность развертывания и настройки. Там, где раньше требовались дни на конфигурирование различных компонентов, теперь достаточно нескольких команд.
Архитектура на основе микросервисов делает систему гибкой и масштабируемой. Каждый компонент выполняет четко определенную функцию: Inlet принимает данные, Kafka буферизует их, Orchestrator обогащает, ClickHouse хранит и анализирует, а Console предоставляет удобный интерфейс. Такое разделение позволяет масштабировать отдельные части системы под конкретную нагрузку.
Конечно, есть и ограничения. Система относительно молодая, сообщество пока небольшое, документация местами требует доработки. При серьезных нагрузках потребуется тщательная настройка производительности ClickHouse и Kafka. Но для большинства корпоративных сетей возможностей Akvorado будет более чем достаточно.
В итоге Akvorado — это инструмент нового поколения, который делает сетевую аналитику доступной не только для крупных провайдеров, но и для обычных корпоративных сетей. Современная архитектура, разумные технологические решения и низкий порог входа делают его достойным кандидатом для внедрения в production-среде.
А какую систему анализа и визуализации трафика вы применяете и почему?