Настройка

Настройки Collector по умолчанию могут быть переопределены через переменные окружения, которые задаются в файле /srv/collector/.env (подробнее).

Сбор flow

Включение/выключение поддержки приема пакетов IPv6 задается через переменную:

  • COLLECTOR_ENABLE_IPV6 (по умолчанию: true)

Пакеты принимаются на портах, которые задаются через переменные:

  • COLLECTOR_NETFLOW_V5_PORT (по умолчанию: 9555): порт для приема пакетов протокола NetFlow v5.
  • COLLECTOR_NETFLOW_V9_PORT (по умолчанию: 9995): порт для приема пакетов протокола NetFlow v9.
  • COLLECTOR_IPFIX_UDP_PORT (по умолчанию: 4739): порт для приема пакетов протокола IPFIX по UDP.
  • COLLECTOR_IPFIX_TCP_PORT (по умолчанию: 4739): порт для приема пакетов протокола IPFIX по TCP.
  • COLLECTOR_SFLOW_PORT (по умолчанию: 6343): порт для приема пакетов протокола sFlow v5.

Настройка ClickHouse

Collector сохраняет flow из пришедших пакетов в ClickHouse, адрес и порт которого задаются через переменные:

  • COLLECTOR_CLICKHOUSE_ADDRESS (по умолчанию: clickhouse.collector:9000): aдрес и порт сервера ClickHouse.

По умолчанию ClickHouse сконфигурирован для работы на сервере минимальной конфигурации.
Для того, чтобы ClickHouse мог эффективно и безопасно использовать весь доступный объём оперативной памяти (RAM), необходимо настроить его лимиты.

  • COLLECTOR_CLICKHOUSE_RAM_RATIO_MAX (по умолчанию: 0.7): доля оперативной памяти, доступная для использования сервером ClickHouse.
    Рекомендуемое значение: 0.7.
    Если для ClickHouse выделен отдельный сервер - 0.9.

Например, на сервере установлено 32 ГБ RAM, для сервера ClickHouse ограничение RAM 20.8 ГБ задается:

COLLECTOR_CLICKHOUSE_RAM_RATIO_MAX=0.65
  • COLLECTOR_CLICKHOUSE_QUERY_RAM_MAX (по умолчанию: 10Gi): максимально возможный объём оперативной памяти для выполнения запроса на одном сервере. Рекомендуемое начальное значение вычисляется по формуле: 0,9 × COLLECTOR_CLICKHOUSE_RAM_RATIO_MAX × (объем установленной RAM).

Используется для предотвращения исчерпания доступной памяти при параллельной обработке запросов.
При увеличении скорости входящего flow или длительности анализируемого периода следует увеличить значение переменной COLLECTOR_CLICKHOUSE_QUERY_RAM_MAX.
Для увеличения количества параллельных сессий пользователей Web-интерфейса MITIGATOR или количества параллельных сессий API клиентов следует уменьшить значение переменной COLLECTOR_CLICKHOUSE_QUERY_RAM_MAX.

Например, на сервере установлено 32 ГБ RAM, ограничение RAM для сервера ClickHouse 22.4 ГБ, ограничение RAM для одного запроса 1 ГБ:

COLLECTOR_CLICKHOUSE_RAM_RATIO_MAX=0.7
COLLECTOR_CLICKHOUSE_QUERY_RAM_MAX=1Gi

В этой конфигурации могут параллельно обрабатываться 12 запросов БД. Для внутренних функций сервера ClickHouse (вставки данных, фоновой обработки данных) остается не менее 10.4 ГБ.

При просмотре вкладки «Анализ Flow» Web-интерфейса MITIGATOR увеличение анализируемого периода для обработки flow требуется больший объем RAM. Если при увеличении анализируемого периода на странице появляются пропуски данных, то необходимо установить больший объем RAM, либо включить режим выполнения операций с использованием файловой системы (подробнее).

Режим использования файловой системы для операций задается через переменные окружения, которые управляют одноименными параметрами конфигурации ClickHouse:

  • COLLECTOR_CLICKHOUSE_MAX_BYTES_BEFORE_EXTERNAL_GROUP_BY (по умолчанию: 0)
  • COLLECTOR_CLICKHOUSE_MAX_BYTES_BEFORE_EXTERNAL_SORT (по умолчанию: 0)

Значение 0 отключает использование файловой системы при выполнении операций.
Рекомендуемое значение вычисляется по формуле: COLLECTOR_CLICKHOUSE_QUERY_RAM_MAX / 2.

Например:

COLLECTOR_CLICKHOUSE_QUERY_RAM_MAX=10Gi
COLLECTOR_CLICKHOUSE_MAX_BYTES_BEFORE_EXTERNAL_GROUP_BY=5Gi

Настройка Grafana

Основные графики отображаются в Web-интерфейсе MITIGATOR, но в диагностических целях Collector поставляется с Grafana. Grafana работает на порту 3000, к которому можно подключиться через браузер.

Логин/пароль по умолчанию: admin/admin.

При первом запуске в настройках Grafana выбрать Data Sources, далее выбрать Collector.

Политика перезапуска контейнеров

Политика перезапуска всех контейнеров задается через переменную:

  • CONTAINER_RESTART_POLICY (по умолчанию: always)

Доступные значения перечислены в документации Docker.