Loading

Wednesday, January 20, 2010

Bandwidth Monitoring Tools for Ubuntu

  • bmon - Bandwidth monitor and rate estimator
  • bwm-ng - Bandwidth Monitor NG (Next Generation), a live bandwidth
    monitor for network and disk IO
  • cbm - displays the current traffic on all network devices
  • iftop - Real-time bandwidth usage information on a specified interface
  • iperf - Tool for measuring maximum TCP and UDP bandwidth performance
  • ibmonitor - interactive bandwidth monitor
  • pktstat - shows the bandwidth being consumed by packets of various kinds in realtime
  • tcptrack - sniffer which displays information about TCP connections
  • MRTG - see traffic load on a network over time in graphical form
  • Cacti - network graphing solution
Details on each tool.

bmon
bmon is a portable bandwidth monitor and rate estimator. It supports various input methods for different architectures. Various output modes exist, including an interactive curses interface, lightweight HTML output, and simple ASCII output. Statistics may be distributed over a network using multicast or unicast and collected at some point to generate a summary of statistics for a set of nodes.

Install bmon on Ubuntu:
sudo apt-get install bmon
To launch bmon just enter bmon at the terminal.



You can select a specific interface to view traffic details. In the screen shot below I selected eth0, 'g' for graphical statistics and 'd' for detailed statistics.



bwm-ng
bwm-ng can be used to monitor the current bandwidth of all or some specific network interfaces or disks (or partitions). It shows total of in and out as well as total of all interfaces/devices.

Install bwm-ng on Ubuntu:
sudo apt-get install bwm-ng
To launch bwm-ng just enter bwm-ng at the terminal.



cbm
cbm (Color Bandwidth Meter) displays the current traffic on all network devices.

Install cbm on Ubuntu:
sudo apt-get install cbm
To launch cbm just enter sudo cbm at the terminal.



iftop
iftop provides real-time bandwidth usage information on a specified interface, listed by host pairs.

Install iftop on Ubuntu:
sudo apt-get install iftop
To launch iftop just enter iftop at the terminal.

Iperf
Iperf was developed by NLANR/DAST as a modern alternative for measuring maximum TCP and UDP bandwidth performance. Iperf allows the tuning of various parameters and UDP characteristics. Iperf reports bandwidth, delay jitter, datagram loss.

Install iperf on Ubuntu:
sudo apt-get install iperf
Iperf supports several options, but generally you would run it on one device as a "server" and another as a "client."

To launch iperf in server mode just enter iperf -s at the terminal.  It will report, "Server listening on TCP port 5001. . ."



From another system launch iperf in client mode with iperf -c <server IP>. By default Iperf will run a 10 second test and report amount of data transferred and bandwidth speed.



Note: Iperf can be used to test LAN speeds as well as over the Internet.

ibmonitor
ibmonitor is an interactive linux console application which shows bandwidth consumed and total data transferred on all interfaces.

Its main features are:
  • Shows received, transmitted and total bandwidth of each interface
  • Calculates and displays the combined value of all interfaces
  • Displays total data transferred per interface in KB/MB/GB
  • Values can be displayed in Kbits/sec(Kbps) and/or KBytes/sec(KBps)
  • Can show maximum bandwidth consumed on each interface since start of utility
  • Can show average bandwidth consumption on each interface since start of utility
  • The output with all features (max, avg and display in Kbps and KBps) easily fits on a 80x24 console or xterm
  • Can interactively change its output display format depending on key pressed by user.
Install ibmonitor on Ubuntu"

First you need to download the latest version:
wget http://ovh.dl.sourceforge.net/sourceforge/ibmonitor/ibmonitor-1.4.tar.gz
Extract this file using the following commands
tar xvfz ibmonitor-1.4.tar.gz
cd ibmonitor
If you want to run the application use the following command

Once you are in ibmonitor folder use
./ibmonitor


pktstat
pktstat listens to the network and shows the bandwidth being consumed by packets of various kinds in realtime. It understands some protocols (including FTP, HTTP, and X11) and adds a descriptive name next to the entry (e.g., ‘RETR cd8.iso’, ‘GET http://slashdot.org/’ or ‘xclock -fg blue’).

Install pktstat on Ubuntu:
sudo apt-get install pktstat
To launch pktstat just enter pktstat at the terminal.



tcptrack
tcptrack is a sniffer which displays information about TCP connections it sees on a network interface. It passively watches for connections on the network interface, keeps track of their state and displays a list of connections in a manner similar to the unix ‘top’ command. It displays source and destination addresses and ports, connection state, idle time, and bandwidth usage.

Install tcptrack on Ubuntu:
sudo apt-get install tcptrack
To launch tcptrack just enter sudo tcptrack -i eth0 at the terminal.

tcptrack can also take a pcap filter expression as an argument. The format of this filter expression is the same as that of tcpdump and other libpcap-based sniffers. The following example will only show connections from host 10.1.1.2
tcptrack -i eth0 src or dst 10.1.1.2
The next example will only show web traffic (ie, traffic on port 80)
tcptrack -i eth0 port 80
MRTG
MRTG (Multi Router Traffic Grapher) is free software for monitoring the traffic load on network links. It allows the user to see traffic load on a network over time in graphical form.  MRTG is used by programs like Cacti to gather and graph stats over time.

Cacti
Cacti is a complete network graphing solution designed to harness the power of RRDTool’s data storage and graphing functionality. Cacti provides a fast poller, advanced graph templating, multiple data acquisition methods, and user management features out of the box. All of this is wrapped in an intuitive,easy to use interface that makes sense for LAN-sized installations up to complex networks with hundreds of devices.

Cacti is great for gathering stats over time (using both MRTG and RRDTool) and creating hourly, daily, weekly, monthly and yearly graphs.  These graphs can be invaluable in identifying trends and potential problems.  In fact, just today I used the following graphs to identify a problem on my corporate network:



Here's another one showing network utilization over time.



1 comment:

  1. I am looking for the SonicWall NSA series (SonicOS Enhanced) host template (where the interfaces are graphed, in addition to Memory, CPU, etc...)

    Is it possible if you can share it?

    Thanks

    Alim Pervizi
    apervizi@ridgewood.k12.nj.us

    ReplyDelete