AsItHappens is a real-time network statistic collector and grapher.
It collects data from devices over a network and displays them on a graph, optionally storing collected data in a database for later retrieval.
Current collection types include network response, bandwidth, processor usage, memory usage, Cisco NBAR, Cisco NetFlow and arbitrary SNMP OID.
AsItHappens polls data in regular intervals, which can be in the order of milliseconds, to give immediate feedback on network performance.
In addition, AsItHappens can graphically display flow information from a packet capture file.
AsItHappens is free software released under the GNU General Public License (GPL).
AsItHappens provides the following features:
- Granular collection of data to the point of collecting every second
- Real-time graphing of collected data
- Response data collection via ICMP or TCP/UDP echo
- Inbound and outbound bandwidth data collection via SNMP
- Processor and memory usage collection via SNMP using three different MIB locations
- Cisco NBAR (Network-based Application Recognition) Top-N collection via SNMP
- Cisco NetFlow Top-N collection via SNMP with flow grouping and match criteria options
- Cisco IP accounting, MAC accounting and IP precedence accounting
- Arbitrary SNMP OID collection
- SNMPv1, SNMPv2c and SNMPv3 support
- Optional database storage of collection sessions
- Retrieval of user-defined time intervals within a stored collection session
- Graphical display of packet capture files e.g. capture files from tcpdump, Wireshark, etc.
- Resizable graphing window with automatic scaling of graph data to fit
- Options to define how to aggregate or interpolate data when graphing e.g. to show maximums instead of averages
- The ability to add text labels to the graphing panel to explain desired areas of the graph
- The Self Defending Network
Bandwidth graph
NBAR graph
Netflow graph
Stored sessions
Packet capture graph
You need a Java Runtime Environment (JRE) or Java Development Kit (JDK) version 6 or higher.
You can download Java from here.
Important note: The prequisite Java version changed from 5.0 to 6 as of AsItHappens 0.54. If this is a real problem for you, let me know (contact details below), and if the move to version 6 proves too unpopular I'll consider removing the dependency on Java 6 and reverting to the Java 5.0 dependency.
The latest version of AsItHappens is 0.60. Four install packages are provided here for download:
The installer packages require a JRE version 5.0 or higher to first be installed, but, as mentioned in the previous section, the JRE is required for the application itself anyway.
The "installer-less" packages are provided in both "tgz" and "zip" format for convenience, but the contents are identical. Since the application is Java-based, the same files are used for Unix and Windows. I have also received several reports that AsItHappens works under OSX (using one of the "installer-less" packages).
Thierry Uso has ported AsItHappens to OpenVMS, and has made it available here. Good work Thierry!
Older releases can be found here, although I would recommend the latest.
INSTALL - the AsItHappens install instructions
These files may help with understanding AsItHappens further:
- tips.txt - the usage documentation included with AsItHappens
- CHANGES - find out what's new in the current release
- SDN - everything you need to know to Defend Your Network
AsItHappens uses standard protocols (e.g. SNMP and ICMP) for bandwidth, host and response graphing. It also reports on (using SNMP) two Cisco technologies: NBAR and Netflow. Further information on these Cisco technologies is available at the following locations:
A sincere thanks to the following people for their contribution of feedback, bug reports, testing and suggestions:
- Ronny Boesger
- Adam Shand
- Matt Peterson
- Jonathan Armstrong
- Todd Doolittle
- Collin Rose
- Thierry Uso
- Paul O'Brien
- Brendan McAnnalley
- Susan Breckenridge
- Phil Schilling
- Karl Bousader
- Yaron Meiry
- Abigail Whyld
- Andrew Cosgriff
- Craig Southeren
- Kristian Larsson
- Ken Cathcart
- Adam Moody
- Mark Milhollan
- William Wager
- Stuart Wong
- Ian Bennett
- Olivier Arrighi
- Fergus McMenemie
- Steven Starr
- Carlos Alberto Sola
- Nikolay Popov
- Imtiaz Shameem
- Duy Bui Nguyen Doan
- Paul Cainkar
- Miguel Angel
- Peter Williams
This project, as many others, relies on a mountain of other software, for which I am deeply grateful. I would like to thank at the very least everyone involved in the following development efforts:
- Linus Torvalds and all Linux developers everywhere for the great kernel
- The GNU project for the tools and GNOME
- Sun for their sublime decision to release Java as Free Software and for the great Netbeans IDE
- The Apache Foundation for the Ant and log4j projects
- Thomas Mueller for the H2 database
- Mark Bednarczyk for JNetStream
- Tatu Saloranta and those involved in the Java UUID Generation project
- Kent Beck and Erich Gamma for JUnit
- Frank Fock and Jochen Katz for SNMP4J
- Isabel Garcia and Oscar Fernandez for the PingICMP Java library
- Julien Ponge and the IzPack crew
- Grzegorz Kowal for launch4j
And a great deal more! I am truly humbled when I consider the sheer volume of freely given code that contributes to my computing environment.
It's a bit impractical for me to receive donations and there are much bigger causes out there anyway.
So if you would like to say a financial thank-you for AsItHappens, I would receive endless amounts of energy and motivation if you contributed to this initiative that I've set up to help out some families in need.
And this aside from the awesome privilege you'd get from making a big difference for these folks.
I'll be tracking the donations made; if AsItHappens is successful in raising money for this worthwhile endeavour, I'm likely to spend more time on it.
I'm even open to offers for the cause - name your price for the feature you want :-)
So yeah, donate - and let me know!
At present, I am the support as such. I love getting feedback, so you can email me with any questions, comments, bug reports, or patches. If you're keen to contribute code, I'd be happy to give you any help you need to understand the code structure and where/how you could contribute.
The user part of my email address is mark. The domain part is abrahams.co.nz. As is customary, an at symbol separates these. This is my humble attempt to try to avoid the enthusiasm of email address harvesters.