Home page Net-SNMP

Archive Search:

Require all words?

Site Search:
NET-SNMP Tutorial -- MRTG

NET-SNMP Tutorial -- MRTG

This page will present a few ideas of what you can monitor on your hosts with the net-snmp using the mrtg utility.

This is not an MRTG tutorial, and it is not going to talk about monitoring network traffic.

Note, that these examples uses values that are only available from net-snmp-4.2 or above and that the LoadMIBs mrtg directive requires mrtg-2.8.0.

Monitoring CPU load

There are several ways to try to monitor CPU usage, because the system maintains several CPU counters: Idle, System, User, Nice. As MRTG does not allow you to graph more than two values at a time, it is possible to select any two values ang graoh aginst each other, but it it also possible to compute a combined value.

User vs Idle CPU usage

An example of such a graph is here.

The corresponding MRTG configuration is

    LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt

    RouterUptime[kontor.cpu]: public@
    MaxBytes[kontor.cpu]: 100
    Title[kontor.cpu]: CPU LOAD
    PageTop[kontor.cpu]: <H1>User CPU Load %</H1>
    Unscaled[kontor.cpu]: ymwd
    ShortLegend[kontor.cpu]: %
    YLegend[kontor.cpu]: CPU Utilization
    Legend1[kontor.cpu]: User CPU in % (Load)
    Legend2[kontor.cpu]: Idle CPU in % (Load)
    LegendI[kontor.cpu]:  User
    LegendO[kontor.cpu]:  Idle
    Options[kontor.cpu]: growright,nopercent

User vs System CPU usage

An example of such a graph is

The corresponding MRTG configuration is

    LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt

    RouterUptime[kontor.usrsys]: public@
    MaxBytes[kontor.usrsys]: 100
    Title[kontor.usrsys]: CPU LOAD
    PageTop[kontor.usrsys]: <H1>CPU (user and system) Load %</H1>
    Unscaled[kontor.usrsys]: ymwd
    ShortLegend[kontor.usrsys]: %
    YLegend[kontor.usrsys]: CPU Utilization
    Legend1[kontor.usrsys]: User CPU in % (Load)
    Legend2[kontor.usrsys]: System CPU in % (Load)
    LegendI[kontor.usrsys]:  User
    LegendO[kontor.usrsys]:  System
    Options[kontor.usrsys]: growright,nopercent

Active CPU usage

An example of such a graph is
here. This example sums User, System and Nice and plots it as a single value.

The corresponding MRTG configuration is

    LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt

    Target[kontor.cpusum]:ssCpuRawUser.0&ssCpuRawUser.0:public@ + ssCpuRawSystem.0&ssCpuRawSystem.0:public@ + ssCpuRawNice.0&ssCpuRawNice.0:public@
    RouterUptime[kontor.cpusum]: public@
    MaxBytes[kontor.cpusum]: 100
    Title[kontor.cpusum]: CPU LOAD
    PageTop[kontor.cpusum]: <H1>Active CPU Load %</H1>
    Unscaled[kontor.cpusum]: ymwd
    ShortLegend[kontor.cpusum]: %
    YLegend[kontor.cpusum]: CPU Utilization
    Legend1[kontor.cpusum]: Active CPU in % (Load)
    LegendI[kontor.cpusum]:  Active
    Options[kontor.cpusum]: growright,nopercent

Monitoring DISK space

There are two tables that can be used when monitoring disk space, UCD-SNMP-MIB:dskTable and HOST-RESOURCES-MIB:hrStorageTable. There are two noticeable differences bwtween these tables: UCD-SNMP-MIB:dskTable requires a configuration directive in snmpd.conf, but it also gives a direct measure of the percentage of free space

On the system I used for these examples, I have the following disks:

    $ df
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/hda6             289M   56M  218M  21% /
    /dev/hda1             7.3G  3.2G  4.1G  44% /mnt/windows
    /dev/hda7             1.7G  1.2G  429M  74% /usr
    /dev/hdc1              19G  6.7G   11G  37% /space
and I have put the following lines into snmpd.conf:
    disk	/	100000
    disk	/usr	100000
    disk	/space	100000

Monitoring from dskTable

I used the direct percentage of disk full for the root and /usr partitions in
this example It plot the usage of the root and the /usr partitions in one graph.
    LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt

    RouterUptime[kontor.root]: public@
    MaxBytes[kontor.root]: 100
    Title[kontor.root]: DISK USAGE
    PageTop[kontor.root]: <H1>DISK / and /usr Usage %</H1>
    Unscaled[kontor.root]: ymwd
    ShortLegend[kontor.root]: %
    YLegend[kontor.root]: DISK Utilization
    Legend1[kontor.root]: Root disk
    Legend2[kontor.root]: /usr disk
    LegendI[kontor.root]:  Root disk
    LegendO[kontor.root]:  /usr disk
    Options[kontor.root]: growright,gauge,nopercent

Monitoring from hrStorageTable

Use of hrStorageTable requires no preceding configuration, as in
this example It plot the partition size as one value, and the used space as another. Note:the values returned here are in units of hrStorageUnits, which, dependent on the file system type, may or may not be 1K.
    LoadMIBs: /usr/local/share/snmp/mibs/HOST-RESOURCES-MIB.txt

    RouterUptime[kontor.hrroot]: public@
    MaxBytes[kontor.hrroot]: 300000
    Title[kontor.hrroot]: DISK / USAGE
    PageTop[kontor.hrroot]: <H1>DISK / Usage</H1>
    ShortLegend[kontor.hrroot]: B
    kMG[kontor.hrroot]: k,M,G,T,P
    kilo[kontor.hrroot]: 1024
    YLegend[kontor.hrroot]: DISK / Utilization
    Legend1[kontor.hrroot]: Root disk size
    Legend2[kontor.hrroot]: Root disk usage
    LegendI[kontor.hrroot]:  Root disk size
    LegendO[kontor.hrroot]:  Root disk usage
    Options[kontor.hrroot]: growright,gauge,nopercent

Two further examples that have been offered:

Monitoring TCP connections

    Options[tcpopen]: nopercent,growright,gauge,noinfo 
    Title[tcpopen]: Open TCP connections 
    PageTop[tcpopen]: Open TCP connections
    MaxBytes[tcpopen]: 1000000 
    YLegend[tcpopen]: # conns 
    ShortLegend[tcpopen]: connections 
    LegendI[tcpopen]:  Connections: 
    Legend1[tcpopen]: Open TCP connections 


Monitoring Free Memory

    Options[freemem]: nopercent,growright,gauge,noinfo 
    Title[freemem]: Free Memory 
    PageTop[freemem]: Free Memory
    MaxBytes[freemem]: 1000000 
    kMG[freemem]: k,M,G,T,P,X 
    YLegend[freemem]: bytes 
    ShortLegend[freemem]: bytes 
    LegendI[freemem]:  Free Memory: 
    Legend1[freemem]: Free memory, not including swap, in bytes
The complete picture

Valid CSS!

Last modified: Thursday, 26-May-2011 23:21:32 UTC
For questions regarding web content and site functionality, please write to the net-snmp-users mail list.