Real time application bandwidth monitoring

Costa Tsaousis edited this page Apr 8, 2016 · 2 revisions

General


Running Netdata


Alarms

Backends


Netdata Registry


Monitoring Info


Netdata Badges


Data Collection

Binary Modules

Python Modules

Node.js Modules

BASH Modules


API Documentation


Web Dashboards


Running behind another web server

Advanced configurations


Donations


Blog


Other monitoring tools

Clone this wiki locally

this is incomplete!

Overview

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?

qos

The solution is very simple:

  1. Use FireQOS to classify traffic for each application, at the network interface level
  2. 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

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:


interface 

You can apply it using the command:

fireqos start

If you need more help to set it up, you can also follow the FireQoS tutorial.