Ключевые слова:mrtg, script, ipfwadm, snmp, firewall, (найти похожие документы)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Alex Radetsky 2:463/18 11 Jan 99 09:29:10
Subj : pабота mrtg без snmp
________________________________________________________________________________
Vladimir Bormotov <bor@kiev-konti.com> wrote:
>>AVK> С потолка оно их берет. Поищи архивы этой группы за
>>AVK> февраль-май на предмет моих аналогичных вопросов и патча
>>AVK> на snmpd.
>>ipfwadm (accounting packets) на конкретном интерфейсе в обе стороны +
>>тот же ipfwadm(выдача количества пакетов) + небольшой скрипт, который
>>вызывается mrtg в качестве external и фильтрует информацию от ipfwadm.
VB> Во, мне тут провайдерский суппорт то-же самое подсказывает.
VB> Hо проблема еще и в том, что у меня почему-то mrtg совсем не желает
VB> брать данные из скрипта 8(. Я даже запускал ее с включенным DEBUG'ом,
VB> до rateup все доходит нормально, а вот дальше фигня какая-то.
VB> Может кто-нибудь что-нибудь разумное подскажет как лакализовать?
^^^^^^^^^^^^^
Это от какого слова? ;))))
Вот пример скриптов для анализа интерфейса ppp0 ;)
/etc/rc.d/rc.mrtg:
#!/bin/sh
ipfwadm -A in -a -W ppp0 -D core.adm.gov.ua
ipfwadm -A out -a -W ppp0 -S core.adm.gov.ua
-----------
Вот конфигурация mrtg:
WorkDir: /home/httpd/html/mrtg/
Target[001]: /usr/local/bin/mytraffic <your_ip>
MaxBytes[001]: 38400
Title[001]: Your_title
PageTop[001]: <H1> Traffic Analysis </H1>
А вот сам mytraffic:
#!/usr/bin/perl
#
#
# Usage mytraffic ip_addr
#
#
$need_addr = shift(@ARGV);
if ($need_addr eq "")
{
die "Usage: mytraffic <IP_ADDR>\n";
}
open (IPFWADM, "/sbin/ipfwadm -A -l -x -e -n|") or die "Can not open
ipfwadm!\n";
<IPFWADM>;
<IPFWADM>;
while (<IPFWADM>)
{
chomp;
($pkts, $bytes, $dir, $prot, $opt, $ifname, $ifaddr, $source, $dest, $ports) =
split;
@j = split ('\.',$need_addr);
if ($j[0] == 10)
{
if (($source eq $need_addr) && ($dir eq "in"))
{
$bytesin = $bytes;
}
if (($dest eq $need_addr) && ($dir eq "out"))
{
$bytesout = $bytes;
}
}
else
{
if (($source eq $need_addr) && ($dir eq "out"))
{
$bytesin = $bytes;
}
if (($dest eq $need_addr) && ($dir eq "in"))
{
$bytesout = $bytes;
}
}
#next;
}
close IPFWADM;
print $bytesout . "\n";
print $bytesin . "\n";
-------------
Это мой реально работающий вариант. Желаю удачи.
--
Best regards,
Alex Radetsky mailto:rad@gu.net--- ifmail v.2.14.KSI2 * Origin: Global Ukraine Inc. (2:463/18@fidonet)
_ RU.UNIX (2:5077/15.22) _____________________________________________ RU.UNIX _
From : Oleh Hrynchuk 2:5020/400 15 Jun 99 14:21:58
Subj : скpипт для mrtg
________________________________________________________________________________
From: Oleh Hrynchuk <oleh@ti.cz>
"Oleg M. Bartenev" wrote:
>
> Pauel Loshkin wrote:
>
> > Пpивет All!
> >
> > Hаpод - поделитесь pls кто делал - наpаботками по снятию тpаффика с помощью
> > сладкой паpочки MRTG/UCD-SNMP с Unix-машин.....
> > А то pазбиpаться не хочется с нуля.В смысле mrtg-то как pаз я уже пользовал
> > - с киской.А вот UCD-SNMP еще нет. Если у кого есть такое - кинте мылом
> > конфиги,pls !
>
> Да что там кидать, поставил snmp и напустил на него mrtg.
> Ты хоть попробуй для начала.
>
А че там пробовать?
Кусок mrtg.cfg:
#
# Config file for MRTG. 21/04/98. @Terminal.cz
#
# Global parameters
WorkDir: /var/log/mrtg/hosts
# Optional parameters
Refresh: 300
Interval: 5
WriteExpires: yes
#IconDir: /mrtg/
Options[_]: growright
#---------------------------------------------------------------
# IP traffic through several hosts
#---------------------------------------------------------------
#---------------------------------------------------------------
Target[195.144.120.1]: `/usr/local/mrtg/bin/sum.ip 195.144.120.1`
MaxBytes[195.144.120.1]: 1250000
Title[195.144.120.1]: dns
PageTop[195.144.120.1]: <H1>Traffic Analysis for dns
</H1>
<TABLE>
<TR><TD>System:</TD><TD>dns</TD></TR>
<TR><TD>Maintainer:</TD><TD>Oleh Hrynchuk</TD></TR>
<TR><TD>IP:</TD><TD>195.144.120.1</TD></TR>
<TR><TD>Max Speed:</TD><TD>1.25 MBytes/s (ethernetCsmacd)</TD></TR>
</TABLE>
#---------------------------------------------------------------
Hу и скрипт sum.ip:
#!/bin/sh
# Some needed internal variables
statlog=/tmp/mrtg.ip.log
tp01="/195\.144\.120\.1$/"
tp02="/195\.70\.130\.19$/"
tp03="/195\.70\.130\.26$/"
case $1 in
195.144.120.1) template=$tp01;;
195.70.130.19) template=$tp02;;
195.70.130.26) template=$tp03;;
esac
awk "BEGIN {sumo = 0
sumi = 0}
{if (\$1 ~ $template)
(sumo += \$3)
if (\$2 ~ $template)
(sumi += \$3)}
END {
printf\"%d\n%d\n%d\n%d\n\", \
sumi, sumo, 0, 0}" $statlog
И все.
--
Nic-hdl: OG133-RIPE
Tel.: +4202 96159438
--- ifmail v.2.14dev3 * Origin: Telenor Internet (2:5020/400)
VB> Hо проблема еще и в том, что у меня почему-то mrtg совсем не желает
VB> брать данные из скрипта
у меня тоже эта проблема возникла, может всетаки ктонить ее решил????
на входе мртг нормальные значения из скрипта идут, а в лог пишутся нули...
че блин за ерунда????