From bc816ee461ce8d9c879e68c11410416ef53557d1 Mon Sep 17 00:00:00 2001 From: crcro Date: Mon, 29 Aug 2016 23:24:22 +0300 Subject: [PATCH] discovery: ubnt edgeswitch os update (#4249) newdevice: Improved support for UBNT EdgeSwitch OS #4249 --- includes/definitions.inc.php | 4 +++ .../discovery/mempools/edgeswitch.inc.php | 25 +++++++++++++++++++ .../discovery/processors/edgeswitch.inc.php | 22 ++++++++++++++++ includes/polling/mempools/edgeswitch.inc.php | 19 ++++++++++++++ .../polling/processors/edgeswitch.inc.php | 19 ++++++++++++++ 5 files changed, 89 insertions(+) create mode 100644 includes/discovery/mempools/edgeswitch.inc.php create mode 100644 includes/discovery/processors/edgeswitch.inc.php create mode 100644 includes/polling/mempools/edgeswitch.inc.php create mode 100644 includes/polling/processors/edgeswitch.inc.php diff --git a/includes/definitions.inc.php b/includes/definitions.inc.php index 885d2b9d0b..3a62701624 100644 --- a/includes/definitions.inc.php +++ b/includes/definitions.inc.php @@ -1725,6 +1725,10 @@ $config['os'][$os]['icon'] = 'ubiquiti'; $config['os'][$os]['over'][0]['graph'] = 'device_bits'; $config['os'][$os]['over'][0]['text'] = 'Device Traffic'; $config['os'][$os]['ifname'] = 1; +$config['os'][$os]['over'][1]['graph'] = 'device_processor'; +$config['os'][$os]['over'][1]['text'] = 'CPU Usage'; +$config['os'][$os]['over'][2]['graph'] = 'device_mempool'; +$config['os'][$os]['over'][2]['text'] = 'Memory Usage'; // Fiberhome $os = 'fiberhome'; diff --git a/includes/discovery/mempools/edgeswitch.inc.php b/includes/discovery/mempools/edgeswitch.inc.php new file mode 100644 index 0000000000..c283d953e2 --- /dev/null +++ b/includes/discovery/mempools/edgeswitch.inc.php @@ -0,0 +1,25 @@ + + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +if ($device['os'] == "edgeswitch") { + d_echo('EdgeSwitch Memory:'); + //EdgeSwitch-SWITCHING-MIB::agentSwitchCpuProcessMemFree + $avail = snmp_get($device, '.1.3.6.1.4.1.4413.1.1.1.1.4.1.0', '-Oqv'); + //EdgeSwitch-SWITCHING-MIB::agentSwitchCpuProcessMemAvailable + $total = snmp_get($device, '.1.3.6.1.4.1.4413.1.1.1.1.4.2.0', '-Oqv'); + $used = $total - $avail; + $percent = ($used / $total * 100); + + if ((is_numeric($total)) && (is_numeric($avail))) { + discover_mempool($valid_mempool, $device, 0, 'edgeswitch', 'Memory', '1', null, null); + } +} diff --git a/includes/discovery/processors/edgeswitch.inc.php b/includes/discovery/processors/edgeswitch.inc.php new file mode 100644 index 0000000000..3c98fe0324 --- /dev/null +++ b/includes/discovery/processors/edgeswitch.inc.php @@ -0,0 +1,22 @@ + + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +if ($device['os'] == 'edgeswitch') { + //SNMPv2-SMI::enterprises.4413.1.1.1.1.4.9.0 + d_echo('EdgeSwitch CPU usage:'); + $descr = 'Processor'; + $proc_usage = snmp_get($device, '.1.3.6.1.4.1.4413.1.1.1.1.4.9.0', '-Ovq'); + preg_match('/([0-9]+.[0-9]+)/', $proc_usage, $usage); + if (is_numeric($usage[0])) { + discover_processor($valid['processor'], $device, '.1.3.6.1.4.1.4413.1.1.1.1.4.9.0', '0', 'edgeswitch', $descr, '1', $usage[0], null, null); + } +} diff --git a/includes/polling/mempools/edgeswitch.inc.php b/includes/polling/mempools/edgeswitch.inc.php new file mode 100644 index 0000000000..bf0d3b55f6 --- /dev/null +++ b/includes/polling/mempools/edgeswitch.inc.php @@ -0,0 +1,19 @@ + + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +if ($device['os'] == 'edgeswitch') { + $total = snmp_get($device, '.1.3.6.1.4.1.4413.1.1.1.1.4.2.0', '-Oqv'); + $free = snmp_get($device, '.1.3.6.1.4.1.4413.1.1.1.1.4.1.0', '-Oqv'); + $mempool['total'] = $total; + $mempool['free'] = $free; + $mempool['used'] = $total - $free; +} diff --git a/includes/polling/processors/edgeswitch.inc.php b/includes/polling/processors/edgeswitch.inc.php new file mode 100644 index 0000000000..932cce4470 --- /dev/null +++ b/includes/polling/processors/edgeswitch.inc.php @@ -0,0 +1,19 @@ + + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 3 of the License, or (at your + * option) any later version. Please see LICENSE.txt at the top level of + * the source code distribution for details. + */ + +d_echo('EdgeSwitch CPU usage:'); +if ($device['os'] == 'edgeswitch') { + //SNMPv2-SMI::enterprises.4413.1.1.1.1.4.9.0 + $proc_usage = snmp_get($device, '.1.3.6.1.4.1.4413.1.1.1.1.4.9.0', '-Ovq'); + preg_match('/([0-9]+.[0-9]+)/', $proc_usage, $usage); + $proc = $usage[0]; +}