mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
refactor: move include based discovery after yaml discovery (#5401)
This commit is contained in:
committed by
Neil Lathwood
parent
569a3b4a8b
commit
8156fd547f
@@ -8,3 +8,5 @@ over:
|
|||||||
- { graph: device_bits, text: 'Device Traffic' }
|
- { graph: device_bits, text: 'Device Traffic' }
|
||||||
- { graph: device_processor, text: 'CPU Usage' }
|
- { graph: device_processor, text: 'CPU Usage' }
|
||||||
- { graph: device_mempool, text: 'Memory Usage' }
|
- { graph: device_mempool, text: 'Memory Usage' }
|
||||||
|
discovery:
|
||||||
|
- { sysObjectId: .1.3.6.1.4.1.4413, sysDescr_regex: [ '/^EdgeSwitch/', '/^EdgePoint/' ] }
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ group: zyxel
|
|||||||
type: network
|
type: network
|
||||||
icon: zyxel
|
icon: zyxel
|
||||||
discovery:
|
discovery:
|
||||||
- sysObjectId:
|
-
|
||||||
- .1.3.6.1.4.1.890
|
sysObjectId: .1.3.6.1.4.1.890
|
||||||
- sysDescr_regex:
|
sysDescr_regex:
|
||||||
- '^ES'
|
- '/^ES/'
|
||||||
- '^GS'
|
- '/^GS/'
|
||||||
- '^MES'
|
- '/^MES/'
|
||||||
|
|||||||
@@ -5,3 +5,8 @@ type: firewall
|
|||||||
over:
|
over:
|
||||||
- { graph: device_bits, text: Traffic }
|
- { graph: device_bits, text: Traffic }
|
||||||
icon: zyxel
|
icon: zyxel
|
||||||
|
discovery:
|
||||||
|
- sysObjectId:
|
||||||
|
- .1.3.6.1.4.1.890.1.6
|
||||||
|
- .1.3.6.1.4.1.890.1.15
|
||||||
|
- sysDescr_regex: '/^ZyWALL 2X/'
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
if (starts_with($sysObjectId, '.1.3.6.1.4.1.4413') && !str_contains($sysDescr, array('vxworks', 'Quanta', 'FASTPATH Switching'), true)) {
|
|
||||||
$os = 'edgeswitch';
|
|
||||||
}
|
|
||||||
@@ -1,19 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
$skip_oids = array(
|
if (starts_with($sysDescr, 'Linux')) {
|
||||||
'.1.3.6.1.4.1.674.10892.2',
|
|
||||||
'.1.3.6.1.4.1.17163.1.1',
|
|
||||||
'.1.3.6.1.4.1.17713.21',
|
|
||||||
'.1.3.6.1.4.1.2.3.51.3',
|
|
||||||
'.1.3.6.1.4.1.7779.', // nios
|
|
||||||
'.1.3.6.1.4.1.9.1.1348', // Cisco Unified Communications Manager
|
|
||||||
'.1.3.6.1.4.1.3375.2.1', // F5
|
|
||||||
'.1.3.6.1.4.1.534.', // Eaton
|
|
||||||
'.1.3.6.1.4.1.2620.1.6.123.1' // Checkpoint
|
|
||||||
);
|
|
||||||
|
|
||||||
if (starts_with($sysDescr, 'Linux') && !starts_with($sysObjectId, $skip_oids)) {
|
|
||||||
$os = 'linux';
|
$os = 'linux';
|
||||||
|
|
||||||
// Specific Linux-derivatives
|
// Specific Linux-derivatives
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
if (starts_with($sysDescr, 'ZyWALL 2X')) {
|
|
||||||
$os = 'zywall';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (starts_with($sysObjectId, array('.1.3.6.1.4.1.890.1.6', '.1.3.6.1.4.1.890.1.15'))) {
|
|
||||||
$os = 'zywall';
|
|
||||||
}
|
|
||||||
@@ -98,25 +98,7 @@ function getHostOS($device)
|
|||||||
|
|
||||||
d_echo("| $sysDescr | $sysObjectId | \n");
|
d_echo("| $sysDescr | $sysObjectId | \n");
|
||||||
|
|
||||||
$os = null;
|
// check yaml files
|
||||||
$pattern = $config['install_dir'] . '/includes/discovery/os/*.inc.php';
|
|
||||||
foreach (glob($pattern) as $file) {
|
|
||||||
include $file;
|
|
||||||
if (isset($os)) {
|
|
||||||
return $os;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return discover_os($sysObjectId, $sysDescr);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $sysObjectId
|
|
||||||
* @param $sysDescr
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
function discover_os($sysObjectId, $sysDescr)
|
|
||||||
{
|
|
||||||
global $config;
|
|
||||||
$pattern = $config['install_dir'] . '/includes/definitions/*.yaml';
|
$pattern = $config['install_dir'] . '/includes/definitions/*.yaml';
|
||||||
foreach (glob($pattern) as $file) {
|
foreach (glob($pattern) as $file) {
|
||||||
$tmp = Symfony\Component\Yaml\Yaml::parse(
|
$tmp = Symfony\Component\Yaml\Yaml::parse(
|
||||||
@@ -149,6 +131,17 @@ function discover_os($sysObjectId, $sysDescr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// check include files
|
||||||
|
$os = null;
|
||||||
|
$pattern = $config['install_dir'] . '/includes/discovery/os/*.inc.php';
|
||||||
|
foreach (glob($pattern) as $file) {
|
||||||
|
include $file;
|
||||||
|
if (isset($os)) {
|
||||||
|
return $os;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 'generic';
|
return 'generic';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
|
1.3.6.1.2.1.1.1.0|4|EdgeSwitch 24-Port 250W, 1.0.1.4720839, Linux 3.6.5-f4a26ed5
|
||||||
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.4413
|
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.4413
|
||||||
|
|||||||
Reference in New Issue
Block a user