RRDBROWSE README MODULES NFO FILE SYSOPSIS .nfo files are placed in the nfos directory in the rrdbrowse installation path (default /usr/local/etc/rrd/nfos). The .nfo files contain one or more variables and values depending on the extention used. This file tries to explain how variables in .nfo are used to gather data for several types of modules. Modules are the small perl snippets which gather data and plot them using rrdtool. GLOBAL REQUIRED FIELDS These fields are required in all .nfo files: Type: <name> Target: <variable> Description: <string> The Type: field contains the name of the module used to gather data. Examples are 'lincpu' to plot the CPU usage of a linux system, 'port' to plot the default snmp ifInOctets and ifOutOctets of an interface. Target: is the authenticator used to do the datagathering. If an SNMP-based object is used, the Target field must be community@address just like you would do in MRTG and or other applications which use the same snmp-perl modules as rrdbrowse. GLOBAL OPTIONAL FIELDS Bandwidth: <string> Connection: <string> Router: <string> Options: nowarn HRule: <value> The Bandwidth, Connection and Router keywords are only used to display them in the web interface. They are not used to gathering the data itself or for creating rrd databases. If you specify them you will see them in the show file detail output of the CGI script. The Options: field can have only one value at the moment; "nowarn". If you specify the nowarn option then there is no logging of snmp timeouts or other times when data can't be collected for some unknown reason. The HRule: displays a fixed red line in the rrdtool generated graph. The value of this field depends on the datatype used you are graphing. MODULE REQUIREMENTS Generic SNMP ifOctets modules: (port, port64, catalyst, catalyst64, errors) Target: community@address In: Description of the Incoming traffic Out: Description of the Outgoing traffic Interface: Exact textual description of the interface This module plots the in and out bytes of an interface on a router or other networked object with snmp access. The interface description is cached and refreshed every couple of hours. Cisco CAR rate-limit: (carlist) Target: community@address Interface: Exact textual description of the interface ListNr: acl number on interface The ListNr is the number of the access list on the interface. No, this is not the 'access-list XXX' number, but a plain counter which starts from 1. If you update the access-list the counter will rise, most of the time. This is still experimental software so snmp and me will have to find a way to stabelize the ListNr. If it doesn't work, raise or lower the number. Cisco Envinronment: (c72temp, ciscocpu, ciscoppp, memfree) Target: community@address The c72temp module reads 4 temperatures from your cisco. It's tested on 7200 and 7500 series routers. Depending on your configuration (and by default) it plots one Inlet and three Outlets. If you have a different setup you may have to edit the descriptions in the perl module c72temp.pm The ciscocpu prints the usage of the first 4 CPU's it finds. Most of you will have atleast one main cpu and one or more on one of the extention cards (VIPs) for example. The ciscoppp module plots the number of ppp connections in use. It's tested atleast 3600 series. Probably doesn't work in all cases. The memfree module plots the amount of free memory in your cisco. Linux Envinronment: (lincpu, linload, linmem, linmem22, linproc) Target: community@address For this to work you should have a running net-snmp setup. Besides Linux some of these modules will also work on FreeBSD or Solaris. The module lincpu and linload respectively plot the CPU and Load Average of your linux box. The lincpu plots the percentage of Nice, System and User CPU time. linload plots the 1, 5 and 15 minute load averages. linmem and linmem22 are used for plotting the memory usage of your machine. It plots the Real, Cache, Swap, Buffer and Cache memory. Use linmem22 for Linux 2.2 kernels and use linmem for 2.4 kernels. The module linproc plots the number of total number of processes. Linux Envinronment: (fsstat) Target: community@address Used to plot the number of open files. This needs the 'contrib' binary fsstats.sh copied and installed into net-snmp to a remote server. By default it kind of relies on this setup in your snmpd.conf: exec .1.3.6.1.4.1.2021.51 fsstats /usr/local/fsstats.sh This setup is however quite not how i wanted to have it what is could have been, or whatever. You should not rely on this module to be available in next releases of rrdbrowse. Linux Disk IO: (lindiskblk, lindiskio) Linux disk io modules can plot the number of blocks per second or the number of sectors per second from each physical disk. You have to create a port in inetd and output the command procstat.sh found in the contrib directory of the rrdbrowse distribution. Example inetd.conf entry: procstat stream tcp nowait root /usr/sbin/tcpd /usr/sbin/procstat.sh The first entry 'procstat' is the portnumber which you can specify in /etc/services. Don't forget, it's probably safe to setup tcp wrappers. The entry name in your hosts.allow file must be 'procstat.sh'. To plot the first physical disk, use nfo entries like: Target: port@host Disk: 8,0 Linux Open Files and Sockets: (linofiles, linsockets) These modules also make use of the procstat binary and caching mechanism. See the Linux Disk IO description on how to install procstat to your inetd. The Target: of the openfiles and sockets nfo file also must have the same portnumber: Target: port@host APC UPS: (apccurrent, apcload, apctemp, apctime) Target: community@address This module works with an with APC DP9606 management card. It's unclear if it works with other types or not. apccurrent Amount of current (ampere) in use at the output of the UPS. apctime Time left on the battery in case of an power outage. apctemp UPS envinronment temperature in Celcius. apcload Percentage of load on the output. Apache Counters: (apabpr, apabw, apacpu, apaproc, apaxs) Target: http://your.server.name/server-status?auto The Apache modules rely on the server-status module to be active. Please test to retrieve the above url with your browser and don't forget to add the ?auto to make Apache print it in system readable format. The apache modules basically print the same as the result provided from the above url. The module descriptions are: apabpr Average bytes per request apabw Bandwidth used on apache processes apacpu Apache CPU usage (unknown values, useless) apaproc Apache number of Idle and Active proesses apaxs The average number of access per second Generic TCP Response Time counter: (tcpres) Target: port@hostaddress Send: <string> This module connects to a host and optionally sends the strings specified in Send: to the target host. It measures the time it takes for the first line returned from the targethost. If no Send: line is specified it just waits for the first thing returned. \n is converted to a real return in the Send string. Here are a few examples. Send: HEAD / HTTP/1.0\n # http response times Send: HELO my.host.name # smtp helo response time Send: MODE READER # nntp response time Send: QUIT Bind Queries: (bindqrs) Target: port@hostaddress This module prints the number of A, PTR, MX and NS queries your nameserver are doing per second. Since a complete 'ndc stats' dump is cached you can quite possibly clone this module and plot other values. A remote inetd/telnet setup is needed for this module to work. This is documented in detail in the 'contrib' binary nsstats.sh. Misc Counters: (oidgauge, oidderive, telnet) oidgauge can plot any counter as gauge returned from SNMP. You can use this module to plot counters like connection, open files, memory usage, whatever. oidgauge and oidderive are basically the same, but use other rrd datasource types instead. Thanks to Ingimar Robertsson for the oidderive module. Target: community@address OID: The object ID you want to plot (eg .1.3.5.7.9.1.2.3) telnet is a simple telnet script which telnets to a port and uses the first number returned. You can install simple inetd scripts witch return whatever you need to have calculated on the server. Target: port@hostaddress Request Tracker (RT) Statistics: (rtstats) RT is the beautifull trouble ticketing system from Jesse Vincent. RT is available at http://www.bestpractical.com. RRDBrowse can be used to plot the number of tickets on a per queue and per user basis. To make it work you need to open a port from inetd and run the following command: /rt2/bin/rt --summary %id6%status8%owner10%queue16%created25%updated25 --limit-status=new --limit-status=open This command is then retrieved and cached so you can plot multiple stats. Required fields to make it work are: Target: port@host Queue: queuename Status: open (or new, or whatever else you specified with --limit-status) Users: Nobody tommy sjakie (space separated list) At this moment a maximum of 12 users can be plotted per queue, if you need more you need to tweak rtstats.pm. Windows 2000 Statistics: (w2kcpu, w2kmem) The windows 2000 modules were kindly submitted by Okumura Yoshifumi. For them to work you need to install SNMP for the public community, this can be found at: http://www.wtcs.org/snmp4tpc/ The Target: parameter should have the community and hostname to make those modules work, Type: can be one of w2kcpu or w2kmem to plot CPU or memory respectively. Target: community@hostname -- $Id: modules.pod,v 1.2 2003/06/21 17:25:51 tommy Exp $