Dell IDRAC 6 - IPMI

Hi,

I’ve been trying to get IPMI polling to work on some older Dell DRAC6 BMCs. The servers come equipped with the basic model which don’t support SNMP queries directly, so I was hoping to get some data through IPMI, which it does support. It seems that LibreNMS doesn’t start the polling process for these devices at all.

Basically, I added the host in question through the web UI and disabled SNMP checks (ping only). Afterwards, I added the credentials for IPMI checks in the appropriate tab. Based on the defaults.inc.php file, it sounds to me that this should practically work out of the box, without adding anything else in config.php (which I also tried but didn’t change anything). When I look at the poller output for that device, though, no IPMI query shows up. If I run ipmitool manually against the DRAC6, I can fetch the sensor data.

However, by comparison against an IDRAC8 basic controller (which supports both IPMI and SNMP). LibreNMS kicks off both the SNMPwalk and also the ipmitool queries beautifully.

The abbreviated output of poller.php for IDRAC8: ./poller.php -d -h IDRACIP -m ipmi

LibreNMS Poller
===================================
Version info:
Commit SHA: e814cd8e34a73c2441ca8eaf34cf7025bf26e2b3
Commit Date: 1522115417
DB Schema: 247
PHP: 7.0.27-0+deb9u1
MySQL: 10.1.26-MariaDB-0+deb9u1
RRDTool: 1.6.0
SNMP: NET-SNMP 5.7.3
==================================DEBUG!
Updating os_def.cache... Done
Starting polling run:

... some snmpgets

#### Load poller module ipmi ####
SQL[SELECT * FROM sensors WHERE device_id = '8' AND poller_type='ipmi']

... some arrays

Fetching IPMI sensor data...SNMP[/usr/bin/ipmitool -I lanplus -c  -H HOSTNAME -u USER -P PASSWORD -L USER sdr 2>/dev/null]

... IPMI data
... more SQLs

In comparison, on the DRAC6 (full output): ./poller.php -d -h DRACIP -m ipmi

LibreNMS Poller
===================================
Version info:
Commit SHA: e814cd8e34a73c2441ca8eaf34cf7025bf26e2b3
Commit Date: 1522115417
DB Schema: 247
PHP: 7.0.27-0+deb9u1
MySQL: 10.1.26-MariaDB-0+deb9u1
RRDTool: 1.6.0
SNMP: NET-SNMP 5.7.3
==================================DEBUG!
Updating os_def.cache... Done
Starting polling run:

SQL[SELECT * FROM `devices` WHERE `disabled` = 0 AND `hostname` = 'DRACIP' ORDER BY `device_id` ASC]
./poller.php DRACIP 2018-03-28 15:44:47 - 0 devices polled in 0.469 secs
SNMP [0/0.00s]: Get[0/0.00s] Getnext[0/0.00s] Walk[0/0.00s]
MySQL [5/0.01s]: Cell[2/0.00s] Row[0/-0.00s] Rows[3/0.00s] Column[0/0.00s] Update[0/0.00s] Insert[0/0.00s] Delete[0/0.00s]
RRD [0/0.00s]: Update[0/0.00s] Create [0/0.00s] Other[0/0.00s]

Does anybody have a clue why that might be the case? Could it be by design, so that IPMI queries only work if SNMP is enabled?

Are you saying you have snmp disable on the second device?

Yeah, we skip all polling and only ping when snmp is disabled.

Hi murrant,

yes exactly, since the 2nd device doesn’t support SNMP queries, I figured I switch it off. So that explains the IPMI polling not being executed.
However, when I activate SNMP polling and give some fake community string for that device, I have to use option “Don’t perform ICMP or SNMP checks” to be able to actually use SNMP since it tries (and fails) to connect via SNMP and the given community string. As a result, the device is marked as down and no further polling, including IPMI, is executed.

Would it be sensible to decouple the IPMI polling from SNMP polling for devices that only support IPMI? The IPMI tab is still available in the web UI if you disable SNMP, so my reasoning was that they worked independently.

Definitely, possible. Need any pointers on where to get started?

Sure, I’d appreciate that - I could definitely use some hints as I didn’t code in php so far.

IPMI lives under the sensors poller.

Sensors have a type snmp or ipmi (afaik)

So, maybe when snmp is disabled, we should still run the sensors poller, but filter out all snmp type sensors.

To figure out how polling works start with poller.php and follow the code.

For discovery, I’m not sure how to handle that yet.

https://docs.librenms.org/Developing/#good-places-to-start-to-learn-php-or-improve-your-coding

1 Like

Thanks for the heads-up, I will check it out!