MIB-based polling: attempt to support more SNMP counter types

This commit is contained in:
Paul Gear
2016-01-14 13:38:10 +10:00
parent d5cbb21c9e
commit 31bb1f6ff4
2 changed files with 8 additions and 10 deletions
+3 -2
View File
@@ -69,8 +69,9 @@ The components involved in MIB-based polling are:
- During discovery, relevant MIBs are parsed using `snmptranslate`, and the
data returned is used to populate a database which guides the poller in
what to store. At the moment, only OIDs with Unsigned32 and Counter64
data types are parsed.
what to store. At the moment, only OIDs of INTEGER, Integer32, Unsigned32,
Counter32, and Counter64 data types are parsed, and negative values are
untested.
- Devices may be excluded from MIB polling by changing the setting in the
device edit screen:
+5 -8
View File
@@ -1040,22 +1040,19 @@ function oid_rrd_type($oid, $mibdef)
case 'INTEGER':
case 'Integer32':
// FIXME
return false;
return 'GAUGE:600:U:U';
case 'Counter32':
// FIXME
return false;
case 'Counter64':
return 'COUNTER:600:0:U';
case 'Gauge32':
case 'Unsigned32':
return 'GAUGE:600:U:U';
return 'GAUGE:600:0:U';
}
return false;
} // oid_rrd_type
@@ -1124,7 +1121,7 @@ function save_mibs($device, $mibname, $oids, $mibdef, &$graphs)
foreach ($oids as $index => $array) {
foreach ($array as $obj => $val) {
// build up the device_oid row for saving into the database
$numvalue = preg_match('/^\d+$/', $val) ? $val : null;
$numvalue = is_numeric($val) ? $val + 0 : 0;
$deviceoids[] = array(
'device_id' => $device['device_id'],
'oid' => $mibdef[$obj]['oid'].".".$index,