Моя компания предлагает общественную беспроводную связь в нескольких местах. Доступ контролируется окном OpenBSD, в котором pf и Squid работают в режиме прозрачного прокси. Используя такой инструмент, как SARG, я могу легко создать отчет HTML, который показывает IP-адреса и объем переданных данных. Однако для использования данных требуется, чтобы человек просмотрел созданный журнал и увидел, есть ли проблема.
Мне было интересно, есть ли какой-нибудь инструмент, который я мог бы использовать, чтобы отправить нам предупреждение, если один пользователь превысил определенный порог передачи данных? Что-то, что будет анализировать журнал, например SARG, но вместо создания отчета просто отправит электронное письмо, если обнаружены какие-либо «проблемы».
Edit 1 - поскольку squid настроен как прозрачный прокси, как таковых "пользователей" нет. Скорее, он регистрирует IP-адреса, которые я могу сопоставить с MAC-адресами, используя журналы DHCP. Я просто ищу что-то, что может отправить мне электронное письмо, если данный IP-адрес передает более x объема данных за определенный период времени.
Периодическое использование pfctl -s state -v
и некоторое использование AWK будет работать.
Вышеупомянутая команда также включает возраст сеанса.
Вам придется довольно регулярно опрашивать и использовать cronjob или что-то подобное, а также делать некоторые сценарии для агрегирования IP-адресов, но это сработает.
Роб