From 41ad518c250c8d94e4f934d931605df28b3c2a8f Mon Sep 17 00:00:00 2001 From: Rudy Hardeman Date: Wed, 13 May 2015 08:33:48 +0200 Subject: [PATCH 1/4] Initial IPMI type detect version --- includes/defaults.inc.php | 6 ++++++ includes/discovery/ipmi.inc.php | 9 ++++++++- includes/polling/ipmi.inc.php | 4 ++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/includes/defaults.inc.php b/includes/defaults.inc.php index 305e2cc4d9..30ed7df075 100644 --- a/includes/defaults.inc.php +++ b/includes/defaults.inc.php @@ -655,4 +655,10 @@ $config['callback_clear'] = 'https://stats.libren // Stat graphs $config['alert_graph_date_format'] = '%Y-%m-%d %H:%i'; +// IPMI type +$config['ipmi']['type'][] = "lanplus"; +$config['ipmi']['type'][] = "lan"; +$config['ipmi']['type'][] = "imb"; +$config['ipmi']['type'][] = "open"; + ?> diff --git a/includes/discovery/ipmi.inc.php b/includes/discovery/ipmi.inc.php index 1ebb71c004..44989d0486 100644 --- a/includes/discovery/ipmi.inc.php +++ b/includes/discovery/ipmi.inc.php @@ -13,7 +13,14 @@ if ($ipmi['host'] = get_dev_attrib($device,'ipmi_hostname')) $remote = " -H " . $ipmi['host'] . " -U " . $ipmi['user'] . " -P " . $ipmi['password']; } - $results = external_exec($config['ipmitool'] . $remote . " sensor 2>/dev/null|sort"); + foreach ($config['ipmi']['type'] as $ipmi_type) { + $results = external_exec($config['ipmitool'] . " -I $ipmi_type". $remote . " sensor 2>/dev/null|sort"); + if ($results != "") + { + set_dev_attrib($device, 'ipmi_type', $ipmi_type); + break; + } + } $index = 0; diff --git a/includes/polling/ipmi.inc.php b/includes/polling/ipmi.inc.php index a1c1177ee6..7b6a881f97 100644 --- a/includes/polling/ipmi.inc.php +++ b/includes/polling/ipmi.inc.php @@ -6,7 +6,7 @@ if ($ipmi['host'] = get_dev_attrib($device,'ipmi_hostname')) { $ipmi['user'] = get_dev_attrib($device,'ipmi_username'); $ipmi['password'] = get_dev_attrib($device,'ipmi_password'); - + $ipmi['type'] = get_dev_attrib($device,'ipmi_type'); echo("Fetching IPMI sensor data..."); if ($config['own_hostname'] != $device['hostname'] || $ipmi['host'] != 'localhost') @@ -14,7 +14,7 @@ if ($ipmi['host'] = get_dev_attrib($device,'ipmi_hostname')) $remote = " -H " . $ipmi['host'] . " -U " . $ipmi['user'] . " -P " . $ipmi['password']; } - $results = external_exec($config['ipmitool'] . " -c " . $remote . " sdr 2>/dev/null"); + $results = external_exec($config['ipmitool'] . " -I ".$ipmi['type']." -c " . $remote . " sdr 2>/dev/null"); echo(" done.\n"); foreach (explode("\n",$results) as $row) From 2ff626b91b15046d3dee5c90a2f3dc8c50492537 Mon Sep 17 00:00:00 2001 From: Rudy Hardeman Date: Wed, 13 May 2015 08:37:08 +0200 Subject: [PATCH 2/4] Added output for discovery to show used type --- includes/discovery/ipmi.inc.php | 1 + 1 file changed, 1 insertion(+) diff --git a/includes/discovery/ipmi.inc.php b/includes/discovery/ipmi.inc.php index 44989d0486..b8d89a105e 100644 --- a/includes/discovery/ipmi.inc.php +++ b/includes/discovery/ipmi.inc.php @@ -21,6 +21,7 @@ if ($ipmi['host'] = get_dev_attrib($device,'ipmi_hostname')) break; } } + echo $ipmi_type; $index = 0; From 1d803e7ec0877ebf0d00134e813c11ec94c48c62 Mon Sep 17 00:00:00 2001 From: Rudy Hardeman Date: Wed, 13 May 2015 09:22:55 +0200 Subject: [PATCH 3/4] Updated config docs --- doc/Support/Configuration.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/doc/Support/Configuration.md b/doc/Support/Configuration.md index 3d0f2807ed..cfd6fcb281 100644 --- a/doc/Support/Configuration.md +++ b/doc/Support/Configuration.md @@ -430,6 +430,16 @@ $config['update'] = 1; ``` By default, LibreNMS will auto update itself every 24 hours. You can stop this from happening by setting `update` to 0. +#### IPMI +Setup the types of IPMI protocols to test a host for and it what order. + +```php +$config['ipmi']['type'][] = "lanplus"; +$config['ipmi']['type'][] = "lan"; +$config['ipmi']['type'][] = "imb"; +$config['ipmi']['type'][] = "open"; +``` + #### Distributed poller settings -Please see [Distributed Poller](http://docs.librenms.org/Extensions/Distributed-Poller/) section of the docs for setup and configuration options. \ No newline at end of file +Please see [Distributed Poller](http://docs.librenms.org/Extensions/Distributed-Poller/) section of the docs for setup and configuration options. From 2862e5bc678ac1ebc9c7c1ef9673c936efd760b8 Mon Sep 17 00:00:00 2001 From: Rudy Hardeman Date: Wed, 13 May 2015 09:23:30 +0200 Subject: [PATCH 4/4] Updated config docs --- doc/Support/Configuration.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/Support/Configuration.md b/doc/Support/Configuration.md index cfd6fcb281..e4592e0a22 100644 --- a/doc/Support/Configuration.md +++ b/doc/Support/Configuration.md @@ -434,6 +434,7 @@ By default, LibreNMS will auto update itself every 24 hours. You can stop this f Setup the types of IPMI protocols to test a host for and it what order. ```php +$config['ipmi']['type'] = array(); $config['ipmi']['type'][] = "lanplus"; $config['ipmi']['type'][] = "lan"; $config['ipmi']['type'][] = "imb";