bmon is a simple terminal program which allows you to watch graphs showing network traffic and other network information. It can also show a detailed view with all kinds of network statistics. It is light with few dependencies. It is a simple, handy and easy to use network monitoring tool.
bmon with no arguments starts it with it's curses interface. That's what you want most of the time. There is also a ascii "interface" available with
-o ascii - that mode will just dump a list of network interfaces and their traffic to the terminal (no nice graphs).
The pretty default curses interface will show a list of network interfaces and their traffic with graphs indicating incoming and outgoing traffic on the bottom. The d key activates a detailed view with all kinds of incriminating information such as multicast packets sent and received, CRC errors and a whole lot of other details which may be useful for debugging purposes.
The graphs on the bottom will by default show throughput per second. The Tab ↹ key can be used to switch between seconds, minutes, hours and days.
The up and down arrow keys can be used to switch between a machines interfaces.
The right and left arrow keys can be used to change the graph from it's default
RX bytes and
TX bytes view to
RX Abort Errors,
RX Collisions and a few other things. The default RX/TX bytes view is the only generally interesting graph; the rest are not at all interesting unless you are debugging or troubleshooting.
bmon's defaults can be configured using the files
$HOME/.bmonrc. There is no reason to touch those files.
The bmon manual page lists some command-line options you won't need but not the curses navigation keys. It's not very interesting.
Most GNU/Linux distributions have a old version of bmon available under a package which is simply named
bmon. It works but you are better of going directly go the git source. Version 4.0 has colors; version 3.6, which is included in CentOS, and older versions are limited to black and white.
Installation from source on Debian, Ubuntu and Linux Mint is as easy as:
git clone https://github.com/tgraf/bmon.git cd bmon sudo apt-get install build-essential make libconfuse-dev libnl-3-dev libnl-route-3-dev libncurses-dev pkg-config dh-autoreconf sudo ./autogen.sh sudo ./configure sudo make sudo make install
and installation on CentOS and RHEL:
git clone https://github.com/tgraf/bmon.git cd bmon sudo yum install make libconfuse-devel libnl3-devel ncurses-devel sudo ./autogen.sh sudo ./configure sudo make sudo make install
git clone https://github.com/tgraf/bmon.git cd bmon sudo dnf install make libconfuse-devel libnl3-devel ncurses-devel sudo ./autogen.sh sudo ./configure sudo make sudo make install
You could, alternatively, get the "Latest Release" tarball from the closest thing bmon has to a homepage at github.com/tgraf/bmon. git hasn't been updated in years as of late 2019 so it is unlikely that there is any difference.