Add comprehensive Sub10 support

This commit is contained in:
Thom Seddon 2015-09-11 18:40:51 +01:00
parent f0098d7d07
commit 89a76ef673
14 changed files with 9587 additions and 2 deletions

BIN
html/images/os/sub10.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,17 @@
<?php
$scale_max = 100;
require 'includes/graphs/common.inc.php';
$rrdfilename = $config['rrd_dir'].'/'.$device['hostname'].'/sub10systems.rrd';
if (file_exists($rrdfilename)) {
$rrd_options .= " COMMENT:' Now Min Max\\n'";
$rrd_options .= ' DEF:sub10RadioLclAFER='.$rrdfilename.':sub10RadioLclAFER:AVERAGE ';
$rrd_options .= " LINE1:sub10RadioLclAFER#CC0000:'Percent ' ";
$rrd_options .= ' GPRINT:sub10RadioLclAFER:LAST:%3.2lf ';
$rrd_options .= ' GPRINT:sub10RadioLclAFER:MIN:%3.2lf ';
$rrd_options .= ' GPRINT:sub10RadioLclAFER:MAX:%3.2lf\\\l ';
}

View File

@ -0,0 +1,18 @@
<?php
require 'includes/graphs/common.inc.php';
$rrdfilename = $config['rrd_dir'].'/'.$device['hostname'].'/sub10systems.rrd';
if (file_exists($rrdfilename)) {
$rrd_options .= " COMMENT:'dB Now Min Max\\n'";
$rrd_options .= ' DEF:sub10RadioLclLnkLos='.$rrdfilename.':sub10RadioLclLnkLos:AVERAGE ';
$rrd_options .= " LINE1:sub10RadioLclLnkLos#CC0000:'Link Loss ' ";
$rrd_options .= ' GPRINT:sub10RadioLclLnkLos:LAST:%3.2lf ';
$rrd_options .= ' GPRINT:sub10RadioLclLnkLos:MIN:%3.2lf ';
$rrd_options .= ' GPRINT:sub10RadioLclLnkLos:MAX:%3.2lf\\\l ';
}

View File

@ -0,0 +1,20 @@
<?php
$scale_max = 0;
require 'includes/graphs/common.inc.php';
$rrdfilename = $config['rrd_dir'].'/'.$device['hostname'].'/sub10systems.rrd';
if (file_exists($rrdfilename)) {
$rrd_options .= " COMMENT:'dBm Now Min Max\\n'";
$rrd_options .= ' DEF:sub10RadioLclRxPowe='.$rrdfilename.':sub10RadioLclRxPowe:AVERAGE ';
$rrd_options .= " LINE1:sub10RadioLclRxPowe#CC0000:'Rx Power ' ";
$rrd_options .= ' GPRINT:sub10RadioLclRxPowe:LAST:%3.2lf ';
$rrd_options .= ' GPRINT:sub10RadioLclRxPowe:MIN:%3.2lf ';
$rrd_options .= ' GPRINT:sub10RadioLclRxPowe:MAX:%3.2lf\\\l ';
}

View File

@ -0,0 +1,20 @@
<?php
$scale_min = 0;
require 'includes/graphs/common.inc.php';
$rrdfilename = $config['rrd_dir'].'/'.$device['hostname'].'/sub10systems.rrd';
if (file_exists($rrdfilename)) {
$rrd_options .= " COMMENT:'dBm Now Min Max\\n'";
$rrd_options .= ' DEF:sub10RadioLclTxPowe='.$rrdfilename.':sub10RadioLclTxPowe:AVERAGE ';
$rrd_options .= " LINE1:sub10RadioLclTxPowe#CC0000:'Tx Power ' ";
$rrd_options .= ' GPRINT:sub10RadioLclTxPowe:LAST:%3.2lf ';
$rrd_options .= ' GPRINT:sub10RadioLclTxPowe:MIN:%3.2lf ';
$rrd_options .= ' GPRINT:sub10RadioLclTxPowe:MAX:%3.2lf\\\l ';
}

View File

