[linux] logovanie a grafy trafficu per IP

Ernest Beinrohr Ernest na Beinrohr.sk
Čtvrtek Červen 27 17:42:02 CEST 2002


V IPACe vytvoris pravidlo, napr 'icmp'. Pouzijes takyto zaznam pre MRTG. 
Ipaccount je myslym defaultne dodavane s IPAC. Tot fsjo.

Target[icmp]: `/usr/sbin/ipaccount 5m icmp`
Options[icmp]: absolute, gauge
AbsMax[icmp]: 28750
Xsize[icmp]: 600
Ysize[icmp]: 160
MaxBytes[icmp]: 28750
PageTop[icmp]: <b>Traffic Analysis for ICMP on <u>eth2</u></b>
Title[icmp]: ICMP - eth2
LegendI[icmp]:   bytes/sec
LegendO[icmp]:   bytes/sec



Okrem toho na accounting podla pravidiel nanych IPACom pouzivam toto. 
Takto dokazem realtimovo zistit kolko kto tahal [cez cron 5min].

#> cat /root/bin/ipac2mysql.php
----------------------------------------------------------------
#!/usr/bin/php -q
<?
$db = mysql_connect ("HOSTNAME" ,"DB_USER", "DB_PASS");
mysql_select_db("DATABASE");

$result=mysql_query("select datetime from ipac order by datetime desc 
limit 0,1");
while($row=mysql_fetch_row($result)){
         $fromdate=$row[0];
         echo $fromdate."\n";
}

exec("/usr/local/bin/ipacsum --fixed-quantity b", $out, $return_value);
$all = array();
for($i=0; $i<count($out); $i++){
         //if($i==0) echo "Count: ".count($out)."\n";
         //ereg("  (outgoing|incoming) 
(.*)[:space:]+:[:space:]+([0-9]+)B", $out[$i], $regs);
         ereg("[\* ]*([a-z]+) ([a-zA-Z\.0-9_-]+[ 
]{0,1}[a-zA-Z\.0-9_-]+)[ ]+:[ ]*([0-9]+)", $out[$i], $regs);
         if($regs[1]=="incoming") $all[$regs[2]][0] = $regs[3];
         if($regs[1]=="outgoing") $all[$regs[2]][1] = $regs[3];
         //echo "$out[$i]\n";
}

echo "Count: ".count($all)."\n";
while (list($k,$v) = each($all)) {
         $incoming=($v[0]==""?0:$v[0]);
         $outgoing=($v[1]==""?0:$v[1]);
         $date=date("Y-m-d H:i:s");
         $query="insert into ipac set datetime='$date', 
fromdate='$fromdate', what='$k', incoming=$incoming, outgoing=$outgoing";
         echo $query;
         $result = mysql_query ($query) or die ("Error, query NOT 
executed");
         echo "\n";
}

mysql_close ($db);
exec("rm /var/log/ip-acct/200*");
exec("/usr/local/bin/fetchipac");

?>


Marek Podmaka wrote:
> On Thu, 30 May 2002, Ernest Beinrohr wrote:
> 
> 
>>U nas pouzivame IPAC + mrtg , funguje dobre. IPAC je na baze ipchains. 
>>Mozno jeho nova verzia IPAC-NG ma podporu aj 2.4.x
> 
> 
> mozem sa opytat ako si prepojil ipac a mrtg? Pomocou toho, co je v
> contrib/ v zdrojakoch ipac alebo si pouzil nieco ine?
> 
>    diki
> 


-- 
Ernest Beinrohr, OERNii
eAdmin @ AxonPro.sk, http://www.AxonPro.sk
+421-2-62410360, +421-905-241903
HomePage: http://www.oernii.sk






Další informace o konferenci linux