LINUX.ORG.RU
ФорумAdmin

mrtg+snmp по всем IP


0

0

Подскажите стоит ucd-snmp + mrtg по IP самого эзернета график показывает нормально, а как настроить это для просмотра всех IP адресного пространства всего эзернета и можно ли это сделать через snmp или требуются внешние скрипты для snmpd

anonymous

если поставить на каждый хост по snmp-агенту и настроить mrtg - будет.

а snmpd может рассказать много, но только про свой хост.

ingwar
()

Бред полный :-))) У меня mrtg кажет инфу которую дёргает с рутера удалённого и ещё с сервера одного ;-)

anonymous
()

Последнему anonymous-у: ты читай внимательнее !

mrtg может быть один, а snmpd - на каждой тачиле, иначе mrtg не с кем будет общаться при запросе к данным компам.
По-моему ingwar ясно написал

spirit ★★★★★
()

Также можно настроить через iptables прописываеш правила на тачки Делаеш не большой скрипт и все прет если интересно то могу скрипты кинуть

anonymous
()
Ответ на: комментарий от anonymous

2улыбыбающийся_анонимуз:

а тебя никогда не интересовало, КАК mrtg получает данные от роутеров и серверов?

марш RTFM'ить на тему SNMP.

ingwar
()

И всетаки вы не правы :)
все можно оргонизовать при помощи iptables
вот пример
организуем цепочку для компа K1-IP1


iptables -N K1-IP1
iptables -A K1-IP1 -i eth0 -s 0/0 -d xxx.xxx.xxx.xxx -j ACCEPT
iptables -A K1-IP1 -o eth0 -s xxx.xxx.xxx.xxx -d 0/0 -j ACCEPT
iptables -A FORWARD -s 0/0 -d xxx.xxx.xxx.xxx -j K1-IP1
iptables -A FORWARD -s xxx.xxx.xxx.xxx -d 0/0 -j K1-IP1

пример mrtg.conf

Target[K1-IP1]: `/opt/mrtg/statlan eth0 K1-IP1`
WithPeak[K1-IP1]: y
MaxBytes[K1-IP1]: 32000
XSize[K1-IP1]: 600
YSize[K1-IP1]: 200
# XScale[K1-IP1]: 2.0
# AbsMax[K1-IP1]: 25000
# Factor[K1-IP1]: 1.05
Title[K1-IP1]: K1-IP1
PageTop[K1-IP1]: <B><FONT COLOR=#0000ff>&nbsp;Анализ трафика потока к K1-IP1 </FONT></B> <BR>
<TABLE>
</TABLE>

а вот пример файлика котрый указан в качестве параметра
/opt/mrtg/statlan

#!/usr/bin/perl -w
#
#
#

sub statprint{
print $intraf. "\n";
print $outtraf. "\n";
open ( SYSSTAT , "/bin/hostname | " ) or die "фишка2 не прошла";
while ( <SYSSTAT> ) {$name_system = $_ ;}
close SYSSTAT;

open ( SYSSTAT , "/usr/bin/uptime | " ) or die "фишка2 не прошла";
while ( <SYSSTAT> ) {@time_system = split /,/, $_ ;}
close SYSSTAT;
@ttime_system = split /\s* /,$time_system[0];
print "$ttime_system[3] $ttime_system[4], $time_system[1]:00 \n";
print " система $name_system\n";
}

$tipe_top = "Chain OUTPUT";
$name_lan=shift(@ARGV);
$iplist=shift(@ARGV);

$type_list = 0;
if (!$iplist) { $iplist = "";
$type_list = 1;
}

if (!$name_lan) { $name_lan = "eth0";
}
$intraf = 0;
$outtraf = 0;


open ( LANSTAT , "/sbin/iptables -L $iplist -v -x -n | " ) or die "фишка2 не прошла";

while ( <LANSTAT> ) {

if ( $type_list == 0 ){
if ( $_ =~ m/$name_lan/ ) {
@wwlan = split /\s* /, $_ ;
if ( $wwlan[6]=~ m/$name_lan/ ) { $intraf = $intraf + $wwlan[2];}
if ( $wwlan[7]=~ m/$name_lan/ ) { $outtraf = $outtraf + $wwlan[2];}

}
}
else { if ( $_ =~ m/$tipe_top/ ) {$type_list = 0;} }

}
close LANSTAT;
&statprint;

# End:

pvvking ★★
()

Да и все это только на шлюзе надо зделать ПОЛЬЗУЙТЕСЬ что не понятно спрашивайте у меня все прет и нормалек Можно даже по портам для каждого компа графики рисовать :)

pvvking ★★
()

все правильно придумано, но:

цепочки iptables считают только IP-трафик, проходящий через сервер, на котором считалка.
а трафик от одного клиента до другого ни в какие счетчики не попадет.
хотя, в большинстве случаев такое решение достаточно.

ingwar
()

Полностью согласен но внутренний переток кому он нужен как правило речь идет о инетовском трафике а не о внутреннем. Ну а если необходимо считать и внутренний то ставте на каждой машинке SNMP :)

pvvking ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.