also ich hab mir mal ipac-ng auf den server geworfen und auch mrtg. beides läuft soweit ganz gut.
ich möchte nun, wie der titel bereits sagt, den traffic von ipac-ng zu mrtg übertragen.
im package/source von ipac-ng ist bereits die ipaccount enthalten mit der das funktionieren soll. so nun hab ich allerdings das problem, es werden nur 0-werte zurück gegeben. hier mal die ipaccount:
Code: Select all
#!/usr/bin/perl -w
#
# /usr/local/bin/ipaccount
#
# ipaccount reads data from ipac-ng logs and updates mrtg log file(s).
# ipaccount is used with ipac-ng and mrtg to create ip traffic graphs.
#
# The "fetchipac" (part of ipac-ng) application creates log files that
# contain historical IP traffic data depending on rules set in ipac.conf.
#
# The mrtg reads data from a unique log file for each "target" ($TARGET.log)
# The "target" log files depend on rules set in the mrtg.cfg file.
# mrtg can use this data for creation of graphs.
#
# Read ipac-ng and mrtg manuals for more information.
#########################################################################
$ENV{PATH}="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin";
die "Usage: ipaccount <relative time> <regexp>n" if $#ARGV < 1;
@output = `/usr/local/sbin/ipacsum --exact -s $ARGV[0]`;
die "Can't execute ipacsum: $!n" if !defined @output;
$bytesin=0;
$bytesout=0;
foreach (@output)
{
# Incoming...
$bytesin = $1 if (/^[* ]s+incomings+$ARGV[1]s+:s+(d+)/);
# Outgoing...
$bytesout = $1 if (/^[* ]s+outgoings+$ARGV[1]s+:s+(d+)/);
}
print "$bytesinn$bytesoutn0nn";ich vermute nun es ist irgendwie ein fehler im regex beim if. ich kann jedoch noch kein regex und weiß leider nicht so recht zu interpretieren was dort steht. (gut das nach incoming und outgoing gesucht wird versteh ich ;-) und das der : gesucht wird)
hier mal die ipacsum ausgabe
Code: Select all
# /usr/local/sbin/ipacsum --exact -s 15m -f "TeamSpeak Server"
IP accounting summary
Host: xxx / Time created: 2004/12/01 00:23:37 CET
Data from 2004/12/01 00:08:37 CET to 2004/12/01 00:23:37 CET
TeamSpeak Server incoming : 187712
TeamSpeak Server outgoing : 179805
Code: Select all
# /usr/lib/mrtg2/ipaccount 15m "TeamSpeak Server"
0
0
0DANKE!
mfg KoS