Added unit translations for common mib units
This commit is contained in:
parent
318aaeae32
commit
20bfdd8a70
2 changed files with 50 additions and 8 deletions
|
|
@ -54,8 +54,7 @@ tree in a SNMP MIB file.
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
|
||||||
The following packages satisfy the runtime requirements of the script on the
|
Install from GitHub:
|
||||||
associated operating systems:
|
|
||||||
|
|
||||||
# install prerequisites on Ubuntu:
|
# install prerequisites on Ubuntu:
|
||||||
apt-get install perl libxml-simple-perl libsnmp-perl
|
apt-get install perl libxml-simple-perl libsnmp-perl
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ http://www.webnms.com/snmp/help/snmpapi/snmpv3/table_handling/snmptables_basics.
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
#use warnings;
|
||||||
|
|
||||||
use Cwd 'abs_path';
|
use Cwd 'abs_path';
|
||||||
use Data::Dumper;
|
use Data::Dumper;
|
||||||
|
|
@ -405,8 +405,44 @@ sub node_to_item {
|
||||||
$item->{ name } = $node->{ label };
|
$item->{ name } = $node->{ label };
|
||||||
$item->{ snmp_oid } = $node->{ objectID };
|
$item->{ snmp_oid } = $node->{ objectID };
|
||||||
if ($node->{ units }) {
|
if ($node->{ units }) {
|
||||||
|
# Convert unit to Zabbix postfix
|
||||||
|
# See 'Units' section of https://www.zabbix.com/documentation/3.0/manual/config/items/item
|
||||||
|
if ($node->{ units } =~ /^seconds$/) {
|
||||||
|
$item->{ units } = 's';
|
||||||
|
} elsif ($node->{ units } =~ /^(hundreds of seconds)$/i) {
|
||||||
|
$item->{ units } = 's';
|
||||||
|
$item->{ multiplier } = '1';
|
||||||
|
$item->{ formula } = '100';
|
||||||
|
} elsif ($node->{ units } =~ /^(milliseconds|milli-seconds)$/i) {
|
||||||
|
$item->{ units } = 's';
|
||||||
|
$item->{ multiplier } = '1';
|
||||||
|
$item->{ formula } = '.001';
|
||||||
|
} elsif ($node->{ units } =~ /^microseconds$/i) {
|
||||||
|
$item->{ units } = 's';
|
||||||
|
$item->{ multiplier } = '1';
|
||||||
|
$item->{ formula } = '.000001';
|
||||||
|
} elsif ($node->{ units } =~ /^(octets|bytes)$/i) {
|
||||||
|
$item->{ units } = 'B';
|
||||||
|
} elsif ($node->{ units } =~ /^(k-octets|kbytes|kb)$/i) {
|
||||||
|
$item->{ units } = 'B';
|
||||||
|
$item->{ multiplier } = '1';
|
||||||
|
$item->{ formula } = '.001';
|
||||||
|
} elsif ($node->{ units } =~ /^(bits per second)$/i) {
|
||||||
|
$item->{ units } = 'b';
|
||||||
|
} elsif ($node->{ units } =~ /^(kbps|kilobits per second)$/i) {
|
||||||
|
$item->{ units } = 'b';
|
||||||
|
$item->{ multiplier } = '1';
|
||||||
|
$item->{ formula } = '.001';
|
||||||
|
} elsif ($node->{ units } =~ /^percent$/i) {
|
||||||
|
$item->{ units } = '%';
|
||||||
|
} elsif ($node->{ units } =~ /\/s$/i) {
|
||||||
|
# truncate /s (/sec will be added later)
|
||||||
|
$item->{ units } = substr($node->{ units }, 0, -2) . "/sec";
|
||||||
|
} else {
|
||||||
|
# default to original
|
||||||
$item->{ units } = $node->{ units };
|
$item->{ units } = $node->{ units };
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Merge in item defaults
|
# Merge in item defaults
|
||||||
%{ $item } = (%{ $template }, %{ $item } );
|
%{ $item } = (%{ $template }, %{ $item } );
|
||||||
|
|
@ -425,11 +461,18 @@ sub node_to_item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set storage type
|
# Set storage type to Delta for MIB counter types
|
||||||
if ( $node->{ type } ~~ ['COUNTER', 'COUNTER32', 'COUNTER64']) {
|
if ( $node->{ type } ~~ ['COUNTER', 'COUNTER32', 'COUNTER64']) {
|
||||||
$item->{ delta } = ZBX_ITEM_STORE_SPEED;
|
$item->{ delta } = ZBX_ITEM_STORE_SPEED;
|
||||||
|
|
||||||
|
if ($item->{ units } =~ /^s$/) {
|
||||||
|
$item->{ units } = '/sec';
|
||||||
|
} elsif ($item->{ units } =~ /^b$/i) {
|
||||||
|
$item->{ units } .= 'ps';
|
||||||
|
} else {
|
||||||
$item->{ units } .= '/sec';
|
$item->{ units } .= '/sec';
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Translate SNMP Ticks
|
# Translate SNMP Ticks
|
||||||
if ($node->{ type } eq 'TICKS') {
|
if ($node->{ type } eq 'TICKS') {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue