Как и любой другой биллинг система UTM5 позволяет хранить трафик абонентов. Детальный трафик пишется в файлы с именами вида iptraffic_raw_1500834295.utm . Число в имени означает время в формате UNIX, с которого началась запись файла.
Для перевода UNIX-времени в обычный формат можно воспользоваться онлайн-калькуляторами, например, таким https://www.cy-pr.com/tools/time/
Сам файл при разборе его через утилиту
get_nf_direct представляет собой набор следующих данных (исходящий трафик): время в формате UNIX, id абонента, его внутренний ip, класс трафика, протокол, флаги TCP, количество переданных пакетов и байт. Стоит отметить, что в строках с адресами NAT id из биллинга отсутствует. Поэтому приходится вычислять по времени внутренний ip, с которого был запрос на требуемый правоохранителями сайт (лучше взять выгрузку +/- 5 секунд от требуемого времени).
1 2 3 4 5 6 7 8 9 10 | 1530013559 3257 192.168.160.17 92.86.50.240 20 2 96 53130 17942 Tue Jun 26 14:45:59 2018 1530013559 3257 192.168.160.17 2.62.246.6 20 5 308 53130 6881 Tue Jun 26 14:45:59 2018 1530013559 3257 192.168.160.17 94.245.131.129 20 2 96 53130 57626 Tue Jun 26 14:45:59 2018 1530013559 1182 194.226.130.228 192.168.151.50 10 2 1050 443 55703 Tue Jun 26 14:45:59 2018 1530013559 834 192.168.125.57 149.154.167.92 20 2 120 54822 443 Tue Jun 26 14:45:59 2018 1530013559 1634 52.34.152.120 192.168.141.18 10 3 155 443 52817 Tue Jun 26 14:45:59 2018 1530013559 0 109.106.143.56 62.33.11.196 10 2 96 1126 5279 Tue Jun 26 14:45:59 2018 1530013559 2138 192.168.141.61 45.124.255.83 20 5 4051 37923 443 Tue Jun 26 14:45:59 2018 1530013559 1612 192.168.141.5 217.69.139.118 20 25 3035 44054 443 Tue Jun 26 14:45:59 2018 1530013559 0 176.50.170.210 62.33.11.143 10 2 96 57801 34721 Tue Jun 26 14:45:59 2018 |
Команда для извлечения трафика в формат csv. В примере из файла статистики выбираются записи об исходящем трафике к ip-адресам социальной сети ВКонтакте.
1 | /data/netup/utm5/bin/get_nf_direct -e -c 20 -C -b iptraffic_raw_1500577566.utm | grep -E "87.240.180.136|87.240.129.71|87.240.190.67|87.240.182.224" > 200717.csv |
Место расположения файлов статистики, их размер, количество и прочие параметры настраиваются через утилиту utm5_admin:

- _
- _
- _
- _
- Каталог на сервере, где хранится детальный трафик UTM5. У нас каталог находится на отдельных дисках по 3,5Т, объединенных в RAID0.
- Скрипт, который выполняется при закрытии файла с трафиком
- Размер файла статистики в байтах.
- Максимальное количество файлов
Сколько места выделить на хранение файлов детального трафика UTM5? Как известно, данные необходимо хранить три года. 3 тысячи абонентов в дневное время за 2 минуты генерируют записей на 120 МБ (цифры грубые, у разных провайдера могут отличаться). За три года набегает чуть более 90 террабайт.
Если вы ограничены в средствах на СХД, можно попробовать поступить следующим способом: сжимать трафик через скрипт (6 на скриншоте 1). Можно воспользоваться стандартным gzip. Он сожмет 120 Мб примерно в 26 Мб. И для хранения данных за три года потребуется около 20 террабайт вместо 90. Можно пойти и дальше, использовав утилиту 7z. Она сожмет файл статистики примерно до 13 Мб. И трехлетний трафик влезет на 10Т дисковый массив. Отмечу, что архивированные gzip’ом файлы 7z в два раза не уменьшит. Для этого необходимо распаковать файл.gz и пережать его второй утилитой. Пример скрипта raw_fd_script.sh:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #!/bin/sh
if [ -z $1 ] ; then
echo "type: $0 <path_for_statfile>" ; exit
fi
statfile_path="$1"
RVAL=''
#/usr/bin/gzip -c $statfile_path > $statfile_path.gz
/usr/local/bin/7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on $statfile_path.7z $statfile_path | grep -w "Creating" >> /billing/utm5/log7zip.txt
/bin/date "+%Y-%m-%d %H:%M%n" >> /billing/utm5/log7zip.txt
RVAL=$?
if [ $RVAL -eq 0 ] ; then
else
echo "Compression error, exiting ..." ; exit 1
fi |
После выполнения этого скрипта на выходе к файлу
iptraffic_raw_1500834295.utm добавится файл
iptraffic_raw_1500834295.utm.7z. Файлы .utm затираются циклически. Их количество не превышает 5 тыс. файлов (6 на скриншоте 1), что составляет примерно одну неделю. Сжатые файлы останутся. Минусом такого подхода к хранению детального трафика является потеря доступа к просмотру старого трафика (старше 7 дней) через утилиту utm5_admin. Запрашиваемый трафик придется выгружать через консольную утилиту get_nf_direct.
Если нужен доступ к статистике через
utm5_admin, то придется увеличить максимальное количество сохраняемых файлов, а в скрипте дописать строки, которые удаляют файл .utm после архивации и создают вместо него пустой файл с таким же именем. Далее при необходимости придется распаковывать нужные файлы 7z с затиранием пустых одноименных файлов. Минус такого подхода: количество файлов в каталоге увеличится в два раза.
Я предпочитаю первый способ, с сохранением только 7z файлов и доступом к трафику через консольную утилиту get_nf_direct.
Комментировать