newdevice: Added support for A10 ACOS devices (#7327)

* newdevice: Added support for A10 ACOS devices
This commit is contained in:
Neil Lathwood 2017-09-17 20:33:09 +01:00 committed by Søren Rosiak
parent 18d29956d3
commit aef79535f4
14 changed files with 12400 additions and 2 deletions

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,12 @@
os: acos
text: 'A10 Networks'
type: network
icon: a10
group: a10
over:
- { graph: device_bits, text: 'Device Traffic' }
- { graph: device_processor, text: 'CPU Usage' }
- { graph: device_mempool, text: 'Memory Usage' }
discovery:
- sysObjectId:
- .1.3.6.1.4.1.22610.1.3

View File

@ -0,0 +1,88 @@
mib: mibs/a10/A10-AX-MIB
modules:
sensors:
state:
data:
-
oid: axSysPowerSupplyStatusTable
value: axPowerSupplyStatus
num_oid: .1.3.6.1.4.1.22610.2.4.1.5.12.1.3.
descr: axPowerSupplyName
index: 'axPowerSupplyStatus.{{ $index }}'
states:
- { value: 0, descr: off, graph: 1, generic: 2 }
- { value: 1, descr: on, graph: 1, generic: 0 }
- { value: 2, descr: absent, graph: 1, generic: 1 }
- { value: -1, descr: unknown, graph: 1, generic: 3 }
-
oid: axSysFanStatusTable
value: axFanStatus
num_oid: .1.3.6.1.4.1.22610.2.4.1.5.9.1.3.
descr: axFanName
index: 'axFanStatus.{{ $index }}'
states:
- { value: 0, descr: failed, graph: 1, generic: 2 }
- { value: 4, descr: okFixedHigh, graph: 1, generic: 0 }
- { value: 5, descr: okLowMed, graph: 1, generic: 0 }
- { value: 6, descr: okMedMed, graph: 1, generic: 0 }
- { value: 7, descr: okMedHigh, graph: 1, generic: 0 }
- { value: -2, descr: notReady, graph: 1, generic: 1 }
- { value: -1, descr: unknown, graph: 1, generic: 3 }
-
oid: axPowerSupplyVoltageTable
value: axPowerSupplyVoltageStatus
num_oid: .1.3.6.1.4.1.22610.2.4.1.5.11.1.2.
descr: axPowerSupplyVoltageDescription
index: 'axPowerSupplyVoltageStatus.{{ $index }}'
states:
- { value: 0, descr: invalid, graph: 1, generic: 2 }
- { value: 1, descr: normal, graph: 1, generic: 0 }
- { value: 2, descr: unknown, graph: 1, generic: 3 }
-
oid: axSysHwPhySystemTempStatus
num_oid: .1.3.6.1.4.1.22610.2.4.1.5.5.
descr: System Temp
index: 'axSysHwPhySystemTempStatus.{{ $index }}'
states:
- { value: 0, descr: failed, graph: 1, generic: 2 }
- { value: 1, descr: low-med, graph: 1, generic: 0 }
- { value: 2, descr: med-med, graph: 1, generic: 1 }
- { value: 3, descr: med-high, graph: 1, generic: 1 }
- { value: 4, descr: ok, graph: 1, generic: 0 }
voltage:
data:
-
oid: axPowerSupplyVoltageTotal
num_oid: .1.3.6.1.4.1.22610.2.4.1.5.10.
index: 'axPowerSupplyVoltageTotal.{{ $index }}'
descr: Power Supply
fanspeed:
data:
-
oid: axSysFanStatusTable
value: axFanSpeed
num_oid: .1.3.6.1.4.1.22610.2.4.1.5.9.1.4.
descr: axFanName
index: 'axFanName.{{ $index }}'
-
oid: axSysHwFan1Speed
num_oid: .1.3.6.1.4.1.22610.2.4.1.5.2.
descr: Fan 1 Speed
index: 'axSysHwFan1Speed.{{ $index }}'
-
oid: axSysHwFan2Speed
num_oid: .1.3.6.1.4.1.22610.2.4.1.5.3.
descr: Fan 2 Speed
index: 'axSysHwFan2Speed.{{ $index }}'
-
oid: axSysHwFan3Speed
num_oid: .1.3.6.1.4.1.22610.2.4.1.5.4.
descr: Fan 3 Speed
index: 'axSysHwFan3Speed.{{ $index }}'
temperature:
data:
-
oid: axSysHwPhySystemTemp
num_oid: .1.3.6.1.4.1.22610.2.4.1.5.1.
descr: System Temp
index: 'axSysHwPhySystemTemp.{{ $index }}'

View File

@ -0,0 +1,32 @@
<?php
/**
* acos.inc.php
*
* LibreNMS mempools discovery module for A10 ACOS
*
* 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.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2017 Neil Lathwood
* @author Neil Lathwood <gh+n@laf.io>
*/
if ($device['os'] === 'acos') {
echo 'ACOS: ';
$usage = snmp_get($device, 'axSysMemoryUsage.0', '-Ovq', 'A10-AX-MIB');
if (is_numeric($usage)) {
discover_mempool($valid_mempool, $device, 0, 'acos', 'System Memory', '1024', null, null);
}
}

View File

@ -0,0 +1,36 @@
<?php
/**
* acos.inc.php
*
* LibreNMS processors discovery module for A10 ACOS
*
* 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.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2017 Neil Lathwood
* @author Neil Lathwood <gh+n@laf.io>
*/
if ($device['os'] === 'acos') {
echo 'ACOS: ';
$acos_procs = snmpwalk_group($device, 'axSysCpuTable', 'A10-AX-MIB');
foreach ($acos_procs as $proc_index => $proc_info) {
$usage = $proc_info['axSysCpuUsageValue'];
if (is_numeric($usage)) {
$descr = "Proc #$proc_index";
discover_processor($valid['processor'], $device, ".1.3.6.1.4.1.22610.2.4.1.3.2.1.3.$proc_index", $proc_index, 'acos', $descr, '1', $usage, null, null);
}
}
}

View File

@ -0,0 +1,31 @@
<?php
/**
* acos.inc.php
*
* LibreNMS mempools poller module for A10 ACOS
*
* 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.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2016 Neil Lathwood
* @author Neil Lathwood <neil@lathwood.co.uk>
*/
if ($device['os'] === 'acos') {
echo 'ACOS: ';
$mempool['used'] = snmp_get($device, 'axSysMemoryUsage.0', '-Ovq', 'A10-AX-MIB');
$mempool['total'] = snmp_get($device, 'axSysMemoryTotal.0', '-Ovq', 'A10-AX-MIB');
$mempool['free'] = $mempool['total'] - $mempool['used'];
}

View File

@ -0,0 +1,28 @@
<?php
/**
* acos.inc.php
*
* LibreNMS os poller module for A10 ACOS
*
* 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.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2016 Neil Lathwood
* @author Neil Lathwood <neil@lathwood.co.uk>
*/
$acos_temp = snmp_get_multi($device, 'axSysSerialNumber.0 axSysFirmwareVersion.0', '-OQUs', 'A10-AX-MIB');
$serial = $acos_temp[0]['axSysSerialNumber'];
$version = $acos_temp[0]['axSysFirmwareVersion'];

View File

@ -200,7 +200,7 @@ function snmp_get_multi($device, $oids, $options = '-OQUs', $mib = null, $mibdir
foreach (explode("\n", $data) as $entry) { foreach (explode("\n", $data) as $entry) {
list($oid,$value) = explode('=', $entry, 2); list($oid,$value) = explode('=', $entry, 2);
$oid = trim($oid); $oid = trim($oid);
$value = trim($value); $value = trim($value, "\" \n\r");
list($oid, $index) = explode('.', $oid, 2); list($oid, $index) = explode('.', $oid, 2);
if (!strstr($value, 'at this OID') && isset($oid) && isset($index)) { if (!strstr($value, 'at this OID') && isset($oid) && isset($index)) {
$array[$index][$oid] = $value; $array[$index][$oid] = $value;

10368
mibs/a10/A10-AX-MIB Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

241
mibs/a10/A10-COMMON-MIB Normal file
View File

@ -0,0 +1,241 @@
--
-- File Name : A10-COMMON-MIB.txt
--
-- Copyright(C) 2005-2011, A10 Networks Inc. All rights reserved.
-- Software for all A10 products contain trade secrets and confidential
-- information of A10 Networks and its subsidiaries and may not be disclosed,
-- copied, reproduced or distributed to anyone outside of A10 Networks
-- without prior written consent of A10 Networks, Inc.
--
-- Description: This is the A10 Common MIB file. It's the root of all A10 products MIB OIDs.
--
-- History:
--
--
--
A10-COMMON-MIB DEFINITIONS ::= BEGIN
--================================================================
-- A10-COMMON-MIB
-- A private enterprise MIB for A10 Networks, Inc.
--================================================================
IMPORTS
enterprises, OBJECT-IDENTITY, MODULE-IDENTITY
FROM SNMPv2-SMI;
a10 MODULE-IDENTITY
LAST-UPDATED "200611071327Z"
ORGANIZATION "A10 Networks, Inc."
CONTACT-INFO "Address: A10 Networks, Inc.
2309 Bering Drive
San Jose, CA 95131
Phone: +1-888-822-7210 (USA/Canada)
+1-408-325-8676 (International)
E-mail: support@A10Networks.com"
DESCRIPTION "This file defines the private enterprise MIB of A10 Networks, Inc."
::= { enterprises 22610 }
a10Products OBJECT-IDENTITY
STATUS current
DESCRIPTION "a10Products is the root OBJECT IDENTIFIER from which sysObjectID values are assigned."
::= { a10 1 }
a10Mgmt OBJECT-IDENTITY
STATUS current
DESCRIPTION "root OID of A10 product management MIBs"
::= { a10 2 }
-- The following are product OIDs
a10IDsentrie OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the IDsentrie family appliances"
::= { a10Products 1 }
a10IDsentrie1000 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, IDsentrie 1000 appliance"
::= { a10IDsentrie 1 }
a10StealthWatch OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the StealthWatch IDentity 1000 appliance"
::= { a10IDsentrie 2 }
a10RetiEntity1000 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the RetiEntity 1000 appliance"
::= { a10IDsentrie 3 }
a10EX OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the Edge accelerator family appliances"
::= { a10Products 2 }
a10EX2100 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, Edge accelerator EX2100, appliance"
::= { a10EX 1 }
a10EX2180 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, Edge accelerator EX2180, appliance"
::= { a10EX 2 }
a10EX2200 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, Edge accelerator EX2200, appliance"
::= { a10EX 3 }
a10EX2280 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, Edge accelerator EX2280, appliance"
::= { a10EX 4 }
a10AX OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the advanced traffic manager product family"
::= { a10Products 3 }
a10AX2100 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX2100 Advanced Traffic Manager"
::= { a10AX 1 }
a10AX3100 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX3100 Advanced Traffic Manager"
::= { a10AX 2 }
a10AX3200 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX3200 Advanced Traffic Manager"
::= { a10AX 3 }
a10AX2200 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX2200 Advanced Traffic Manager"
::= { a10AX 4 }
a10AX2000 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX2000 Advanced Traffic Manager"
::= { a10AX 5 }
a10AX1000 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX1000 Advanced Traffic Manager"
::= { a10AX 6 }
a10AX5200 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX5200 Advanced Traffic Manager"
::= { a10AX 7 }
a10AX2500 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX2500 Advanced Traffic Manager"
::= { a10AX 8 }
a10AX2600 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX2600 Advanced Traffic Manager"
::= { a10AX 9 }
a10AX3000 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX3000 Advanced Traffic Manager"
::= { a10AX 10 }
a10HitachiBladeServer OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, Hitachi Blade Server Advanced Traffic Manager"
::= { a10AX 11 }
a10AX5100 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX5100 Advanced Traffic Manager"
::= { a10AX 12 }
a10SoftAX OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, SoftAX Advanced Traffic Manager"
::= { a10AX 13 }
a10AX3030 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX3030 Advanced Traffic Manager"
::= { a10AX 14 }
a10AX1030 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX1030 Advanced Traffic Manager"
::= { a10AX 15 }
a10AX3200-12 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX3200-12 Advanced Traffic Manager"
::= { a10AX 16 }
a10AX3400 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX3400 Advanced Traffic Manager"
::= { a10AX 17 }
a10AX3530 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX3530 Advanced Traffic Manager"
::= { a10AX 18 }
a10AX5630 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, AX5630 Advanced Traffic Manager"
::= { a10AX 19 }
a10TH6430 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, TH6430 Unified Application Service Gateway"
::= { a10AX 20 }
a10TH5430 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, TH5430 Unified Application Service Gateway"
::= { a10AX 21 }
a10TH3030S OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, TH3030S Unified Application Service Gateway"
::= { a10AX 22 }
a10TH1030S OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, TH1030S Unified Application Service Gateway"
::= { a10AX 23 }
a10TH930S OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, TH930S Unified Application Service Gateway"
::= { a10AX 24 }
a10CentMgmt OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the centralized management product family"
::= { a10Products 4 }
a10AGA1 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, aGalaxy1 Centralized Management Appliance"
::= { a10CentMgmt 1 }
a10AGA5000 OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, aGalaxy5000 Centralized Management Appliance"
::= { a10CentMgmt 2 }
a10SoftAGA OBJECT-IDENTITY
STATUS current
DESCRIPTION "OID assigned to the model, aGalaxy Centralized Management Virtual Appliance"
::= { a10CentMgmt 3 }
END

View File

@ -1408,7 +1408,7 @@ state_translations:
state_index_id: { Field: state_index_id, Type: int(11), 'Null': false, Default: 'NULL', Extra: '' } state_index_id: { Field: state_index_id, Type: int(11), 'Null': false, Default: 'NULL', Extra: '' }
state_lastupdated: { Field: state_lastupdated, Type: timestamp, 'Null': false, Default: CURRENT_TIMESTAMP, Extra: 'on update CURRENT_TIMESTAMP' } state_lastupdated: { Field: state_lastupdated, Type: timestamp, 'Null': false, Default: CURRENT_TIMESTAMP, Extra: 'on update CURRENT_TIMESTAMP' }
state_translation_id: { Field: state_translation_id, Type: int(11), 'Null': false, Default: 'NULL', Extra: auto_increment } state_translation_id: { Field: state_translation_id, Type: int(11), 'Null': false, Default: 'NULL', Extra: auto_increment }
state_value: { Field: state_value, Type: 'smallint(5) unsigned', 'Null': false, Default: 'NULL', Extra: '' } state_value: { Field: state_value, Type: smallint(5), 'Null': false, Default: '0', Extra: '' }
Indexes: Indexes:
PRIMARY: { Name: PRIMARY, Columns: [state_translation_id], Unique: true, Type: BTREE } PRIMARY: { Name: PRIMARY, Columns: [state_translation_id], Unique: true, Type: BTREE }
state_index_id_value: { Name: state_index_id_value, Columns: [state_index_id, state_value], Unique: true, Type: BTREE } state_index_id_value: { Name: state_index_id_value, Columns: [state_index_id, state_value], Unique: true, Type: BTREE }

1
sql-schema/207.sql Normal file
View File

@ -0,0 +1 @@
ALTER TABLE `state_translations` CHANGE `state_value` `state_value` smallint(5) NOT NULL DEFAULT 0;

View File

@ -0,0 +1,2 @@
1.3.6.1.2.1.1.1.0|4|Thunder Series Unified Application Service Gateway TH5630, ACOS 4.1.0-P5,
1.3.6.1.2.1.1.2.0|6|.1.3.6.1.4.1.22610.1.3.28