diff --git a/doc/Extensions/MIB-based-polling.md b/doc/Extensions/MIB-based-polling.md index 8358c44e78..d23d207dd6 100644 --- a/doc/Extensions/MIB-based-polling.md +++ b/doc/Extensions/MIB-based-polling.md @@ -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: diff --git a/includes/snmp.inc.php b/includes/snmp.inc.php index 6d1c322380..45e483a48a 100644 --- a/includes/snmp.inc.php +++ b/includes/snmp.inc.php @@ -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,