Get server sensor detail over IPMI (iDRAC / iLO etc.)

Query and parse your Dell iDRAC sensor data, such as fan speeds / temp sensors into a Node-RED message.

Step 1: ensure that IPMI over LAN is enabled within iDRAC. Pull up the web interface to iDRAC and under iDRAC Settings > Network > IPMI Settings (top navigation bar) then check "Enable IPMI Over LAN"

Step 2: install ipmitools on your Node-RED server. e.g. on Ubuntu just run this: sudo apt install ipmitool

Step 3: import this flow, and change the value for IP address and password in the exec node

Sensor data is parsed into msg.data

image

[{"id":"19a7443e5e6d6551","type":"exec","z":"3d86e78e.17ff28","command":"ipmitool -I lanplus -H <ip-addr> -U root -P \"<passwd>\" ","addpay":"payload","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"","x":300,"y":1600,"wires":[["9ab4ed850dfdcbf4"],[],[]]},{"id":"3bab3f6f51ccd10a","type":"debug","z":"3d86e78e.17ff28","name":"debug 31","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":820,"y":1540,"wires":[]},{"id":"a8294e1001ee55e3","type":"inject","z":"3d86e78e.17ff28","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":100,"y":1520,"wires":[["f96d4150ceacda83"]]},{"id":"f96d4150ceacda83","type":"change","z":"3d86e78e.17ff28","name":"sdr elist full -c","rules":[{"t":"set","p":"payload","pt":"msg","to":"sdr elist full -c","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":160,"y":1560,"wires":[["19a7443e5e6d6551"]]},{"id":"9ab4ed850dfdcbf4","type":"function","z":"3d86e78e.17ff28","name":"Create JS object","func":"var arr = msg.payload.split('\\n'); \nmsg.data = {}\nfor (var i = 0; i < arr.length-1; i++) {\n    msg.data[arr[i].split(',')[0]] = {\n        \"val\": arr[i].split(',')[1],\n        \"unit\": arr[i].split(',')[2],\n        \"status\": arr[i].split(',')[3]\n    }\n}\n\nreturn msg;\n\n\n\n\n/*\nvar arr = msg.payload.split('\\n'); \nmsg.data = []\nfor (var i = 1; i < arr.length; i++) {\n    var obj = {\n        \"sensor\": arr[i].split(',')[0],\n        \"val\": arr[i].split(',')[1],\n        \"unit\": arr[i].split(',')[2],\n        \"status\": arr[i].split(',')[3]\n    }\n    msg.data.push(obj)\n\n}\n\nreturn msg;\n*/","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":570,"y":1540,"wires":[["3bab3f6f51ccd10a"]]},{"id":"c4079b40878710c5","type":"comment","z":"3d86e78e.17ff28","name":"iDRAC data from ipmi","info":"","x":120,"y":1480,"wires":[]}]

Flow Info

Created 2 years, 4 months ago
Rating: not yet rated

Owner

Actions

Rate:

Node Types

Core
  • change (x1)
  • comment (x1)
  • debug (x1)
  • exec (x1)
  • function (x1)
  • inject (x1)

Tags

  • ipmi
  • ipmitool
  • idrac
  • server
  • monitor
Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option