@ -0,0 +1,20 @@
<?php
$scale_max = 0;
require 'includes/graphs/common.inc.php';
$rrdfilename = $config['rrd_dir'].'/'.$device['hostname'].'/sub10systems.rrd';
if (file_exists($rrdfilename)) {
$rrd_options .= " COMMENT:'dB Now Min Max\\n'";
$rrd_options .= ' DEF:sub10RadioLclVectEr='.$rrdfilename.':sub10RadioLclVectEr:AVERAGE ';
$rrd_options .= " LINE1:sub10RadioLclVectEr#CC0000:'Vector Error ' ";
$rrd_options .= ' GPRINT:sub10RadioLclVectEr:LAST:%3.2lf ';
$rrd_options .= ' GPRINT:sub10RadioLclVectEr:MIN:%3.2lf ';
$rrd_options .= ' GPRINT:sub10RadioLclVectEr:MAX:%3.2lf\\\l ';
}

View File

@ -511,6 +511,14 @@ $config['os'][$os]['icon'] = 'saf';
$config['os'][$os]['over'][0]['graph'] = 'device_bits';
$config['os'][$os]['over'][0]['text'] = 'Traffic';
// Sub10
$os = 'sub10';
$config['os'][$os]['text'] = 'Sub10 Systems';
$config['os'][$os]['type'] = 'wireless';
$config['os'][$os]['icon'] = 'sub10';
$config['os'][$os]['over'][0]['graph'] = 'device_bits';
$config['os'][$os]['over'][0]['text'] = 'Traffic';
// Supermicro Switch
$os = 'supermicro-switch';
$config['os'][$os]['group'] = 'supermicro';
@ -1546,6 +1554,27 @@ $config['graph_types']['device']['siklu_rfinterfaceOtherOctets']['section'] = 'w
$config['graph_types']['device']['siklu_rfinterfaceOtherOctets']['order'] = '6';
$config['graph_types']['device']['siklu_rfinterfaceOtherOctets']['descr'] = 'Other Octets';
// Sub10 support
$config['graph_types']['device']['sub10_sub10RadioLclTxPower']['section'] = 'wireless';
$config['graph_types']['device']['sub10_sub10RadioLclTxPower']['order'] = '0';
$config['graph_types']['device']['sub10_sub10RadioLclTxPower']['descr'] = 'Radio Transmit Power';
$config['graph_types']['device']['sub10_sub10RadioLclRxPower']['section'] = 'wireless';
$config['graph_types']['device']['sub10_sub10RadioLclRxPower']['order'] = '1';
$config['graph_types']['device']['sub10_sub10RadioLclRxPower']['descr'] = 'Radio Receive Power';
$config['graph_types']['device']['sub10_sub10RadioLclVectErr']['section'] = 'wireless';
$config['graph_types']['device']['sub10_sub10RadioLclVectErr']['order'] = '3';
$config['graph_types']['device']['sub10_sub10RadioLclVectErr']['descr'] = 'Radio Vector Error';
$config['graph_types']['device']['sub10_sub10RadioLclLnkLoss']['section'] = 'wireless';
$config['graph_types']['device']['sub10_sub10RadioLclLnkLoss']['order'] = '3';
$config['graph_types']['device']['sub10_sub10RadioLclLnkLoss']['descr'] = 'Radio Link Loss';
$config['graph_types']['device']['sub10_sub10RadioLclAFER']['section'] = 'wireless';
$config['graph_types']['device']['sub10_sub10RadioLclAFER']['order'] = '4';
$config['graph_types']['device']['sub10_sub10RadioLclAFER']['descr'] = 'Radio Air Frame Error Rate';
$config['graph_types']['device']['wifi_clients']['section'] = 'wireless';
$config['graph_types']['device']['wifi_clients']['order'] = '0';
$config['graph_types']['device']['wifi_clients']['descr'] = 'Wireless Clients';

View File

@ -0,0 +1,10 @@
<?php
/*
* LibreNMS Sub10 OS information module
*/
if (!$os) {
if (strstr($sysObjectId, '.1.3.6.1.4.1.39003')) {
$os = 'sub10';
}
}

View File

