Описание работы служб сбора статистики

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (74)

просмотр истории страницы
h2. Схема взаимодействия служб сбора статистики.
{toc}

В биллинге имеются две схемы обработки статистики. Старая и новая. По у молчанию включена *старая* схема.
h2. Схема взаимодействия служб сбора статистики

h3. Старая схема: nf_collector + traf_reporter + bstatd
В биллинге имеются две схемы обработки статистики. Старая и новая. По умолчанию включена *старая* схема.

Статистика приходит по протоколу netflow на порт 9996 и обрабатывается демоном nf_collector.
h3. Старая схема: nf_collector + bstatd

Путь трафика от маршрутизатора, до детальной статистики довольно длинный:
# Маршрутизатор шлет на биллинг NetFlow определенной версии на определенный порт биллинга (стандартный порт netflow: 9996)
# Билинг слушает с помощью демона *nf_collector* этот порт и собирает статистику в память, и согласно конфигурационному файлу, агрегирует по SRC_IP и отправляет её в директорию */var/stat/raw/* для последующего переноса в детальную статистику, в названии файла содержится тайм-штамп (время в формате [unixtime|https://ru.wikipedia.org/wiki/Unix-время]) первого пакета; данные для для [расхода абонента|CarbonBilling:Счетчики услуг. Вкладка "Расход".] отправляются в папку */var/dump/*, в названии файла содержится ip клиента, тайм-штамп.
# Демон *bstatd* берёт агрегированную статистику из директории /var/stat/raw/, перемещает в папку */var/stat/agreg/trash*, преобразует формат и сохраняет в директорию */var/stat/binstat/*, разбитую по директориям: месяц/user_id, например 201501/297. В последствии эти данные отображаются в детальной статистике абонента.
{note}Если процесс *bstatd* был завершен неудачно не успев обработать какую-то статистику из папки /var/stat/agrag/trash, он возвращает её в папку. Перезапустите процесс, чтобы демон заново обработал эту статистику:
{code}chroot /app/collector service bstatd restart{code}{note}
# Демон *traf_reporter* берет данные из директории /var/dump/ и отправляет их на радиус демону *radiusd_traf* (контейнер asr_billing). Демон radiusd_traf кладет данные в отдельную базу, в последствии [worker|CarbonBilling:Worker] биллинга обрабатывает эти данные и наполняет ими таблицу [counters|CarbonBilling:Счетчики услуг. Вкладка "Расход".].
!stat_old02.png!

!nf_collector_old.png|border=1!
Обработка в контейнере *collector*:
# NAS присылает netflow UDP порт 9996 и обрабатывается демоном nf_collector;
# *nf_collector* принимает netflow. Обрабатывает по ip адресу источника (src_ip) и помещает файлы в каталоги:
## Службы bstatd. В названии файла содержится тайм-штамп (время в формате [unixtime|https://ru.wikipedia.org/wiki/Unix-время]) первого пакета
{code}
/app/collector/var/stat/raw/
{code}
Служба *bstatd* разносит статистику по каталогам пользователей. В последствии эти данные отображаются в детальной статистике абонента. Подробно служба bstatd описана в [статье|bstatd].
{code}
/app/collector/var/stat/binstat/
{code}
## Службы traf_reporter. В названии файла содержится ip клиента, тайм-штамп.
{code}
/app/collector/var/dump/
{code}
Служба traf_reporter передаёт статистику службе raddb_traf по radius.

h3. Новая схема: nfsen \-> nf_collector + traf_reporter (опционально + bstatd)
Обработка в контейнере *asr_billing*:
# Служба raddb_traf принимает статистику по radius и помещает в промежуточную БД
{code}
/app/asr_billing/var/db/buff_traf.gdb
{code}
# Служба worker обрабатывает трафик, согласно, услуг абонента. Перемещает данные в основную БД биллинга
{code}
/app/asr_billing/var/db/billing.gdb
{code}

Статистика приходит по протоколу netflow на порт 9996 и обрабатывается демоном nfcapd.
Обработка в основной БД биллинга:
# Трафик попадает в таблицу *traf_counters*. Таблица содержит количество трафика с разбивкой по подключенным абоненту услугам.
# Из таблицы *traf_counters* трафик попадает в таблицу *counters*. В ней содержится объём и стоимость трафика.
# Опционально после таблицы *counters* трафик может быть учтён в таблице *arch_account_stack*. Разбивка потреблённого трафика по времени.

!nf_collector_new.png|border=1!
h3. Новая схема: nfsen + nf_collector

h2. Настройка сбора статистики.
# Статистика приходит по протоколу netflow на порт 9996 и обрабатывается демоном [nfcapd|nfsen];
# nfcapd дублирует netflow поток на nf_collector по порту 9995.
# Дальнейшая обработка проходит по старой схеме.

