Merge pull request #2792 from Rosiak/reload-oxidized-node-list

Ability to reload Oxidized node list, when a device is added
This commit is contained in:
Neil Lathwood
2016-01-17 18:36:17 +00:00
5 changed files with 32 additions and 0 deletions

View File

@@ -53,6 +53,14 @@ You will need to configure default credentials for your devices, LibreNMS doesn'
X-Auth-Token: '01582bf94c03104ecb7953dsadsadwed'
```
LibreNMS is able to reload the Oxidized list of nodes, each time a device is added to LibreNMS.
To do so, edit the option in Global Settings>External Settings>Oxidized Integration or add the following to your config.php.
```php
$config['oxidized']['reload_nodes'] = TRUE;
```
### Using Groups
To return a group to Oxidized you can do this by matching a regex for either hostname or location. The order is hostname is matched first, if nothing is found then location is attempted.

View File

@@ -25,6 +25,10 @@ $oxidized_conf = array(
'descr' => 'Set the default group returned',
'type' => 'text',
),
array('name' => 'oxidized.reload_nodes',
'descr' => 'Reload Oxidized nodes list, each time a device is added',
'type' => 'checkbox',
),
);
$unixagent_conf = array(

View File

@@ -473,6 +473,7 @@ $config['rancid_ignorecomments'] = 0;
$config['smokeping']['pings'] = 20;
// $config['oxidized']['enabled'] = FALSE;//Set to TRUE
// $config['oxidized']['url'] = 'http://127.0.0.1:8888';// Set the Oxidized rest URL
// $config['oxidized']['reload_nodes'] = FALSE;//Set to TRUE, check documentation
// NFSen RRD dir.
$config['nfsen_enable'] = 0;
// $config['nfsen_split_char'] = "_";

View File

@@ -580,6 +580,7 @@ function createHost($host, $community = NULL, $snmpver, $port = 161, $transport
if (host_exists($host) === false) {
$device_id = dbInsert($device, 'devices');
if ($device_id) {
oxidized_reload_nodes();
return($device_id);
}
else {
@@ -1302,3 +1303,20 @@ function warn_innodb_buffer($innodb_buffer) {
$output .= 'Config proposal: "innodb_buffer_pool_size = '.pow(2,ceil(log(($innodb_buffer['used'] / 1024 / 1024),2))).'M"'.PHP_EOL;
return $output;
}
function oxidized_reload_nodes() {
global $config;
if ($config['oxidized']['enabled'] === TRUE && $config['oxidized']['reload_nodes'] === TRUE && isset($config['oxidized']['url'])) {
$oxidized_reload_url = $config['oxidized']['url'] . '/reload';
$ch = curl_init($oxidized_reload_url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_exec($ch);
curl_close($ch);
}
}

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

@@ -0,0 +1 @@
INSERT INTO config (config_name,config_value,config_default,config_descr,config_group,config_group_order,config_sub_group,config_sub_group_order,config_hidden,config_disabled) values ('oxidized.reload_nodes','false','false','Reload Oxidized nodes list, each time a device is added','external',0,'oxidized',0,'0','0');