>Имеется небольшая сеть, которая выходит в интернет через шлюз на Linux. >Для авторизации пользователей используется VPN с динамически выдаваемыми адресами. Сейчас система учитывает >трафик каждого пользователя по счетчикам iptables. Т.е. после авторизации создаются правила >в цепочке FORWARD которые разрешают хождение трафика и заодно считают входящий >и исходящий трафик. Но хочется подробного отчета с каких IP сколько >было скачано. Для учета присмотрел ulog-acctd. Дописал его чтобы он складывал >информацию в базу и при получении сигнала сливал всю свою статистику >в таблицу. >Но тут появилась одна тонкость. Статистика снимается каждые 15 минут, при разрыве >соединения брались нужные правила iptables, с них снимались показания и они >удалялись. Для ulog-acctd нельзя выгрузить статистику только для одного IP. А >при большом числе пользователей сигнал на выгрузку статистики будет приходить достаточно >часто и база будет иметь слишком большую нагрузку, т.к. привязка к >пользователю осуществляется по триггеру при вставке строки. Этот триггер находит соответствие >IP адреса и ID пользователя в таблице. И я в затруденении. > >Моджет кто подскажет как усовершенствовать систему. > >PS. статистика по счетчикам pppd не подходит, потому что трафик локальный бесплатен. >а нужно ли считать так часто, раз в 15 минут? у меня подобная схема, но учет нужен для итоговых цифр - поэтому пишу в лог файл, загоняю инфу из лога в базу раз в сутки, а потом уж с помощью запросов вытягиваю из базы то, что надо. Немного коряво, особенно запросы, но устраивает в виду небольшого количества пользователей.
|