DISQUS

Homo-Adminus Blog: How To Get Data For Mrtg Without Running SNMP Daemon?

  • kotnik · 3 years ago
    Works excellent! Thanks! I've tried snmp with Cacti, but it almost killed my poor router. Now, it's graphing easily :)

    Just one sidenote. If you're installing clean mrtg, then add this to mrtg.conf:

    WorkDir: /var/www/htdocs/mrtg

    That direcotory will be a place where mrtg will dump pngg raphs, log and html files.

    Thanks Alexey!
  • Scoundrel · 3 years ago
    I am really glad that this small note can help you. And thanks for your comment.
  • Jon · 3 years ago
    Cool stuff! Even if the load of an SNMP daemon wasn't an issue (and it is for me); this saves you worrying about configuring communities properly, security issues, etc.
  • Bor · 3 years ago
    Необязательно как скрипт делать ;)
    вот поделюсь своими


    #####################################################################
    #
    # eth0 traffic graphing section from /proc/net/dev
    # change "grep eth0" to something else to measure a different device
    #
    Target[eth0]: `perl -e '@a=split(/[:\s]+/,qx(grep eth0 /proc/net/dev));printf "%.0f\n%.0f\n1\neth0 traffic\n",$a[2],$a[10];'`;
    Options[eth0]: dorelpercent, growright, nobanner, noinfo, transparent
    MaxBytes[eth0]: 2000000
    AbsMax[eth0]: 10000000
    kilo[eth0]: 1024
    YLegend[eth0]: Bytes per second
    ShortLegend[eth0]: B/s
    Legend1[eth0]: Incoming Traffic in Bytes per second
    Legend2[eth0]: Outgoing Traffic in Bytes per second
    LegendI[eth0]: In:
    LegendO[eth0]: Out:
    Title[eth0]: net eth0 traffic
    PageTop[eth0]: net eth0 traffic
    #####################################################################

    #####################################################################
    # # alternative eth0 traffic graphing section
    # using "sar" instead of /proc/*
    #
    Target[eth0sar]: `perl -e 'printf "%.0f\n%.0f\n1\neth0sar traffic\n",(qx(/usr/bin/sar -n DEV | grep eth0 | tail -n 2)=~/eth0\s+[^\s]+\s+[^\s]+\s+([^\s]+)\s+([^\s]+)/)'`;
    Options[eth0sar]: dorelpercent, gauge, growright, nobanner, noinfo, transparent
    MaxBytes[eth0sar]: 2000000
    AbsMax[eth0sar]: 10000000
    kilo[eth0sar]: 1024
    YLegend[eth0sar]: Bytes per second
    ShortLegend[eth0sar]: B/s
    Legend1[eth0sar]: Incoming Traffic in Bytes per second
    Legend2[eth0sar]: Outgoing Traffic in Bytes per second
    LegendI[eth0sar]: In:
    LegendO[eth0sar]: Out:
    Title[eth0sar]: net eth0sar traffic
    PageTop[eth0sar]: net eth0sar traffic
    #####################################################################
  • Scoundrel · 3 years ago
    2Bor: Thanks for example, but such complex config file is not so easily readable/modificable and that is why I've created my script ;-)
  • sb · 3 years ago
    Traffic monitoring without snmp has at least two caveats:

    1) The counters in /proc/net/dev (and in the output of ifconfig etc.) are 32bit and will overflow at around 4GiB. SNMP agents (should!) use 64bit counters.

    2) Related to (1), the SNMP client can tell if the counter has been reset because of a reboot, as it knows the server's uptime (SysUpTime).

    Have you tried tinysnmp? Its memory footprint is smaller than perl's ;-)
  • Jon · 3 years ago
    sb: is that true (the counter-size) even for 64 bit Linux?
  • Dusan · 2 years ago
    Hi,

    Do you have any idea how to get this script working on OpenBSD? There is no /proc/net/dev on OpenBSD.
    Anyway, nice script, thanks :)
  • Свадебный форум · 2 years ago
    As for me i don't like OpenBSD.
    So, Linux Forewer ))))
  • Andrea · 2 years ago
    Hi,
    i've installed get_if_stats.pl, and my configuration is:

    Target[webpec1eth0]: `/usr/local/bin/get_if_stats.pl eth0`
    Options[webpec1eth0]: gauge,noinfo, nopercent, growright, nobanner
    Title[webpec1eth0]: Traffico IN/OUT(eth0)
    MaxBytes[webpec1eth0]: 100000000
    PageTop[webpec1eth0]: Traffico interfaccia (eth0)
    #
    Target[webpec1eth1]: `/usr/local/bin/get_if_stats.pl eth1`
    Options[webpec1eth1]: gauge,noinfo, nopercent, growright, nobanner
    Title[webpec1eth1]: Traffico IN/OUT(eth1)
    MaxBytes[webpec1eth1]: 100000000
    PageTop[webpec1eth1]: Traffico interfaccia (eth1)

    Eth0 graph is correct, while the eth1 graph shows empty values ?
    If I run the script on command line I get:
    227419173
    261530900
    0
    0

    thanks

    andrea b
  • Hamlesh · 2 years ago
    Perfect, just what I needed - thanks :)