2007-06-21 Jason Schoonover http://unnoc.org Unnoc Disk Monitoring Unnoc will graph and log the following (if it is available): - Disk Usage - Disk I/O Counters Disk I/O counters are currently only available on Net-SNMP hosts ('server'). Disks are found in two ways: 1. UCD-DISK MIB 2. HOST-RESOURCES MIB You can quickly see if your server supports either method, or you can see which one would be more appropriate by running two of the following commands: print_disks.pl print_disk_io_avail.pl Both of these scripts are located in the scripts/ directory in the Unnoc distribution tarball 1. UCD-DISK MIB This is the disk table that is provided by Net-SNMP when you use the 'disk' directive in snmpd.conf. It usually comes along with a minimum value stating that if the disk free value falls below this particular minimum, then it will raise an alert, and SNMP will set an 'alert' bit which Unnoc will pick up on and send out appropriate emails. This is the default method for all 'server' types. One particular limitation of this method is that usually SNMP will not report correctly on disks that are greater than 2.2TB. All minimum disk space requirements are configured inside the snmpd.conf file. Disk counters are picked up automatically, if available. However, if the disk counters are not picked up correctly, you can manually specify with the disk{} directive. For example, let's say that '/' is an RAID array /dev/md0, however SNMP does not report anything about /dev/md0. Then you can specify the device with the 'device' option inside disk{}. host { hostname = server1 type = server community = public disk { partition = / device = /dev/md0 } } Device can also be a comma separated value. For instance, if you have a partition '/srv' that is one large LVM partition, and the LVM consists of /dev/sda1, /dev/sda2, /dev/sda3 and /dev/sda4. Then you can combine them with the 'device' option and specify a device_display as well. host { hostname = server1 type = server community = public disk { partition = /srv device = /dev/sda1, /dev/sda2, /dev/sda3, /dev/sda4 device_display = /dev/array0/vol0 } } If you do not specify disk{}, the I/O counters will attempt to be automatically read via SNMP. 2. HOST-RESOURCE If you have disks larger than 2.2TB, use this method. The host resource table is a different MIB. It allows for more variables to be read, for devices such as floppies, memory, cpu, etc. It does not supply disk I/O counters though. If you are using the HOST-RESOURCE method, then you need to tell Unnoc that with the 'disktype' directive: host { ... disktype = hr } It will automatically read ALL mount points in, sometimes including NFS partitions. You can ignore partitions with the 'ignore' directive. If you want to include disk counters, you MUST manually specify the device. If you do not, it will not pick them up. For alerts, you also MUST manually specify high/warn usage. high_usage - a threshold of DISK USAGE that, if met, will raise an alert warn_usage - a threshold of DISK USAGE that, if met, will raise a warning If we have a server with a large array, we need to specify all disk usage using the disktype = hr. For example: host { hostname = server2 type = server community = public disktype = hr disk { partition = /proc/bus/usb, /mnt/nfs ignore = 1 } disk { partition = / high_usage = 90% warn_usage = 80% device = /dev/sdb3 } disk { partition = /boot high_usage = 90% warn_usage = 80% device = /dev/sdb1 } disk { partition = /srv high_usage = 95% warn_usage = 90% device = /dev/sda1, /dev/sda2, /dev/sda3, /dev/sda4 device_display = /dev/array0/vol0 } } Remember that device can be a comma separated value, and if you specify multiple devices, then you can use the device_display directive. vim:tw=72:wm=1