bstatd

Skip to end of metadata
Go to start of metadata

Статус развития bstatd

Развитие службы агрегации детальной статистики bstatd завершено, новые функции в ней уже не появляются.

Из известных проблем - ошибки в подсчёте объёмов трафика по ресурсам, учёт только исходящего трафика при обработке Netflow v9, невозможность работы под большой нагрузкой. Так bstatd не участвует в процессе биллинга, эти проблемы нельзя считать критичными для работы системы.

Если представленных функций или точности работы службы Вам не достаточно, можете попробовать использовать более гибкий инструмент Nfsen:

  • Из минусов - он не интегрирован в интерфейс биллинга и собранная для него статистика занимает больше места.
  • Из плюсов - он работает точно, способен выдерживать существенную нагрузку, в нём можно более гибко настраивать фильтры, работает заметно быстрей и позволяет анализировать нагрузку на канал.

Структура файлов

Детальная статистика для учетных записей хранится в папке:

/app/collector/var/stat/binstat/

Например, заполняем статистику за декабрь 2015 для учетной записи с id 297:

  1. Создаем папку 201512 (год и месяц), в ней создаем папку с 297 (id учетки).
  2. В ней создаем (или копируем с биллинга, на котором есть статистика) файлы:
    • days_297.bstat
    • main_01_297.bstat - статистика за 1 число
    • main_23_297.bstat - статистика за 23 число
    • topd_297.bstat - топ статистики по дням
    • topm_297.bstat - топ статистики за месяц
    • total_297.bstat - суммарное статистика за месяц

Содержимое файлов

Структура таблицы

Направление (Входящий / Исходящий)
Время начала
Время конца
IP ресурса
Sport
Dport
Протокол
Объем
Не используется (оставлено для совместимости с Carbon Billing 4, ID тарифа)
Подсеть
Не используется (оставлено для совместимости с Carbon Billing 4, ID правила в подсети)
Не используется (оставлено для совместимости с Carbon Billing 4, стоимость трафика)
SNAT-адрес

total_297.bstat

-1 1448232589 1446695036 000.000.000.000     0     0   0           8008274647    0     0     0                    0 000.000.000.000
 1 1448232589 1446695036 000.000.000.000     0     0   0            645240342    0     0     0                    0 000.000.000.000

days_297.bstat

-1 1446315474 1446400778 000.000.000.000     0     0   0             25275819    0     0     0                    0 000.000.000.000
 1 1446315305 1446400778 000.000.000.000     0     0   0              4247052    0     0     0                    0 000.000.000.000
-1 1446400973 1446487083 000.000.000.000     0     0   0           4023584430    0     0     0                    0 000.000.000.000
 1 1446400973 1446487083 000.000.000.000     0     0   0            237694446    0     0     0                    0 000.000.000.000

main_01_297.bstat

-1 1446315474 1446315474 010.004.001.083   138   138  17                  705    0     0     0                    0 000.000.000.000
 1 1446315305 1446315367 111.221.029.253     0   443   6                 2143    0     2     0                    0 000.000.000.000
-1 1446315306 1446315367 111.221.029.253   443     0   6                 4405    0     2     0                    0 000.000.000.000
 1 1446314769 1446315474 010.004.255.255   138   138  17                 1163    0     0     0                    0 000.000.000.000
-1 1446314769 1446314769 000.000.000.000     0     0  17                  458    0     0     0                    0 000.000.000.000
 1 1446314756 1446315986 217.069.139.074     0   995   6                19702    0     2     0                    0 000.000.000.000
-1 1446314756 1446315986 217.069.139.074   995     0   6               420507    0     2     0                    0 000.000.000.000
 1 1446314756 1446315906 188.166.049.110     0   110   6                 1920    0     2     0                    0 000.000.000.000
-1 1446314756 1446315906 000.000.000.000     0     0   6                 1600    0     2     0                    0 000.000.000.000
 1 1446314756 1446315986 010.004.001.083    53     0  17                 7395    0     0     0                    0 000.000.000.000
-1 1446314756 1446315986 010.004.001.001    53     0  17                 7395    0     0     0                    0 000.000.000.000
 1 1446314685 1446315975 173.194.222.109     0   993   6                 8235    0     2     0                    0 000.000.000.000
