Howdy --
I'm a long time zabbix user, but I've been doing a lot of cacti work lately, and while I really don't like its use of rrdtool, I must say it does a pretty good job of taking advantage of SNMP indexes. This allows me to produce a series of graphs for a partition table with meaningful titles, without having to ever actually look and see what the names of the partitions are or what their Total Size are.
Here is an example of a snmp partition table
And the way it looks using snmpwalk, so the tables are not "assembled"
This is a very, very commonly used design for SNMP MIB's, not just with disks, but with Interfaces, and many other items.
For every Partition on the system, there is an index number associated with it. Every OID regarding that partition, ends in that index number. ie: if you look at the snmpwalk above, every item ending in .4 is a statistic for the / filesystem. This is shown very clearly in the snmptable output.
This allows me to create a generic template and title it using something like:
Partition $hrstoragedescr Using $hrstorageUsed Megabytes, out of $hrStorageSize.
Does this make sense?
I realize zabbix has better ways of getting this particular type of data, but this method applies for a lot of items (specifically I've been working with checkpoint firewalls, equallogic iscsi boxes, etc), and the partition table is an example everyone can query on their own box.
I'm HOPING that this is the way you've decided to implemenet autodetection.
I'm a long time zabbix user, but I've been doing a lot of cacti work lately, and while I really don't like its use of rrdtool, I must say it does a pretty good job of taking advantage of SNMP indexes. This allows me to produce a series of graphs for a partition table with meaningful titles, without having to ever actually look and see what the names of the partitions are or what their Total Size are.
Here is an example of a snmp partition table
Code:
snmptable -c public -v 1 localhost HOST-RESOURCES-MIB::hrStorageTable
SNMP table: HOST-RESOURCES-MIB::hrStorageTable
hrStorageIndex hrStorageType hrStorageDescr hrStorageAllocationUnits hrStorageSize hrStorageUsed hrStorageAllocationFailures
1 HOST-RESOURCES-TYPES::hrStorageOther Memory Buffers 1024 Bytes 1025472 41928 ?
2 HOST-RESOURCES-TYPES::hrStorageRam Real Memory 1024 Bytes 1025472 894756 ?
3 HOST-RESOURCES-TYPES::hrStorageVirtualMemory Swap Space 1024 Bytes 4192888 144 ?
4 HOST-RESOURCES-TYPES::hrStorageFixedDisk / 4096 Bytes 59033266 32671452 ?
5 HOST-RESOURCES-TYPES::hrStorageFixedDisk /sys 4096 Bytes 0 0 ?
6 HOST-RESOURCES-TYPES::hrStorageFixedDisk /proc/bus/usb 4096 Bytes 0 0 ?
7 HOST-RESOURCES-TYPES::hrStorageFixedDisk /boot 1024 Bytes 101018 31441 ?
8 HOST-RESOURCES-TYPES::hrStorageFixedDisk /proc/sys/fs/binfmt_misc 4096 Bytes 0 0 ?
9 HOST-RESOURCES-TYPES::hrStorageFixedDisk /var/lib/nfs/rpc_pipefs 4096 Bytes 0 0 ?
10 HOST-RESOURCES-TYPES::hrStorageFixedDisk /proc/fs/nfsd 4096 Bytes 0 0 ?
11 HOST-RESOURCES-TYPES::hrStorageFixedDisk /home/blah1 4096 Bytes 59033266 32671452 ?
12 HOST-RESOURCES-TYPES::hrStorageFixedDisk /home/blah2 4096 Bytes 59033266 32671452 ?
13 HOST-RESOURCES-TYPES::hrStorageFixedDisk /home/blah3 4096 Bytes 59033266 32671452 ?
14 HOST-RESOURCES-TYPES::hrStorageFixedDisk /home/blah4 4096 Bytes 59033266 32671452 ?
Code:
snmpwalk -c public -v 1 localhost HOST-RESOURCES-MIB::hrStorageTable HOST-RESOURCES-MIB::hrStorageIndex.1 = INTEGER: 1 HOST-RESOURCES-MIB::hrStorageIndex.2 = INTEGER: 2 HOST-RESOURCES-MIB::hrStorageIndex.3 = INTEGER: 3 HOST-RESOURCES-MIB::hrStorageIndex.4 = INTEGER: 4 HOST-RESOURCES-MIB::hrStorageIndex.5 = INTEGER: 5 HOST-RESOURCES-MIB::hrStorageIndex.6 = INTEGER: 6 HOST-RESOURCES-MIB::hrStorageIndex.7 = INTEGER: 7 HOST-RESOURCES-MIB::hrStorageIndex.8 = INTEGER: 8 HOST-RESOURCES-MIB::hrStorageIndex.9 = INTEGER: 9 HOST-RESOURCES-MIB::hrStorageIndex.10 = INTEGER: 10 HOST-RESOURCES-MIB::hrStorageIndex.11 = INTEGER: 11 HOST-RESOURCES-MIB::hrStorageIndex.12 = INTEGER: 12 HOST-RESOURCES-MIB::hrStorageIndex.13 = INTEGER: 13 HOST-RESOURCES-MIB::hrStorageIndex.14 = INTEGER: 14 HOST-RESOURCES-MIB::hrStorageType.1 = OID: HOST-RESOURCES-TYPES::hrStorageOther HOST-RESOURCES-MIB::hrStorageType.2 = OID: HOST-RESOURCES-TYPES::hrStorageRam HOST-RESOURCES-MIB::hrStorageType.3 = OID: HOST-RESOURCES-TYPES::hrStorageVirtualMemory HOST-RESOURCES-MIB::hrStorageType.4 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.5 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.6 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.7 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.8 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.9 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.10 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.11 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.12 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.13 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageType.14 = OID: HOST-RESOURCES-TYPES::hrStorageFixedDisk HOST-RESOURCES-MIB::hrStorageDescr.1 = STRING: Memory Buffers HOST-RESOURCES-MIB::hrStorageDescr.2 = STRING: Real Memory HOST-RESOURCES-MIB::hrStorageDescr.3 = STRING: Swap Space HOST-RESOURCES-MIB::hrStorageDescr.4 = STRING: / HOST-RESOURCES-MIB::hrStorageDescr.5 = STRING: /sys HOST-RESOURCES-MIB::hrStorageDescr.6 = STRING: /proc/bus/usb HOST-RESOURCES-MIB::hrStorageDescr.7 = STRING: /boot HOST-RESOURCES-MIB::hrStorageDescr.8 = STRING: /proc/sys/fs/binfmt_misc HOST-RESOURCES-MIB::hrStorageDescr.9 = STRING: /var/lib/nfs/rpc_pipefs HOST-RESOURCES-MIB::hrStorageDescr.10 = STRING: /proc/fs/nfsd HOST-RESOURCES-MIB::hrStorageDescr.11 = STRING: /home/blah1 HOST-RESOURCES-MIB::hrStorageDescr.12 = STRING: /home/blah2 HOST-RESOURCES-MIB::hrStorageDescr.13 = STRING: /home/blah3 HOST-RESOURCES-MIB::hrStorageDescr.14 = STRING: /home/blah4 HOST-RESOURCES-MIB::hrStorageAllocationUnits.1 = INTEGER: 1024 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.2 = INTEGER: 1024 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.3 = INTEGER: 1024 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.4 = INTEGER: 4096 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.5 = INTEGER: 4096 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.6 = INTEGER: 4096 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.7 = INTEGER: 1024 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.8 = INTEGER: 4096 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.9 = INTEGER: 4096 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.10 = INTEGER: 4096 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.11 = INTEGER: 4096 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.12 = INTEGER: 4096 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.13 = INTEGER: 4096 Bytes HOST-RESOURCES-MIB::hrStorageAllocationUnits.14 = INTEGER: 4096 Bytes HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 1025472 HOST-RESOURCES-MIB::hrStorageSize.2 = INTEGER: 1025472 HOST-RESOURCES-MIB::hrStorageSize.3 = INTEGER: 4192888 HOST-RESOURCES-MIB::hrStorageSize.4 = INTEGER: 59033266 HOST-RESOURCES-MIB::hrStorageSize.5 = INTEGER: 0 HOST-RESOURCES-MIB::hrStorageSize.6 = INTEGER: 0 HOST-RESOURCES-MIB::hrStorageSize.7 = INTEGER: 101018 HOST-RESOURCES-MIB::hrStorageSize.8 = INTEGER: 0 HOST-RESOURCES-MIB::hrStorageSize.9 = INTEGER: 0 HOST-RESOURCES-MIB::hrStorageSize.10 = INTEGER: 0 HOST-RESOURCES-MIB::hrStorageSize.11 = INTEGER: 59033266 HOST-RESOURCES-MIB::hrStorageSize.12 = INTEGER: 59033266 HOST-RESOURCES-MIB::hrStorageSize.13 = INTEGER: 59033266 HOST-RESOURCES-MIB::hrStorageSize.14 = INTEGER: 59033266 HOST-RESOURCES-MIB::hrStorageUsed.1 = INTEGER: 42092 HOST-RESOURCES-MIB::hrStorageUsed.2 = INTEGER: 918772 HOST-RESOURCES-MIB::hrStorageUsed.3 = INTEGER: 144 HOST-RESOURCES-MIB::hrStorageUsed.4 = INTEGER: 32671656 HOST-RESOURCES-MIB::hrStorageUsed.5 = INTEGER: 0 HOST-RESOURCES-MIB::hrStorageUsed.6 = INTEGER: 0 HOST-RESOURCES-MIB::hrStorageUsed.7 = INTEGER: 31441 HOST-RESOURCES-MIB::hrStorageUsed.8 = INTEGER: 0 HOST-RESOURCES-MIB::hrStorageUsed.9 = INTEGER: 0 HOST-RESOURCES-MIB::hrStorageUsed.10 = INTEGER: 0 HOST-RESOURCES-MIB::hrStorageUsed.11 = INTEGER: 32671656 HOST-RESOURCES-MIB::hrStorageUsed.12 = INTEGER: 32671656 HOST-RESOURCES-MIB::hrStorageUsed.13 = INTEGER: 32671656 HOST-RESOURCES-MIB::hrStorageUsed.14 = INTEGER: 32671656
For every Partition on the system, there is an index number associated with it. Every OID regarding that partition, ends in that index number. ie: if you look at the snmpwalk above, every item ending in .4 is a statistic for the / filesystem. This is shown very clearly in the snmptable output.
This allows me to create a generic template and title it using something like:
Partition $hrstoragedescr Using $hrstorageUsed Megabytes, out of $hrStorageSize.
Does this make sense?
I realize zabbix has better ways of getting this particular type of data, but this method applies for a lot of items (specifically I've been working with checkpoint firewalls, equallogic iscsi boxes, etc), and the partition table is an example everyone can query on their own box.
I'm HOPING that this is the way you've decided to implemenet autodetection.
)
Comment