Argus 3.0 / 32-bit overflow / backward compatibility

Carter Bullard carter at qosient.com
Thu Sep 22 14:29:05 EDT 2011


Hey Ilija,
Argus itself doesn't support 64-bit counters, but the clients do.  It is the difference between flow
data generation and flow data processing.

We do not recommend running argus such that it holds flow information for very large periods of time.
I run with ARGUS_FLOW_STATUS_INTERVAL set to 1s or 5s in every installation I do, and as
a result the 32-bit counter strategy has worked quite well.  For 10-100 Gbps interface monitoring,
I think the 32-bit value is still the way to go, with the clients aggregating the status reports to generate the
final flow record, where we do support 64-bit reporting.

If you think this is a flaw, then lets discuss.  Adding 64-bit counters will increase the flow cache
for every flow tracked by 48 bytes (src and dst pkt, byte, and appbyte counters) and for TCP we'll need to
add another 64 bytes or so, as we have a lot of other counters.  Can be a huge deal if we're tracking
1M flows, but our current cache size is pretty big, when you add jitter and other features.

Not sure what is up with your argus-2.0 data, as we should be able to read it with out issue.
argus-clients-3.0.5.19, in the developers section, may be able to read it fine, if there was a but.
If you can share the 2.x file, I'll check out what might be the issue.

Carter

On Sep 22, 2011, at 1:52 PM, Ilija Baniski wrote:

> Hello all,
> 
> I am doing some testing prior to upgrading to 3.0. 64-bit byte counters are an important reason for the upgrade, while the ability of the 3.0 clients to read argus 2.0 data make the switch that much sweeter. However, I haven't been able to get either of these two features to work. I have the latest argus-3.0.4 and argus-clients-3.0.4.1 built. I know these two are not very closely related, but I'll ask both questions here.
> 
> I read that these two features should be supported here:
> http://permalink.gmane.org/gmane.network.argus/3601
> http://article.gmane.org/gmane.network.argus/3782
> 
> 1.
> To test the 4GB byte overflow I performed a ~5GB file transfer twice: once with STATUS_INTERVAL=60 and then with STATUS_INTERVAL=600. These were the results:
> 
> # ./ra -Xnr /opt/data/argus/var/log/argus.out - host 192.168.111.39
>   11:45:51.241371  e d       tcp    192.168.111.137.49460     ->     192.168.111.39.22       674666  691670398   CON
>   11:46:51.241496  e d       tcp    192.168.111.137.49460     ->     192.168.111.39.22       728665  746638654   CON
>   11:47:51.241563  e d       tcp    192.168.111.137.49460     ->     192.168.111.39.22       729780  748390504   CON
>   11:48:51.241597  e d       tcp    192.168.111.137.49460     ->     192.168.111.39.22       733293  752190798   CON
>   11:49:51.241631  e d       tcp    192.168.111.137.49460     ->     192.168.111.39.22       733537  752519850   CON
>   11:50:51.241659  e d       tcp    192.168.111.137.49460     ->     192.168.111.39.22       734255  752514878   CON
>   11:51:51.241729  e d       tcp    192.168.111.137.49460     ->     192.168.111.39.22       732836  751412980   CON
>   11:52:51.241770  e d       tcp    192.168.111.137.49460     ->     192.168.111.39.22       374739  384106534   FIN
> # ./racluster -Xnr /opt/data/argus/var/log/argus.out - port 49460
>   11:45:51.241371  e d       tcp    192.168.111.137.49460     ->     192.168.111.39.22      5441771 5579444596   FIN
> 
> Which shows the transfer of the ~5GB file. Now with only a single interval for the transfer:
> 
> # ./ra -Xnr /opt/data/argus/var/log/argus.out - host 192.168.111.39
>   11:33:23.249123  e d       tcp    192.168.111.137.47119     ->     192.168.111.39.22      5443943 1284774452   FIN
> # ./racluster -Xnr /opt/data/argus/var/log/argus.out - port 47119
>   11:33:23.249123  e d       tcp    192.168.111.137.47119     ->     192.168.111.39.22      5443943 1284774452   FIN
> 
> Which shows that the byte count has wrapped after 4GB (1284774452 + 4x1024x1024x1024 = 5579741748).
> 
> So I guess the question is, what am I doing wrong? Do I need to compile argus in a certain way or configure it differently? Or perhaps this is related to the clients (unlikely since racluster seems to have no problem showing the 5GB if the data is there).
> 
> 
> 2.
> To check the backward compatibility I used the ra tool from the argus-clients-3.0.4.1 to try and read a file written by argus 2.0. Here are some output snippets of me trying to read the file with both, an old client and new one:
> 
> The old:
> # ra -h
> Ra Version 2.0.6.fixes.1
> ...
> # ra -r argus.2011-09-13-07-00-01.gz | head -2
> 09-07-11 11:18:07.535387           man                    10.2.1.37  v2.0                                     1 0          0        0         0            0           STA
> 09-13-11 02:49:01.914562           tcp                    10.2.2.86.8280        ->                69.184.252.19.8292       3        6         384          435         CON
> 
> and the new:
> # ./ra -Xh
> Ra Version 3.0.4.1
> ...
> # ./ra -Xr argus.2011-09-13-07-00-01.gz
> <no output at all>
> 
> So back to the same questions: what am I doing wrong/how can I use the new clients to read the old data? In my random attempts to make this happen I did try to unzip the file first, but that made no difference.
> 
> 
> Thanks for any help,
> Ilija
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4367 bytes
Desc: not available
URL: <https://pairlist1.pair.net/pipermail/argus/attachments/20110922/a8c2906b/attachment.bin>


More information about the argus mailing list