Здравствуйте.Подскажите пожалуйста есть ли под FreeBSD по для детального подсчета трафика.
Необходимо подсчитать трафик по каждой машине в сети и по возможности по каждому порту.
>Здравствуйте.
>
>Подскажите пожалуйста есть ли под FreeBSD по для детального подсчета трафика.
>Необходимо подсчитать трафик по каждой машине в сети и по возможности по
>каждому порту.Не знаю насчет FreeBSD но на linux этим занимается SAMS
>>Здравствуйте.
>>
>>Подскажите пожалуйста есть ли под FreeBSD по для детального подсчета трафика.
>>Необходимо подсчитать трафик по каждой машине в сети и по возможности по
>>каждому порту.
>
>Не знаю насчет FreeBSD но на linux этим занимается SAMSну-ну. по портам, говоришь, SAMS считает ? :-)
LOL
>[оверквотинг удален]
>>>
>>>Подскажите пожалуйста есть ли под FreeBSD по для детального подсчета трафика.
>>>Необходимо подсчитать трафик по каждой машине в сети и по возможности по
>>>каждому порту.
>>
>>Не знаю насчет FreeBSD но на linux этим занимается SAMS
>
>ну-ну. по портам, говоришь, SAMS считает ? :-)
>
>LOLСори про порты не увидел, но по тачки он считает
а по тачкам что можно?
>[оверквотинг удален]
>>>>Необходимо подсчитать трафик по каждой машине в сети и по возможности по
>>>>каждому порту.
>>>
>>>Не знаю насчет FreeBSD но на linux этим занимается SAMS
>>
>>ну-ну. по портам, говоришь, SAMS считает ? :-)
>>
>>LOL
>
>Сори про порты не увидел, но по тачки он считаетскорей по логам прокси :)
посмотрите netams
>[оверквотинг удален]
>>>ну-ну. по портам, говоришь, SAMS считает ? :-)
>>>
>>>LOL
>>
>>Сори про порты не увидел, но по тачки он считает
>
>скорей по логам прокси :)
>
>
>посмотрите netamsnetflow - прекрасная деатльная статистика по ip
все инструменты идут в комплекте
>посмотрите netamsТебе верно напислаи netаms, лежит в /usr/ports/net-mgmt/netams, нужен устанвленый mysql и настроен ipfw, работает через web-интерфейс - apache сервер, возможен подсчет как по отдельным IP, так и по отдельным портам толи по сетевым толи по com-портам, а также по отдельным протколам, короче будет считать
все что пропускает ipfw.P.S. У меня стоит и считает все, что только в во ФРЯХЕ возможно пропустить через ФАЕР,
горя не знаю, КЛАСНАЯ ШТУКА!!!Попробуй!!!
>Здравствуйте.
>
>Подскажите пожалуйста есть ли под FreeBSD по для детального подсчета трафика.
>Необходимо подсчитать трафик по каждой машине в сети и по возможности по
>каждому порту.Совсем недавно накрутил связку iptables + ULOG + MySQL + Несколько простеньких скрипотв на php. Правда прикручивал на дебиане, но, думаю и под фрёй проблем не будет.
Если нужно помочь - пиши.
>>Здравствуйте.
>>
>>Подскажите пожалуйста есть ли под FreeBSD по для детального подсчета трафика.
>>Необходимо подсчитать трафик по каждой машине в сети и по возможности по
>>каждому порту.
>
>Совсем недавно накрутил связку iptables + ULOG + MySQL + Несколько простеньких
>скрипотв на php. Правда прикручивал на дебиане, но, думаю и под
>фрёй проблем не будет.
>Если нужно помочь - пиши.а чего за скрипты? вот кстати странная фигня, почему досих пор никто нормальную морду под это ненаписали, ведь оч удобно было бы пользовать, я бы первое что написал бы на пыхпыхе это это, но к сожалению моих знаний пыхпыха недостаточно ((
>а чего за скрипты? вот кстати странная фигня, почему досих пор никто
>нормальную морду под это ненаписали, ведь оч удобно было бы пользовать,
>я бы первое что написал бы на пыхпыхе это это, но
>к сожалению моих знаний пыхпыха недостаточно ((Нормальная морда вроде-бы есть, зовется nLog, но мне было интересно самому побаловаться, да и работать этот самый nLog с первого раза у меня не захотел :(
Мои знания в PHP тоже не велики :) там по-большинству на знание запросов.
Например, для удобства я сделал промежуточную табличку, в которую cron`ом каждую ночь сваливаю статистику за предыдущий день, очищая табличку ulog (работать с основной табличкой постоянно тяжко - за день получается около 200-300 тыс. записей, т.к. ulog учитывает каждый пакет).
Дамп таблички:--
-- Структура таблицы `statistics`
--CREATE TABLE IF NOT EXISTS `statistics` (
`id` int(11) NOT NULL auto_increment,
`ip_client` text NOT NULL,
`ip_server` text NOT NULL,
`date_timestamp` text NOT NULL,
`traffic` int(11) NOT NULL,
`protocol` text NOT NULL,
`port` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;Скрипт, выполняемый кроном:
#!/usr/bin/php-cgi
<?
$dateStart=date("Y-m-d H:i:s", mktime(0,0,0,date("m"), date("d")-1, date("Y")));
$dateEnd=date("Y-m-d H:i:s");
QUERY ("INSERT INTO `statistics` (ip_client, ip_server, date_timestamp, traffic, protocol, port)
SELECT INET_NTOA( ip_daddr ) AS `ip_client`, INET_NTOA( ip_saddr ) AS `ip_server` ,
CONCAT(SUBSTRING(timestamp, 1, 4), ".", SUBSTRING(`timestamp`, 6, 2), '.', SUBSTRING(`timestamp`, 9, 2))
, SUM( ip_totlen ) as `traffic`, protocol_name, (SELECT IFNULL(tcp_sport, udp_sport))
FROM `ulog`, `protocols`
WHERE
protocol_number=ip_protocol
AND
`timestamp` BETWEEN '".$dateStart."' AND '".$dateEnd."'
GROUP BY `ip_server`, `ip_client`, protocol_name");
QUERY (
"DELETE FROM ulog WHERE `timestamp` BETWEEN '".$dateStart."' AND '".$dateEnd."'");
Запросы мне удобнее выполнять вот такой функцией:
function QUERY($query)
{
$link=mysql_connect("hostname", "username", "password") or die "Unable connect to MySQL Server";
mysql_select_db("ulogd");
$result=mysql_query($query);
mysql_close($link);
return $result;
}Пример скриптов на работу с табличкой statistics:
<?
$res=QUERY("SELECT DISTINCT ip_client as `client` FROM statistics ORDER BY client");
echo "Общее количество клиентов: <b>".mysql_num_rows($res).'</b>
';
while ($a=mysql_fetch_object($res))
{
print '<a href=details_by_client.php?ip='.$a->client.'>'.$a->client.'</a>
';
}
$res=QUERY("SELECT ip_client, SUM(traffic) as `traffic`
FROM `statistics`
GROUP BY ip_client
");
echo "Общая информация (За текущий месяц):
";
echo "<table border=1>";
echo "<th>Клиент</th><th>Итого загружено</th>";
while ($a=mysql_fetch_object($res))
{
echo '<tr><td>'.$a->ip_client.'</td><td>'.SHOW_SIZE($a->traffic).'</td></tr>';
}
echo "</table>";
echo '<b><a href=details.php>Детализация статистики</a></b>';
$date=date("Y.m");
$res=QUERY("SELECT SUM(traffic) as `traffic`
FROM statistics
WHERE SUBSTR(date_timestamp, 1, 7)=".$date."
");
$a=mysql_fetch_object($res);
echo '
Итого за текущий месяц: <b>'.SHOW_SIZE($a->traffic).'</b>';
$date=date("Y.m", mktime(0,0,0,date("m")-1,1, date("Y")));
$res=QUERY("SELECT SUM(traffic) as `traffic`
FROM statistics
WHERE SUBSTR(date_timestamp, 1, 7)=".$date."
");
$a=mysql_fetch_object($res);
echo '
Итого за предыдущий месяц: <b>'.SHOW_SIZE($a->traffic).'</b>';
?>Ну вот в общем то и все. если подробнее - пиши в джаббер\GTalk: vimarakshin(sobaka)gmail.com
>Здравствуйте.
>
>Подскажите пожалуйста есть ли под FreeBSD по для детального подсчета трафика.
>Необходимо подсчитать трафик по каждой машине в сети и по возможности по
>каждому порту.Вот здесь есть решение под OpenBSD, но и под FreeBSD тоже пойдет.
http://otala.ru/?p=427
Я юзаю ipfm, все предельно просто, ставишь, правишь чуток конфиг и прога збрасывает (в зависимости от того как настроишь конфиг) статистику в красивом виде в текстовый файл.
Для детализации 80 порта использую связку squid+sarg.