Using Argus for data billing

Carter Bullard carter at
Mon Aug 19 08:25:33 EDT 2002

Hey Andrew,
   You should be looking at ramon() and ragator().  While
racount() may give you the basic numbers you're looking for,
these other programs will help to "groom" your argus data
so that you can get good performance from your billing
application. Because argus() generates transactional accounting
records, i.e. every tcp connection, every DNS request every ping,
generates at least one argus record, you want to use something
that will aggregate your records to a set of metrics that are a
bit less volumous.  Programs like ramon() (argus RMON) and
ragator(), (Ra agGregator), are the best programs for
consolidating the data into smaller sets of metrics.

   By saving the output of these programs to daily
or weekly files, when its time to generate your bills,
you can just process these much smaller intermediate files,
which will make your application faster and scalable.

   ramon() will give you the best data for tracking specific
clients and a specific web server, independent of the type
of traffic/service that is being offered by the server.

   ramon -M matrix -r argus.log - dst webserver

This will give you the gross packet and bytes totals for each
client talking to a specific web server in the argus.log file.
Again for incoming traffic use the Src metrics, and the outgoing
traffic will be the Dst metrics.

   If you're interested in tracking the activity by service,
i.e. http traffic vs ftp traffic, you'll want to use the program
ragator().  Look at the file ./support/Config/fmodel.conf to
see how you can configure ragator() to generate individual records
for the total activity between your clients and servers.

   As an example, if you want the packet totals for a single day for
all clients and local web servers broken down by protocol, use a
ragator rule set of:

#label id    SrcCIDRAddr      DstCIDRAddr      Proto Sport DPort Model
Flow   100          *                *         *     *     *     200
Model  200  yes   no    no

   call this file ragator.conf and run:

   ragator -r argus.log -f ragator.conf - dst host \(websrv1 or websrv2
or .. \)

if you want the output sorted by the number of bytes sent, you can:

   ragator -w /tmp/tmp.out -r argus.log -f ragator.conf - dst host \( ..
   rasort -s bytes -r /tmp/tmp.out

this will give you the TopN list of clients talking to your set of

   The output of ragator() can produce concise output for
your application, or you can feed it into raxml() and
use the xml output to feed your databases or billing system.

If you need any help, don't hesitate to send mail to the list.
Hope this was useful,


Carter Bullard
QoSient, LLC
300 E. 56th Street
Suite 18K
New York, New York 10022

+1 212 588-9133 Phone
+1 212 588-9134 Fax



> -----Original Message-----
> From: owner-argus-info at 
> [mailto:owner-argus-info at] On Behalf Of 
> Andrew Pollock
> Sent: Sunday, August 18, 2002 10:12 PM
> To: argus-info at
> Subject: Using Argus for data billing
> Hi,
> I'm evaluating the use of Argus for tracking data usage. We 
> have two types of
> clients we'd like to track useage for, clients with hosted 
> webservers and
> clients that receive connectivity through us.
> We only charge for inbound data, but would be interested in 
> seeing data sent and
> received, just for statistical purposes.
> If I'm understanding things correctly now (which may well not 
> be the case), if I
> wanted to see how much data was delivered to a webserver, I could go:
> # ra -r argus.log - dst webserver
> or to get a nice total
> # racount -r argus.log - dst webserver
> and look at the src bytes count.
> Is my understanding of the use of racount correct?
> How do other people on the list actually put argus to work 
> for them? Anyone want
> to share their implementation and usage stories?
> regards
> Andrew

More information about the argus mailing list