nfsstats.pl is a NFS sub agent for the Net-SNMP snmpd daemon. It allows Linux NFS statistics (both client and server) to be made available as SNMP values. This makes them graphable by tools such as MRTG, Cacti, Ganglia etc etc.
Currently, only NFS v3 statistics are available, though other versions can easily be added at a later date. nfsstats.pl works by parsing the output of /proc/net/rpc/nfs and /proc/net/rpc/nfsd.
Craig Macdonald wrote this. Patches are welcome: <craig{funny squiggly at symbol}macdee.net>
Firstly, ensure you have a working Net-SNMP install. Secondly, ensure you have the Perl sub-components of Net-SNMP installed (in Fedora Core, do yum install net-snmp-perl). Thirdly, save nfsstats.pl to /var/net-snmp/. Add the following line to /etc/snmp/snmpd.conf: master agentx. Start nfsstats.pl in the way of your choice, logged to file of your choice (eg 2>/dev/null). Note that nfsstats.pl must be started as root.
If your snmpd is built with embedded Perl support (Fedora Core doesn't), then you can import the sub agent directly into the snmpd. See the script for more details.
The list below is all the 114 statistics that nfsstats.pl can provide for SNMP values. The ones you should monitor (eg using MRTG) are entirely up to you.
enterprises.6789.6789.0.0.1 -> client.rpc.count.calls enterprises.6789.6789.0.0.2 -> client.rpc.count.retrans enterprises.6789.6789.0.0.3 -> client.rpc.count.authrefrsh enterprises.6789.6789.0.3.0.0 -> client3.count.null enterprises.6789.6789.0.3.0.1 -> client3.percent.null enterprises.6789.6789.0.3.1.0 -> client3.count.getattr enterprises.6789.6789.0.3.1.1 -> client3.percent.getattr enterprises.6789.6789.0.3.2.0 -> client3.count.setattr enterprises.6789.6789.0.3.2.1 -> client3.percent.setattr enterprises.6789.6789.0.3.3.0 -> client3.count.lookup enterprises.6789.6789.0.3.3.1 -> client3.percent.lookup enterprises.6789.6789.0.3.4.0 -> client3.count.access enterprises.6789.6789.0.3.4.1 -> client3.percent.access enterprises.6789.6789.0.3.5.0 -> client3.count.readlink enterprises.6789.6789.0.3.5.1 -> client3.percent.readlink enterprises.6789.6789.0.3.6.0 -> client3.count.read enterprises.6789.6789.0.3.6.1 -> client3.percent.read enterprises.6789.6789.0.3.7.0 -> client3.count.write enterprises.6789.6789.0.3.7.1 -> client3.percent.write enterprises.6789.6789.0.3.8.0 -> client3.count.create enterprises.6789.6789.0.3.8.1 -> client3.percent.create enterprises.6789.6789.0.3.9.0 -> client3.count.mkdir enterprises.6789.6789.0.3.9.1 -> client3.percent.mkdir enterprises.6789.6789.0.3.10.0 -> client3.count.symlink enterprises.6789.6789.0.3.10.1 -> client3.percent.symlink enterprises.6789.6789.0.3.11.0 -> client3.count.mknod enterprises.6789.6789.0.3.11.1 -> client3.percent.mknod enterprises.6789.6789.0.3.12.0 -> client3.count.remove enterprises.6789.6789.0.3.12.1 -> client3.percent.remove enterprises.6789.6789.0.3.13.0 -> client3.count.rmdir enterprises.6789.6789.0.3.13.1 -> client3.percent.rmdir enterprises.6789.6789.0.3.14.0 -> client3.percent.rename enterprises.6789.6789.0.3.15.0 -> client3.count.link enterprises.6789.6789.0.3.15.1 -> client3.percent.link enterprises.6789.6789.0.3.16.0 -> client3.count.readdir enterprises.6789.6789.0.3.16.1 -> client3.percent.readdir enterprises.6789.6789.0.3.17.0 -> client3.count.readdirplus enterprises.6789.6789.0.3.17.1 -> client3.percent.readdirplus enterprises.6789.6789.0.3.18.0 -> client3.count.fsstat enterprises.6789.6789.0.3.18.1 -> client3.percent.fsstat enterprises.6789.6789.0.3.19.0 -> client3.count.fsinfo enterprises.6789.6789.0.3.19.1 -> client3.percent.fsinfo enterprises.6789.6789.0.3.20.0 -> client3.count.pathconf enterprises.6789.6789.0.3.20.1 -> client3.percent.pathconf enterprises.6789.6789.0.3.21.0 -> client3.count.commit enterprises.6789.6789.0.3.21.1 -> client3.percent.commit enterprises.6789.6789.0.3.22.0 -> client3.count.total enterprises.6789.6789.0.3.22.1 -> client3.percent.total enterprises.6789.6789.1.0.0 -> server.rpc.count.calls enterprises.6789.6789.1.0.1 -> server.rpc.count.retrans enterprises.6789.6789.1.0.2 -> server.rpc.count.badcalls enterprises.6789.6789.1.0.3 -> server.rpc.count.badauth enterprises.6789.6789.1.0.4 -> server.rpc.count.badclnt enterprises.6789.6789.1.0.5 -> server.rpc.count.xdrcall enterprises.6789.6789.1.3.0.0 -> server3.count.null enterprises.6789.6789.1.3.0.1 -> server3.percent.null enterprises.6789.6789.1.3.1.0 -> server3.count.getattr enterprises.6789.6789.1.3.1.1 -> server3.percent.getattr enterprises.6789.6789.1.3.2.0 -> server3.count.setattr enterprises.6789.6789.1.3.2.1 -> server3.percent.setattr enterprises.6789.6789.1.3.3.0 -> server3.count.lookup enterprises.6789.6789.1.3.3.1 -> server3.percent.lookup enterprises.6789.6789.1.3.4.0 -> server3.count.access enterprises.6789.6789.1.3.4.1 -> server3.percent.access enterprises.6789.6789.1.3.5.0 -> server3.count.readlink enterprises.6789.6789.1.3.5.1 -> server3.percent.readlink enterprises.6789.6789.1.3.6.0 -> server3.count.read enterprises.6789.6789.1.3.6.1 -> server3.percent.read enterprises.6789.6789.1.3.7.0 -> server3.count.write enterprises.6789.6789.1.3.7.1 -> server3.percent.write enterprises.6789.6789.1.3.8.0 -> server3.count.create enterprises.6789.6789.1.3.8.1 -> server3.percent.create enterprises.6789.6789.1.3.9.0 -> server3.count.mkdir enterprises.6789.6789.1.3.9.1 -> server3.percent.mkdir enterprises.6789.6789.1.3.10.0 -> server3.count.symlink enterprises.6789.6789.1.3.10.1 -> server3.percent.symlink enterprises.6789.6789.1.3.11.0 -> server3.count.mknod enterprises.6789.6789.1.3.11.1 -> server3.percent.mknod enterprises.6789.6789.1.3.12.0 -> server3.count.remove enterprises.6789.6789.1.3.12.1 -> server3.percent.remove enterprises.6789.6789.1.3.13.0 -> server3.count.rmdir enterprises.6789.6789.1.3.13.1 -> server3.percent.rmdir enterprises.6789.6789.1.3.14.0 -> server3.count.rename enterprises.6789.6789.1.3.14.1 -> server3.percent.rename enterprises.6789.6789.1.3.15.0 -> server3.count.link enterprises.6789.6789.1.3.15.1 -> server3.percent.link enterprises.6789.6789.1.3.16.0 -> server3.count.readdir enterprises.6789.6789.1.3.16.1 -> server3.percent.readdir enterprises.6789.6789.1.3.17.0 -> server3.count.readdirplus enterprises.6789.6789.1.3.17.1 -> server3.percent.readdirplus enterprises.6789.6789.1.3.18.0 -> server3.count.fsstat enterprises.6789.6789.1.3.18.1 -> server3.percent.fsstat enterprises.6789.6789.1.3.19.0 -> server3.count.fsinfo enterprises.6789.6789.1.3.19.1 -> server3.percent.fsinfo enterprises.6789.6789.1.3.20.0 -> server3.count.pathconf enterprises.6789.6789.1.3.20.1 -> server3.percent.pathconf enterprises.6789.6789.1.3.21.0 -> server3.count.commit enterprises.6789.6789.1.3.21.1 -> server3.percent.commit enterprises.6789.6789.1.3.22.0 -> server3.count.total enterprises.6789.6789.1.3.22.1 -> server3.percent.total enterprises.6789.6789.1.6.0 -> server.replycache.count.hits enterprises.6789.6789.1.6.1 -> server.replycache.count.misses enterprises.6789.6789.1.6.2 -> server.replycache.count.nocache enterprises.6789.6789.1.7.0 -> server.fhcache.count.lookups enterprises.6789.6789.1.7.1 -> server.fhcache.count.anon enterprises.6789.6789.1.7.2 -> server.fhcache.count.nocache_dir enterprises.6789.6789.1.7.3 -> server.fhcache.count.nocache_nondir enterprises.6789.6789.1.7.4 -> server.fhcache.count.stale enterprises.6789.6789.1.8.0 -> server.threads.count enterprises.6789.6789.1.8.1 -> server.threads.fullcount enterprises.6789.6789.1.50 -> server.net.count.packets enterprises.6789.6789.1.51 -> server.net.count.udp enterprises.6789.6789.1.52 -> server.net.count.tcp enterprises.6789.6789.1.53 -> server.net.count.tcpconn