Для настройки сбора статистики используется web интерфейс.
!stat_new01.png!

!stat01.png|border=1,width=449,height=225!
h3. Как nf_collector обрабатывает Netflow?

Далее
Служба nf_collector принимает Netflow и распределяет его по учётным записям по параметрам:
* [Тип трафика|Тип трафика];
* Потреблённый объём;
* ID учётной записи;

Особенности:
* Поле NAS в учётной записи не учитывается. То есть Netflow может прийти не с NAS, а с промежуточного маршрутизатора.
* Если поток придёт два Netflow потока по одной учётной записи, все они будут обработаны. Абоненту будет зачислен двойной объём трафика.
* При выборе учётной записи по IP адресу [подсеть|Подсети] имеет больший вес, чем IP адрес учётной записи. Трафик будет отправлен в учётную запись с подсетью.

!stat02.png|border=1!
h2. Протоколы
h3. Netflow v5
Поддержка протокола реализована в полном объёме.
h3. Netflow v9
Carbon Billing 5 имеет возможность обрабатывать Netflow v9. Настройка описана в статье [настройка и проверка netflow-потоков|Настройка и проверка netflow-потоков].
h3. IPFIX
Carbon Billing 5 поддерживает несколько полей из ipfix, которые совпадают с протоколом Netflow v9, а именно: OBSERVATION_TIME_SECONDS и OBSERVATION_TIME_MILLISECONDS. В CISCO ASA эти поля называются NF_F_EVENT_TIME_MSEC и NF_F_EVENT_TIME
Поддержка этих полей делает возможным работу с оборудованием, передающим Netflow в виде ipfix.
h3. Какие опции нужно включить?
| |Использовать NAT в Netflow v9|Обрабатывать дополнительные параметры IPFIX|
|NetFlow 5| Отключена | Отключена |
|NetFlow 9| Включена | Отключена |
|IPFIX| Включена | Включена |
h3. Особенности реализации
{note}
При включении Netflow v9 / IPFIX теряется возможность тарифицировать входящий трафик. Причина в том, что службы nf_collector и nf_sen не имеют возможность обрабатывать дополнительные поля из netflow 9, содержащие пару srcIP - dstIP(абонента) при входящем потоке.
{note}
h2. Как настроить сохранение статистики?

{info}
Настройка и отладка описаны в статье: [настройка и проверка netflow-потоков|Настройка и проверка netflow-потоков].
{info}

Доступные настройки:
h2. Основные настройки

# *Включить bstatd для детальной статистики (снято с поддержки)*
Включает использование демона bstatd. В этом случае статистика собирается в формате bstatd её можно увидеть в Разделе "Детальная статистика" в учётной записи абонента.
# *Порт для сбора статистики*
Порт, на котором будет приниматься netflow трафик. Стандартное значение 9996.
# *IP для дублирования статистики*
IP для дублирования статистики. Используется для отправки статистики nfcapd в nf_collector. Стандартное значение 169.254.99.95.
# *Порт для дублирования статистики*
Порт для дублирования статистики. Стандартное значение 9995.
# *Агрегировать статистику*
Опция включает использование демона nf_collector.
# *Сохранять сырую статистику в формате nfcapd для анализа nfsen*
Опция включает сохранение сырой статистики в формате nfcapd. Далее её можно просматривать в web интерфейсе nfsen.
# *Отправлять агрегированную статистику на Биллинг*
Включает подсчёт объёмов трафика и отправку её в БД биллинга.
# *Адрес Биллинга для отправки статистики*
IP адрес службы raddb_traf. Служба принимает значения по объёму трафика в по протоколу radius. Стандартное значение 169.254.38.13.
# *Порт Биллинга для отправки статистики*
Порт службы raddb_traf. Стандартное значение 3813.
Для настройки сбора статистики используется web интерфейс.

h2. Настойки сохранения сырой статистики
!stat01.png|thumbnail,border=1,width=200!

Так же web интерфейсе можно настроить параметры сохранения сырой статистики:
Далее

!stat02.png|thumbnail,border=1,width=200!

!stat03.png|border=1!
Основные настройки:

