Вы можете настроить сбор статистики сетевого трафика в локации по протоколу NetFlow и промышленному стандарту sFlow. Статистика сохраняется в базу данных (БД) Clickhouse и доступна для отображения в интерфейсе платформы и системе мониторинга Grafana.

В настройках сбора статистики вы можете указать подсети, трафик с которых не должен учитываться биллинговой платформой. В текущей реализации платформы эта функция реализована через API-запрос. 

Включение сбора статистики


Через интерфейс платформы

  1. Нажмите на логотип DCImanager 6 в левом верхнем углу экрана.
  2. Выберите нужную локацию.
  3. В блоке Настройки локации нажмите кнопку Все настройки.
  4. На вкладке настроек локации:
    1. Включите опцию Разрешить сбор статистики NetFlow на локации.
    2. Выберите IP-адреса локации для NetFlow — список IP-адресов локации, на которые сетевое оборудование отправляет статистику NetFlow/sFlow.

    3. Укажите порты для сбора статистики:

      1. Порт NetFlow v5.
      2. Порт NetFlow v9/v10 (IPFIX).
      3. Порт sFlow.
    4. Чтобы статистика NetFlow отображалась в карточке сервера, включите опцию Использовать данные статистики NetFlow по умолчанию. Если опция отключена, то в карточке сервера будет отображаться статистика по сетевым подключениям, а статистика NetFlow будет доступна в системе мониторинга Grafana.
  5. Нажмите кнопку Применить.

Через интерфейс Swagger

  1. В правом меню нажмите значок  → Swagger.
  2. Перейдите в раздел DCI back.
  3. Выполните POST-запрос location/{location_id}/setup. В теле запроса укажите: 

    Пример тела запроса

    {"netflow":{"addresses":["192.0.2.100"],"collect_netflow":true,"port":2055,"port_v5":2056,"port_sflow":6343},{"settings":{"statistic_type":"netflow"},"ip_filter": ["192.0.2.0/24", "198.51.100.0/28", "203.0.113.1/32"]}
    CODE

    addresses — список IP-адресов локации, на которые сетевое оборудование отправляет статистику NetFlow/sFlow

    port — порт для сбора статистики по протоколам NetFlow v9/v10 (IPFIX)

    port_v5 — порт для сбора статистики по протоколу NetFlow v5

    port_sflow — порт для сбора статистики по стандарту sFlow

    statistic_type — тип статистики для отображения в карточке сервера. Возможные значения:

    • netflow — статистика NetFlow
    • switch — статистика по сетевым подключениям

    ip_filter — список подсетей, трафик с которых не должен учитываться биллинговой платформой

Через терминал

  1. Получите токен авторизации: 
    curl -k -X POST -H "accept: application/json" -H "Content-Type: application/json" 'https://example.com/api/auth/v4/public/token' -d '{"email": "admin_email", "password": "admin_pass"}'
    CODE

    example.com — доменное имя или IP-адрес сервера с платформой

    admin_email — email администратора платформы

    admin_pass — пароль администратора платформы

    В ответ придёт сообщение вида:

    Пример ответа в JSON

    {
      "confirmed": true,
      "expires_at": null,
      "id": "6",
      "token": "4-e9726dd9-61d9-2940-add3-914851d2cb8a"
    }
    CODE

    Сохраните полученное значение параметра token — токен авторизации.

  2. Выполните запрос: 

    Пример запроса

    curl -X POST 'https://domain.com/dci/v3/location/<location_id>/setup' -H 'x-xsrf-token: <token>' -H 'Cookie: ses6=<token>' -H 'isp-box-instance: true' -d '{"netflow":{"addresses":["192.0.2.100"],"collect_netflow":true,"port":2055,"port_v5":2056,"port_sflow":6343},{"settings":{"statistic_type":"netflow"},"ip_filter": ["192.0.2.0/24", "198.51.100.0/28", "203.0.113.1/32"]}'
    BASH

    domain.com — IP-адрес или доменное имя сервера с DCImanager 6

    <location_id> — ID локации

    <token> — токен авторизации

    addresses — список IP-адресов локации, на которые сетевое оборудование отправляет статистику NetFlow/sFlow

    port — порт для сбора статистики по протоколам NetFlow v9/v10 (IPFIX)

    port_v5 — порт для сбора статистики по протоколу NetFlow v5

    port_sflow — порт для сбора статистики по стандарту sFlow

    statistic_type — тип статистики для отображения в карточке сервера. Возможные значения:

    • netflow — статистика NetFlow
    • switch — статистика по сетевым подключениям

    ip_filter — список подсетей, трафик с которых не должен учитываться биллинговой платформой

После выполнения запроса платформа запустит на локации дополнительные докер-контейнеры:

  • etc_goflow_1 — контейнер для сбора данных;
  • flow_msg_queue — временное хранилище очереди сообщений. 

Контейнер etc_goflow_1 собирает данные статистики с оборудования и передаёт их в контейнер flow_msg_queue. Сервис brokerctl в контейнере dci_consumer_1 забирает данные из контейнера flow_msg_queue и сохраняет их в БД Clickhouse. Данные сохраняются в таблице flows.

Просмотр статистики


В интерфейсе платформы

Просмотр статистики доступен, если в настройках локации включена опция Использовать данные статистики NetFlow по умолчанию.

Чтобы посмотреть статистику, перейдите в раздел Серверы → выберите сервер → Параметры сервера → вкладка Статистика. Вы можете выбрать интерфейс и период, для которого нужно показать статистику.

Отображение статистики в интерфейсе

В Grafana

Чтобы перейти в интерфейс Grafana, в правом меню нажмите значок  → Grafana.

Данные статистики доступны в дашбордах:

  • Netflow — полная статистика для администраторов платформы. Включает трафик с подсетей, заданных через параметр ip_filter;
  • Traffic-netflow-dashboard — статистика по отдельным серверам для пользователей. Не включает трафик с подсетей, заданных через параметр ip_filter. Каждый пользователь может посмотреть статистику только по собственным серверам. 

Интерфейс дашборда Netflow


Администраторы платформы могут экспортировать данные статистики в формат CSV. Для этого:

  1. Перейдите в дашборд NetFlow → контекстное меню панели Complete dataInspectData.
  2. На вкладке Data нажмите кнопку Download CSV.

Диагностика


etc_goflow_1

Подключитесь к локации по SSH и выполните команду: 

docker logs -f etc_goflow_1
BASH

flow_msg_queue

Подключитесь к локации по SSH и выполните команду: 

docker logs -f flow_msg_queue
BASH

brokerctl

Подключитесь к серверу с платформой по SSH и выполните команду: 

docker exec -it dci_consumer_1 less -R /var/log/brokerctl.log
CODE