@ -0,0 +1,33 @@
<?php
if ($device['os'] == 'sub10') {
echo 'Sub10 temperature ';
// Get Current Value
$temp_oid = 'sub10UnitLclMWUTemperature.0';
list($oid, $current) = explode(' ', snmp_get($device, $temp_oid, '-OsqnU', 'SUB10SYSTEMS-MIB'));
// Get Alarm Ranges
$alarm_oid = 'sub10UnitMgmtAlarmName';
$alarms = snmp_walk($device, $alarm_oid, '-OsqU', 'SUB10SYSTEMS-MIB');
$indexes = array();
foreach (explode("\n", $alarms) as $alarm) {
if (preg_match('/^\w+\.(\d) MWU Temperature (.*)$/', $alarm, $matches)) {
$indexes[strtolower($matches[2])] = $matches[1];
}
}
$thresh_oid = 'sub10UnitMgmtAlarmRaiseThresh';
$threshes = snmp_walk($device, $thresh_oid, '-OsqU', 'SUB10SYSTEMS-MIB');
$thresholds = array();
foreach (explode("\n", $threshes) as $thresh) {
preg_match('/^\w+\.(\d) (.*)$/', $thresh, $matches);
$thresholds[$matches[1]] = $matches[2];
}
// Create Sensor
discover_sensor($valid['sensor'], 'temperature', $device, $oid, $oid,
'sub10', 'Modem', '1', '1', $thresholds[$indexes['low']],
null, null, $thresholds[$indexes['high']],
$current);
}

View File

@ -386,8 +386,12 @@ function poll_mib_def($device, $mib_name_table, $mib_subdir, $mib_oids, $mib_gra
$fields = array();
foreach ($oidglist as $fulloid) {
list($splitoid, $splitindex) = explode('.', $fulloid, 2);
if (is_numeric($snmpdata[$splitindex][$splitoid])) {
$fields[$oidnamelist[$oid_count]] = $snmpdata[$splitindex][$splitoid];
$val = $snmpdata[$splitindex][$splitoid];
if (is_numeric($val)) {
$rrdupdate .= ':'.$val;
}
elseif (preg_match("/^\"(.*)\"$/", $val, $number) && is_numeric($number[1])) {
$rrdupdate .= ':'.$number[1];
}
else {
$fields[$oidnamelist[$oid_count]] = 'U';

View File

@ -0,0 +1,49 @@
<?php
echo ' Sub10 Systems';
$mib_oids = array(
'sub10RadioLclTxPower' => array(
'0',
'sub10RadioLclTxPower',
'Transmit Power',
'GAUGE',
),
'sub10RadioLclRxPower' => array(
'0',
'sub10RadioLclRxPower',
'Transmit Power',
'GAUGE',
),
'sub10RadioLclVectErr' => array(
'0',
'sub10RadioLclVectErr',
'Transmit Power',
'GAUGE',
),
'sub10RadioLclLnkLoss' => array(
'0',
'sub10RadioLclLnkLoss',
'Transmit Power',
'GAUGE',
),
'sub10RadioLclAFER' => array(
'0',
'sub10RadioLclAFER',
'Transmit Power',
'GAUGE',
),
);
$mib_graphs = array(
'sub10_sub10RadioLclTxPower',
'sub10_sub10RadioLclRxPower',
'sub10_sub10RadioLclVectErr',
'sub10_sub10RadioLclLnkLoss',
'sub10_sub10RadioLclAFER',
);
unset($graph, $oids, $oid);
poll_mib_def($device, 'SUB10SYSTEMS-MIB:sub10Systems', 'sub10', $mib_oids, $mib_graphs, $graphs);

View File

@ -0,0 +1,8 @@
<?php
if (preg_match("/Sub10 Systems - ([\s\d\w]+)/", $poll_device['sysDescr'], $hardware)) {
$hardware = $hardware[1];
}
$version = str_replace('"', '', snmp_get($device, 'sub10UnitLclFirmwareVersion.0', '-Osqnv', 'SUB10SYSTEMS-MIB'));
$serial = str_replace('"', '', snmp_get($device, 'sub10UnitLclHWSerialNumber.0', '-Osqnv', 'SUB10SYSTEMS-MIB'));

View File

@ -18,6 +18,11 @@ if ($device['type'] == 'network' || $device['type'] == 'firewall' || $device['ty
include 'includes/polling/mib/siklu-mib.inc.php';
}
if ($device['os'] == 'sub10') {
echo "It is Sub10\n";
include 'includes/polling/mib/sub10-mib.inc.php';
}
// # GENERIC FRAMEWORK, FILLING VARIABLES
if ($device['os'] == 'airport') {
echo 'Checking Airport Wireless clients... ';

File diff suppressed because it is too large Load Diff