* *Включить bstatd для детальной статистики (снято с поддержки)* - Включает использование демона bstatd. В этом случае статистика собирается в формате bstatd её можно увидеть в Разделе [детальная статистика|Детальная статистика] в учётной записи абонента;
* *Порт для сбора статистики* - Порт, на котором будет приниматься netflow трафик. Стандартное значение *9996*;
* *IP для дублирования статистики* - IP для дублирования статистики. Используется для отправки статистики nfcapd в nf_collector. Стандартное значение 169.254.99.95;
* *Порт для дублирования статистики* - Порт для дублирования статистики. Стандартное значение 9995;
* *Включить сбор статистики* - Опция включает использование службы nf_collector. Превращает netflow в агрегированную статистику;
* *Сохранять сырую статистику в формате nfcapd для анализа nfsen* - Опция включает сохранение сырой статистики в формате nfcapd. Далее её можно просматривать в web интерфейсе [nfsen|nfsen];
* *Отправлять агрегированную статистику на Биллинг* - Включает подсчёт объёмов трафика для последующей тарификации в биллинге.
* *Адрес Биллинга для отправки статистики* - IP адрес службы raddb_traf. Служба принимает значения по объёму трафика по протоколу radius. Стандартное значение 169.254.38.13;
* *Порт Биллинга для отправки статистики* - Порт службы raddb_traf. Стандартное значение 3813.

Настройки:
h2. Настойки сохранения сырой статистики

Так же web интерфейсе можно настроить параметры сохранения сырой статистики:

!stat03.png|thumbnail,border=1,width=200!

Настойки сохранения сырой статистики:

# * *IP адрес для доступа к API биллинга:* - По умолчанию: 169.254.80.82. *Недоступно для редактирования*;
IP адрес для доступа к API биллинга. По умолчанию: 169.254.80.82. В данный момент недоступно для редактирования.
# * *Логин для доступа к API биллинга:* - По умолчанию root. *Недоступно для редактирования*;
Логин для доступа к API биллинга. По умолчанию root. В данный момент недоступно для редактирования.
# * *Пароль для доступа к API биллинга:* - По умолчанию servicemode. *Недоступно для редактирования*;
Пароль для доступа к API биллинга. По умолчанию servicemode. В данный момент недоступно для редактирования.
# * *Порт для доступа к API биллинга:* - По умолчанию 8082. *Недоступно для редактирования*;
Порт для доступа к API биллинга. По умолчанию 8082. В данный момент недоступно для редактирования.
# * *Объем данных для подтверждения валидности ip адреса клиента, мб.* ;
Объем данных для подтверждения валидности ip адреса клиента, мб.
# * *Интервал экспорта детальной статистики (bstatd):* - По умолчанию 30 секунд;
Интервал экспорта детальной статистики (bstatd). По умолчанию 30 секунд.
# * *Порог для экспорта статистики, мб.* - По умолчанию 512;
Порог для экспорта статистики, мб. По умолчанию 512.
# * *Интервал проверки массива экспорта в bstatd, сек.* - По умолчанию 300, определяет, как часто данные из каталога */var/stat/agreg/trash/* будут распределяться в */var/stat/binstat/* по учетным записям;
Интервал проверки массива экспорта в bstatd, сек. По умолчанию 300.
# *Директория сохранения статистики для Биллинга*
* *Директория сохранения статистики для биллинга* - Используется для сохранения статистики об объёмах трафика и дальнейшей передачи её в биллинг через службу reporter. По умолчанию */var/dump* ;
# *Экспорт статистики по времени в Биллинг, сек.*
Интервал времени, в который служба reporter переносит данные по объёму трафика в БД биллинга. По умолчанию 1800 сек.
# *Уровень логгирования:*
* *Экспорт статистики по времени в Биллинг, сек.* - Интервал времени, в который служба reporter переносит данные по объёму трафика в БД биллинга. По умолчанию 1800 секунд. Чем меньше параметр, тем быстрее биллинг будет реагировать на учтённый объём трафика. Например, отключать услугу трафика. Вместе с тем уменьшение параметра приведёт к повышению нагрузки на систему.
* *Уровень логирования:* Уровень логирования nf_collector. Используется при поиске проблем. Доступные значения: ERROR, INFO, DEBUG. Значение по умолчанию ERROR;
# *Использовать NAT в Netflow v9:*
* *Использовать NAT в Netflow v9:* - В сырую и агрегированную статистику будет сохраняться SNAT адрес.;
# * *Директория сохранения статистики для bstatd:* - По умолчанию */var/stat/raw* ;
Директория сохранения статистики для bstatd. По умолчанию /var/stat/raw.
# *Сохранять статистику для bstatd:*
При включённой опции статистика будет сохраняться для обработки демоном bstat.
# *Директория для сохранения:*
* *Сохранять статистику для bstatd:* - При включённой опции статистика будет сохраняться для обработки демоном [bstatd|bstatd];
* *Директория для сохранения:* - Директория для сохранения статистики в формате nfcapd. По умолчанию /var/stat/raw. */var/stat/raw* ;
# *Сохранять сырую статистику:*
При включённой опции статистика будет сохраняться для обработки демоном nfcapd.
# *Размер одного файла:*
* *Сохранять сырую статистику:* При включённой опции статистика будет сохраняться для обработки службой [nfcapd|nfsen];
* *Размер одного файла:* Размер одного файла для сохранения статистики. По умолчанию 50 Мб.