-1 1446314686 1446315976 173.194.222.109   993     0   6                 8025    0     2     0                    0 000.000.000.000
 1 1446314660 1446315987 000.000.000.000 65535 65535   6                 8400    0     2     0                    0 000.000.000.000
-1 1446314660 1446315987 000.000.000.000 65535 65535   6                 6400    0     2     0                    0 000.000.000.000
 1 1446314661 1446315962 000.000.000.000 65535 65535  17                 6319    0     2     0                    0 000.000.000.000
-1 1446314661 1446315962 000.000.000.000 65535 65535  17                 9727    0     2     0                    0 000.000.000.000

topd_297.bstat

 1 1446686278 1446687004 178.062.227.067     0     0   0                59840    0     2     0                    0 000.000.000.000
-1 1446687796 1446687796 087.242.088.094     0     0   0                59556    0     2     0                    0 000.000.000.000
-1 1446695166 1446695166 185.005.137.202     0     0   0                57665    0     2     0                    0 000.000.000.000
 1 1446694623 1446694912 111.221.026.251     0     0   0                55088    0     2     0                    0 000.000.000.000
 1 1446694986 1446694986 091.227.068.116     0     0   0                54901    0     2     0                    0 000.000.000.000
 1 1446629375 1446629500 093.170.027.073     0     0   0                54687    0     2     0                    0 000.000.000.000
-1 1446631641 1446631729 199.080.054.050     0     0   0                53364    0     2     0                    0 000.000.000.000

И так далее.

Запросы из командной строки

Пример выборки кто ходил на адрес 8.8.8.8 в период с 03.12.2010 00.00 по 03.12.2010 23.59

chroot /app/collector
/usr/local/bin/bstat2xml -i 8.8.8.8 -t 1291334400-$((1291334400+24*3600)) -o /tmp/guvd.xml -u 1 -f

Для перевода даты 2018-10-29 10:50:00 часовой пояс UTC в unixtime используйте ниже приведенную команду или онлайн-конвертер

date -d "2018-10-29 10:50:00 UTC" +%s

Пример выборки абонентов кто обращался на подсеть адресов 87.240.128.0-87.240.191.255 в момент времени 10.04.2020 в 23:47:28

chroot /app/collector
/usr/local/bin/bstat2xml -i 87.240.128.0-87.240.191.255 -t 1586562448 -o /tmp/guvd.xml -u 1 -f

Выборка будет находиться в файле /tmp/guvd.xml
В файле будут указаны user_id (id учетной записи абонента)
Для поиска абонента по данному user_id можно использовать отчёт в конструкторе отчётов следующего содержания:

select 
a.name as "ФИО",
a.contract_number as "Договор" 
from abonents a
left join users u on u.abonent_id=a.id
where u.id = (':user_id$')

Для вывода справки по утилите введите команду

chroot /app/collector /usr/local/bin/bstat2xml --help

Особенности

  • Детальная статистика хранится по часовому поясу UTC, а не по часовому поясу сервера. И в выборке как в web интерфейсе, так и из командной строки время нужно задавать по часовому поясу UTC.
    Пример: Допустим нужно посмотреть статистику на 29.10.2018 14:20:32 часовой пояс Москва. По UTC это +3 часа то есть 11:20:32. В командной строке запрос на перевод времени будет выглядеть:
    date -d "2018-10-29 11:20:32 UTC" +%s
    
  • В выгрузке детальной статистики объём указан в байтах. Пример:
    <size>3369</size>
    

Решение проблем

Нет детальной статистики в учётной записи

  1. Проверьте, что имеется корректная структура каталогов службы bstatd с помощью команды ls. Должны быть следующие каталоги:
    /app/collector/var/stat/binstat
    /app/collector/var/stat/raw
    /app/collector/var/stat/agreg
    
  2. В каталоге /app/collector/var/stat/binstat находятся подкаталоги со структурой: /binstat/ГодМесяц/user_id То есть статистика по учётной записи 1234 за ноябрь 2019 года будет храниться в каталоге:
    /app/collector/var/stat/binstat/201911/1234
    

    Проверьте есть ли каталог учётной записи за нужный период.

Не обрабатывается сырая статистика

Накапливаются данные в каталоге сырой статистики:

/app/collector/var/stat/raw

Процесс bstatd был завершен неудачно не успев обработать статистику из папки /var/stat/raw . Перезапустите процесс, чтобы демон заново обработал эту статистику:

chroot /app/collector service bstatd restart
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.