Real time application bandwidth monitoring
Clone this wiki locally
this is incomplete!
Per application bandwidth monitoring is Linux, is problematic. The Linux kernel does not expose counters for the bandwidth its processes send or receive.
So how can we get bandwidth charts like this?
The solution is very simple:
- Use FireQOS to classify traffic for each application, at the network interface level
- Use Netdata to visualize them in real-time
You can install these packages, on every server - and / or a Linux router that all the traffic passed through. Usually I do both. I install a basic FireQOS configuration on each server (no need for actual traffic shaping - just classification) and a more complex FireQOS configuration at the core routers of my DMZ.
Let's see an example:
FireQOS is part of FireHOL. If you install the firehol package using your linux distribution package manager, you will most probably get FireQOS too. Otherwise, you can follow this procedure to install all the FireHOL tools directly from source.
FireQOS will setup
tc classes and filters. Everything is handled by the Linux kernel, so you don't need to run a daemon. You configure it, you run it just once, and this is it.
You need a FireQoS configuration file (
/etc/firehol/fireqos.conf) like this:
You can apply it using the command:
If you need more help to set it up, you can also follow the FireQoS tutorial.