Difference between revisions of "Plugin:Netlink"

From collectd Wiki
Jump to: navigation, search
(Remove the "Plugins requiring privileges" after feedback from Bruno Prémont.)
Line 45: Line 45:
* Linux 2.4 or later
* Linux 2.4 or later
* <code>libnetlink</code>
* <code>libnetlink</code>
* <code>libmnl</code>

Revision as of 15:39, 29 June 2020

Netlink plugin
Type: read
Callbacks: config, init, read, shutdown
Status: supported
First version: 4.1
Copyright: 2007 Florian octo Forster
License: GPLv2
Manpage: collectd.conf(5)
List of Plugins


The Netlink plugin will open a netlink socket to the Linux kernel and use it to get statistics for interfaces, qdiscs, classes, and, if you can make use of it, filters. Since in most setups many of the statistics this plugin can collect aren't of interest, you can select which information to gather using the configuration. The details are documented in the collectd.conf(5) manpage.

The interface statistics has been split up in two parts:

  • The normal interface statistics include exactly the same information as is collected by the Interface plugin – it's only collected in another way.
  • The verbose interface statistics give you all the other details that are available: Number of dropped packets, number of multicast packets, and RX- and TX-errors by error types. Under Linux, you cannot get any more verbose than that. These statistics basically correspond to the values returned by:
# ip -s -s link list

But extended interface statistics is not all. The Netlink plugin can also gather statistics from Linux' traffic control subsystem, i. e. the bytes and packets that passed a certain qdisc, class, or filter. I'm afraid there is no one sentence answer to what all that is, but there's an article in the LARTC HowTo which tries to explain that. If you have a traffic shaping or Quality of Service (QoS) setup and you need or want to know how much traffic is going over which qdisc or class, this is the right plugin for you.

Graphing filters is a bit troublesome: Filters don't have an ID of their own, so the parent's ID (i.e. the QDisc's handle, since filters always belong to a QDisc, classes cannot have filters attached to them) is used. This may not result in a unique name if there is more than one filter attached to that qdisc or class. If you want to get statistics about different traffic types, please have a look at the IP-Tables plugin.


<Plugin "netlink">
  Interface "eth0"
  Interface "ppp0"
  VerboseInterface "ppp0"
  QDisc "ppp0"
  Class "ppp0" "htb-1:10"
  Filter "ppp0" "u32-1:0"
  IgnoreSelected false

Example graphs

Plugin-netlink-if rx errors.png Plugin-netlink-if tx errors.png Plugin-netlink-ipt bytes.png Plugin-netlink-ipt packets.png


  • Linux 2.4 or later
  • libnetlink
  • libmnl