Merge pull request #2763 from paulgear/mib-poller-more-data-values

MIB-based polling: attempt to support more SNMP counter types
This commit is contained in:
Neil Lathwood
2016-01-17 13:30:40 +00:00
2 changed files with 8 additions and 10 deletions

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, Gauge32,
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:

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,