CGP icon indicating copy to clipboard operation
CGP copied to clipboard

Snmp support for the IF-MIB

Open stackmagic opened this issue 12 years ago • 0 comments

Hi

Here's a little update to the snmp plugin so it supports data retrieved via the IF-MIB (RFC2233: https://tools.ietf.org/html/rfc2233 ): https://github.com/stackmagic/CGP/commit/68edff3491ef9bbe6f815b60a7f1c8e98416b246

It supports several pieces of information such as in/out for octetc, errors, unicast, multicast, broadcast for each port of a switch (or other device that supports the IF-MIB).

The collectd configuration required is as follows:

<Plugin snmp>
    <Data "traffic">
        Type "net_if_octets"
        Table true
        Instance "IF-MIB::ifDescr"
        Values "IF-MIB::ifInOctets" "IF-MIB::ifOutOctets"
    </Data>

    <Data "errors">
        Type "net_if_errors"
        Table true
        Instance "IF-MIB::ifDescr"
        Values "IF-MIB::ifInErrors" "IF-MIB::ifOutErrors"
    </Data>

    <Data "discards">
        Type "net_if_discards"
        Table true
        Instance "IF-MIB::ifDescr"
        Values "IF-MIB::ifInDiscards" "IF-MIB::ifOutDiscards"
    </Data>

    <Data "unicast">
        Type "net_if_unicast_pkts"
        Table true
        Instance "IF-MIB::ifDescr"
        Values "IF-MIB::ifInUcastPkts" "IF-MIB::ifOutUcastPkts"
    </Data>

    <Data "broadcast">
        Type "net_if_broadcast_pkts"
        Table true
        Instance "IF-MIB::ifDescr"
        Values "IF-MIB::ifInBroadcastPkts" "IF-MIB::ifOutBroadcastPkts"
    </Data>

    <Data "multicast">
        Type "net_if_multicast_pkts"
        Table true
        Instance "IF-MIB::ifDescr"
        Values "IF-MIB::ifInMulticastPkts" "IF-MIB::ifOutMulticastPkts"
    </Data>

    <Host "YOUR_SWITCH">
        Address   "YOUR_SWITCH"
        Version   2
        Community "public"
        Collect   "traffic" "errors" "discards" "unicast" "broadcast" "multicast"
    </Host>

You'll also need additional collectd types and reference them from the collectd config:

net_if_octets         ifInOctets:DERIVE:0:U,        ifOutOctets:DERIVE:0:U
net_if_errors         ifInErrors:DERIVE:0:U,        ifOutErrors:DERIVE:0:U
net_if_discards       ifInDiscards:DERIVE:0:U,      ifOutDiscards:DERIVE:0:U
net_if_unicast_pkts   ifInUcastPkts:DERIVE:0:U,     ifOutUcastPkts:DERIVE:0:U
net_if_broadcast_pkts ifInBroadcastPkts:DERIVE:0:U, ifOutBroadcastPkts:DERIVE:0:U
net_if_multicast_pkts ifInMulticastPkts:DERIVE:0:U, ifOutMulticastPkts:DERIVE:0:U

On debian, the mib can be installed via aptitude install snmp-mibs-downloader the mid definition is then available at /usr/share/mibs/ietf/IF-MIB

Manual querying would work like this `snmpwalk -v 2c -c YOUR_COMMUNITY -m ALL YOUR_SWITCH ifInUcastPkts?

Cheers!

stackmagic avatar Mar 05 '14 17:03 stackmagic