ip accounting
Доброго дня.
Есть шлюз (NAT) и сеть с 2-4 машинами. Потребляют трафик примерно 1-2 Гб\месяц.
Задача -- выдывать подробную информацию (достаточно src.ip, src.port, dst.ip,
dst.port, type, size) по потребленному трафику за произвольный период (от 5-10
минут до 1 месяца). Хранилище данных -- mysql.
До этого использовал net-acct. Хранил данные в файлах. Смотрел логи
net-acct раз в 5 мин, собирал суммарную информацию (в файл) с разбивкой
по суткам. Понадобилось точнее (как минимум -- час, желательно 5-10 мин),
поэтому в качестве хранилища выбрал РСУБД, благо mysql поставил и для
других дел.
В качестве замены net-acct подумывал netacct-mysql попробовать, да у него
(как и у любой другой libpcap-считалки) сложность с определением какая именно
машина за NAT потратила трафик. Да и разделение трафика на три категории
для меня не актуально. Ну и не радует тот факт, что в debian его нет в
пакете, соответственно и поддержки security-team тоже нет.
Сейчас в качестве промежуточного варианта пробую ulogd. Здесь свои
тараканы -- ulogd пишет в базу данные каждого пакета, а не соединения.
Экстраполировал полученные данные, получается прибавка в 70-150 тыс. строк
в таблице и 100-200 мб "веса" базы данных ежемесячно, если оставить всё как
есть. В принципе, можно периодически "пробегать" таблицу, собирать данные о
соединениях и удалять просмотренные данные. Тогда можно добиться примерно
такого же расхода места как и в случае net-acct.
Третий вариант, который я не пробовал и он мне не оч. нравится, это
использовать счетчики iptables (либо как есть, либо с использованием
account-патчей) и периодически просматривать счетчики userspace-утилитами и
отправлять в СУБД "в ручную".
Что можете посоветовать в данной ситуации? Какой инструмент, присутствующий
в sarge, наиболее подходит для решения поставленной задачи?
--
:Wq
Not an editor command: Wq
Reply to: