left header graphic The Network People
Solutions for Hosting Providers
right header graphic

rrdutil readme home : internet : manage : rrdutil : rrdutil changes credits

2.20 - Jun XX, 2005

  • • added a new "all" feature for network interfaces. Specify the interface "all" and rrdutil will automatically monitor all available network interfaces. This is much more efficient than specifying several interfaces, as it requires fewer SNMP polls. If you enable "all", you'll want to manually move the old net_eth*.rrd files to their new net_XXX.rrd equivalents.
  •  
  • • added a "combined" feature for apache stats. Rather than having to poll Apache server-status three times, the combined option collects all the data from one request. This requires almost exactly 1/3 the resources previously necessary. Changes made to contrib/apastat.pl, rrdutil.conf-dist, Graphs.pm, SNMP.pm, and RRDutil.pm.
  •  
  • • merged two MySQL graphs into one. This one graph contains all the data that was previously on two. Merging them requires fewer resources (one SNMP poll instead of two). Updated contrib/mysqlstatus.pl, Graphs.pm, SNMP.pm, and RRDutil.pm. If you choose to use this feature, you must update your mysqlstatus.pl and snmpd.conf (per the example in contrib). You can do this with the "make conf" and "make snmp" targets.
  •  
  • • Graphs.pm
    • • added formatted_timestamp sub. This consolidates all the Date::Format calls into one sub and lets us easily depreciate the use of Time::Date in favor of using the date variables present in rrdtool 1.2.
    • • moved all of Rob's font definitions into the sub font_set. Now you can alter the font and size in one place to change all graphs. Perhaps we'll have config file options for this soon to further enhance the graphs aesthetic qualities.
  • • SNMP.pm
    • • added basic support for p5-SNMP (different than Net-SNMP) but it's not fully implemented
    • • added _formatted sub for cleaning up verbose output. Run "rrdutil.cgi -a update -v" to see debugging, it's much prettier and better formatted now.
    • • various error messages contain more details now
  •  
  • • updated rbl blocking - NOTICE!!!
    • you must update your rrd rbl database. This file is defined by a line in rrdutil.conf that looks something like this:
      • monitor31 = localhost, mail, rbl, mail_rbl_blocks
    • For such a case, you'd edit the /usr/local/rrdutil/data/localhost/mail_rbl_blocks as follows:
      • cd /usr/local/rrdutil/data/localhost
      • rrdtool tune mail_rbl_blocks.rrd -r smtp_block_rbl:smtp_block_sorbs
      • rrdtool tune mail_rbl_blocks.rrd -r smtp_block_dns:smtp_block_ignorant
      • rrdtool tune mail_rbl_blocks.rrd -r smtp_block_other:smtp_block_services
  • • added malformed blocked message graph that counts and graphs the following: badhelo, badmailfrom, badmailto, no reverse DNS, failed SPF, invalid users, and other.
    • requires adding: monitor34 = localhost, mail, malformed, mail_malformed to rrdutil.conf.
    • requires maillogs from Mail::Taster 4.08
  •  
  • • colors for rbl & malformed graphs are defined by colors = xx in rrdutil.conf
  • • colors = in rrutil.conf can optionally include human readable colors instead of HTML colors
  •  
    • submitted by Rob Lensen
  • • added custom font & size option for use with rrdtool 1.2+
  • • graph networks interfaces using the 95th percentile if using rrdtool 1.2+
  • • added support for pf monitoring
  • • updated (c) year to 2005
  • • select_all option wasn't working
  •  
    • submitted by Patrick Gelsema at superhero dot nl
  • • moved disk color codes from Graphs.pm to rrdutil.conf
  • • moved web group color codes to rrdutil.conf

2.08 - Feb 07, 2005

  • - lib/RRDutil.pm
    • - added /opt/local/lib/perl for Darwin
  • - lib/RRDutil/Graphs.pm
    • - added /opt/local/lib/perl for Darwin
  • - Makefile.PL
    • - added detection of web root for Linux & Darwin
    • - added detection of htocs for Linux & Darwin
  • - rrdutil.conf
    • - added additional platform specific examples for html docs directory
  • - rrdutil.pl
    • - program exits 0 on no error
  • - t/RRDs.t
    • - added /opt/local/lib/perl for Darwin

2.07 - Dec 07, 2004

  • - added --units-exponent=1 to load graph
  • - forgot to set SNMPDIR in Makefile.PL
  • - added debug = 0 to rrdutil.conf
  • - cgi: don't override $conf{bits} from rrdutil.conf

submitted by Erik at microcontroller dot nl

  • - reworked the network graphs to display values correctly
  • - sort the network interfaces before displaying them
  • - added bits = 1 to rrdutil.conf
  • - added 1/2 day display for HTML form

2.06 - Nov 24, 2004

  • - Updated Load graph so that load averages above 1 graph per suggestion from Rob Lensen
  • - removed MATT::* dependency from contrib/mysqlstatus.pl
  • - Imported latest Utility.pm & Perl.pm and their t/*.t files
  • - Makefile.PL will detect /etc/httpd/cgi-bin and /var/www/cgi-bin for Linux compatability

2.05 - Nov 12, 2004

  • - Oops, I *thought* I had removed all the Mail::Toaster dependencies. I had included Perl.pm but not updated the calls to it in rrdutil.pl. --fixed.

2.04 - Nov 11, 2004

  • - fixed the days display problem
  • - added troubleshooting entry to FAQ
  • - added -v to usage output so folks can find it

2.03 - Nov 11, 2004

  • - removed Mail::Toaster dependency
  • - massive changes in .pm files due to OO programming updates
  • - create objects: $utility, $rrdutil, $graphs, $html, $snmp
  • - minor code revisions for increased legibility
  • - moved *.pm back into RRDutil distribution from Mail::Toaster now that the code is better, it's very easy to use and re-use
  • - added more tests for enhanced reliability
  • - RRDutil.pm
    • - added sub: new
    • - no subs exported, Exporter removed
    • - get_graph_types was GetGraphTypesForHost
    • - get_requested_graphs was GetListOfRequestedGraphs
    • - create_rrd_db was CreateRRDDatabase
    • - parse_config was ParseConfigIntoHashes
    • - get_hosts was GetListOfHosts
    • - get_polls was GetListOfPolls
    • - check_datadir was CheckDataDir
    • - check_html_dir was CheckHTMLDir
  • - RRDutil/Graphs.pm
    • - added sub: new
    • - no subs exported, Exporter removed
    • - create objects: $utility, $rrdutil
    • - generate was GenerateGraphs
    • - changes as necessary due to Mail::Toaster OO updates
  • - RRDutil/HTML.pm
    • - added sub: new
    • - no subs exported, Exporter removed
    • - create objects: $utility, $rrdutil
    • - graphs was PrintHTMLGraphs
    • - request was PrintHTMLRequest
    • - js_timer was PrintJavaScriptTimer
    • - footer was PrintHTMLFooter
    • - footer print was a printf, modified for efficiency
  • - RRDutil/SNMP.pm
    • - added sub: new
    • - no subs exported, Exporter removed
    • - create objects: $rrdutil
    • - update_rrds was UpdateRRDs
    • - start_session was StartSessionSNMP

2.01 - Sep 10, 2004

  • - moved $days into a local variable
  • - maked the pidfile checking more robust

2.0 - Jul 31, 2004

  • - The script had reached over 3000 lines so I Moved much of the script contents into Mail::Toaster::RRDutil::* That should make future code maintenance easier.
  • - As a consequence, the Mail::Toaster modules are now absolutely required to use rrdutil. That's not much of a change, as RRDutil already used Mail::Toaster::Utility extensively.
  • - writes a lock file (/var/run/rrdutil.pid) when it's doing updates (via cron). RRDutil will not update graphs if that file exists and is younger than 1 hr.

1.81 - May 14, 2004

  • - octets are bytes, not bits! Now network interfaces report correctly.
  • - use numerical operator > instead of gt at line 905

1.80 - Apr 21, 2004

  • - Fixed error in .pl that prevented Apache checkbox from appearing in HTML request form
  • - install sbin/*stat.pl files from contrib when doing a make conf
  • - updated rrdutil.conf file
  • - The default snmp on Darwin has no system/load oids so we gracefully deal with a noSuchObject response

1.79 - Mar 20, 2004

  • - Rob Lensen added the Apache monitoring support
    • - very nifty. :)
    • related changes made to rrdutil.pl, rrdutil.conf, contrib/apastat.pl, contrib/snmpd.conf
  • - Matt
    • - updated documentation in rrdutil.pl, contrib/*.pl.
    • - added additional install targets in Makefile.PL
    • - added additional doc targets in Makefile.PL

1.78 - Mar 15, 2004

  • - Updated LoadModule call for Net::SNMP for new net-mgmt ports location.

1.77 - Mar 12, 2004

  • - Rob Lensen added select_all_by_default option

1.75 - Mar 10, 2004

  • - rrdutil.pl: added a configurable SNMP timeout
  • - rrdutil.conf: added snmp_timeout setting
  • - Added 'make cgi' target. Now your cgi-bin location

is guessed based on the default for your OS.

1.74 - Dec 18, 2003

  • - Added refresh interval - had to use Javascript timer

that does a form submit after the determined interval

so that it can remember what graphs and hostname you

were looking at.

  • - Added http_refresh_minutes to rrdutil.conf file
  • - Put hostname in the HTML table

1.73 - Dec 18, 2003

  • - Added support for mbmonstatus (Rob Lensen contributed)
  • - updated graph defs for mysql (Rob Lenson)

1.72 -

  • - More descriptive error messages for CheckFileReadable

1.71 - Nov 19, 2003

  • - Added maillogs to contrib folder
  • - updated HTML page to look nicer and use less space
  • - Added message telling you to select a graph type if

none are shown.

  • - Fed HTML output through a parser and cleaned it up
  • - added additional targets to "make newconf" to install

the mysqlstatus.pl script, create the default rrdutil

data and html directories.

  • - also install new RRDUtil.tar.gz into html dir as part

of "make web" target (internal use)

  • - Fixed two typos in the FAQ
  • - Fixed typos and spelling errors in the Change log

1.70 - Nov 10, 2003

  • - added Mysql graphing ( Rob Lensen rob at bsdfreaks.nl)
  • - Added contrib directory with mysqlstatus.pl
  • - Updated mysqlstatus with MATT::Mysql support (uses ~/.my.cnf instead of hard coding in mysql auth info)
  • - Updated graph definitions for Mysql graph (aesthetics)
  • - added code so that only graphs available for the selected host show up in the HTML request form.
  • - Automatically refresh the html form when you change

anything in the submit line (days, host)

  • - Added snmpd.conf to contrib directory

1.61 - Nov 01, 2003

  • - added "make web" target to simply updating web page
  • - added INSTALLATION pod section to rrdutil.pl
  • - Updated ParseConfigIntoHashes due to the Oid def move
  • - NOTICE: moved OIDs definitions from .pl to .conf file. This is a MAJOR change. You will need to update your config file and add the OID definitions. This can be as easy as deleting everything in the rrdutil.conf-dist file and then "cat rrdutil.conf-dist >> /usr/local/etc/rrdutil.conf"
  • - Added CVS id tags to files

1.60 - Oct 31, 2003

  • - Added build files so that RRDutil is a honest perl module
  • - Podified docs so that I can easily keep files in module and on my web site updated. "make docs" is the target.
  • - A new graph for spamassassin and qmail-scanner logs (will look nicer in the future)
  • - Minor improvements to RBL logging for more reliable counting.

1.5.7 - Oct 23, 2003

  • - Disk storage graph wasn't being updated via the CGI due to 1.5.5 changes. Fixed.
  • - Added webmail and smtpauth logging to Mail User Agent graph

1.5.6 - Sep 25, 2003

  • - Added host name to the HTML title

1.5.5 - Sep 22, 2003

  • - All disk related graphs are displayed under a single "disks" item in the HTML menu. You can control what is logged and graphed on each page via the configuration file.
  • - Added Memory graph
  • - Added additional CPU graph (user -vs- system)

1.5.3 - Sep 21, 2003

  • - Fixed a bug in ParseConfigFiles that prevented polls for subsequent (after the first) systems to get skipped.
  • - Added additional logic to UpdateDiskActivitySNMP sub to handle polling more than one disk (disk i/o)
  • - Fully qualified calls to Date::Format::time2str

1.5.2 - Sep 21, 2003

  • - Added MATT::Perl so we can auto-install missing perl modules

1.5.0 - Sep 18, 2003

  • - Finalized the new config file format, got it working
  • - Massive code reworking nearly everywhere to get new config file format working. Mainly due to lazy assumptions I made earlier regarding host names, etc. New format allows for monitoring many hosts.
  • - Errors get passed up through to the browser better. Now when a graph doesn't display you should get some useful clues.
  • - Lots and lots of debugging code added.
  • - Could still use more documentation but it's publishable now.

1.4.3 - Sep 02, 2003

  • - Added rrdutil.conf file

1.4.2 - Jul 07, 2003

  • - Added POD documentation
  • - Added MATT::Utility dependency

1.4.1 - May 24, 2003

  • - Merged with MATT::* perl modules to simplify code maintenance
  • - Updated web site with fresh Change log

1.4 - May 12, 2003

  • - Revamped a bunch of the mail processing stuff (again)
  • - More reliable, and easier to configure now

1.3 - Apr 24, 2003

  • - Added $url in case you don't store images where I do
  • - Added BEGIN checks for rrdtool, Net::SNMP, dependencies.

1.2 - Mar 28, 2003

  • - Started over on mail processing. Rewrote maillogs to return counters. Now collect all mail stats in real time and feed them into RRDs (rather than having external apps do it.
  • - Mail log counter retrieval and storage
  • - Reworked the GetGraph*Def subs into Graph* subs for simpler expansion and easier future maintenance.
  • - Reworked the Get*SNMP subs into Update*SNMP subs for simpler expansion and easier future maintenance.

1.1 - Mar 19, 03

  • - Stop complaining before daily web log file is created.
  • - Web hits can be aggregated (many vhosts, one graph) or individual. This is particularly useful if you have one vhost that represents 90% of your servers traffic.
  • - Added support for www hits (integrates with logmonster)
  • - When triggered via CGI, only generate graphs requested. Command line (-a graph) still rebuilds all graphs. More scalable.
  • - Added lots of error checking. Instead of dying when we encounter errors, print out helpful error messages and resume gracefully.

1.0.0 - Mar 15, 03

  • - This script works amazing well.
  • - Added CGI.pm support - works great!
  • - Collect & store ( disk, network, and cpu activity, system load, disk and memory usage (memory reporting has issues)
  • - Build graph definitions for all the above. This was a LOT of work to get all that information displayed nice and pretty. I borrowed the load graph design from an example in the rrdtool gallery. My code, I created it, but based on someone elses design. Learned a lot about RPN. RPN should RIP.
  • - Integrated Net::SNMP perl module - works great. :)
  • - Creates new *.rrd files if they don't exist.
  • - 3 primary functions (create, update, graph)
  • - Config format for deciding what to monitor.
  • - Integrated support for RRD databases (via RRDs) perl module
  • - Initial authoring (on FreeBSD 4.7, ucd-snmp 5, rrdtool 1.0.41)

Last modified on 6/7/05.