Пересчет трафика по данным Radius (при потерянных Netflow-логах)

Материал из BiTel WiKi

В случае когда трафик абонентов считается через Netflow (nas.port_traffic.default.*=1:COLLECTOR;2:COLLECTOR; в конфигурации NAS'а), может сложиться такая ситуация, что данные о трафике будут потеряны (например, перестал работать Netflow-сенсор). В этом случае восстановить данные можно используя данные Radius, которые сохраняются в биллинге независимо от того, что указано в опции nas.port_traffic.default. Итак, последовательность действий следующая.

Допустим, необходимо восстановить данные о входящем трафике (услуга 1) за период с 10.05.2011 по 15.05.2011.

1. Делаем бакапы таблиц.

CREATE TABLE _session_detail__201105_bak SELECT * FROM session_detail__201105
CREATE TABLE _log_session__201105_bak SELECT * FROM log_session__201105

2. Удаляем старую информацию по трафику.

DELETE detail FROM session_detail__201105 AS detail 
INNER JOIN log_session__201105 AS session ON session.id=detail.session_id AND session.STATUS!=0 AND session.session_start<'2011-05-16' AND session.session_start>'2011-05-09'
WHERE detail.sid=1

3. Вставляем информацию по трафику.

INSERT INTO session_detail__201105(cid, session_id, sid, dtime, amount) 
SELECT login.cid, session.id, 1, DATE(session.session_stop), session.input_octets 
FROM log_session__201105 AS session 
LEFT JOIN user_login_ AS login ON session.lid=login.id
WHERE session.STATUS!=0 AND session.session_start<'2011-05-16' AND session.session_start>'2011-05-09'

4. Проверяем по отчётам в договоре, что трафик появился, можно сверить по RADIUS логу.

5. Запускаем переобсчет сессий (вкладка "Начисление" модуля)

Рекомендуется делать описанные шаги по окончании месяца, то есть когда таблицы уже не используются.