Hi all,
I attached archive with scripts and template for auto-discovery and monitor hardware status parameters and more other information on HP Proliant servers via iLO IPMI interface.
Overview
Template allows to collect this types of data:
- Temperatures, FANs, power supplies for Proliants G5 and above,
- Disks and memory status for Proliants G7 and above,
- General inventory information such as serial and model numbers, firmware versions etc.
This solution requires FreeIPMI package to be installed.
Archive contains template and two perl scripts:
ilo_discovery.pl - querying iLO for items and generating standard JSON output for LLD,
ipmi_proliant.pl - querying all data for specified ipmi section (sensors, chassis, fru etc). Data will be cached in temporary file to prevent iLO to be overloaded by IPMI requests. Then specified value retrieving from cache.
Installation
1. Download archive and import template into Zabbix,
2. Place scripts to "externalscripts" directory path as configured in zabbix_server.conf, and make them executable,
3. Download and compile FreeIPMI (FAQ for installation can be found there):
For 64-bit systems configure string will be:
4. Create account with "user" rights for Zabbix in your iLO. This account not required administrative privilegies. Then replace values of $user and $pass variables in scripts to login and password of this account, that will be used to collect data from iLO.
5. Check FreeIPMI to success connect with iLO (replace IP, login and password to yours):
We should get something like this output:
6. Check discovery script to success parsing IPMI data (replace IP to yours):
We should get something like this output:
7. In Zabbix web interface, go to our host that we want to monitor via iLO and create macros {$ILO} with address of our iLO. "IPMI interface" host field not used.
8. Attach template "Template IPMI Script iLO Discovery" to host,
9. Wait for discovery will be complete. At the end of it, we should get something like this in "lastest data":

And in "graphs":

That's all. This solution was tested with Zabbix 2.0 and 2.2 on CentOS 5 and CentOS6 (x86 and x64), for Proliants DL, ML and BL generation 5, 6, 7 and 8. For servers with lo100 it will also work, but the data will be less beacuse of lo100 restrictions.
General recomendaion: upgrade your iLO firmware to lastest version before using this.
I attached archive with scripts and template for auto-discovery and monitor hardware status parameters and more other information on HP Proliant servers via iLO IPMI interface.
Overview
Template allows to collect this types of data:
- Temperatures, FANs, power supplies for Proliants G5 and above,
- Disks and memory status for Proliants G7 and above,
- General inventory information such as serial and model numbers, firmware versions etc.
This solution requires FreeIPMI package to be installed.
Archive contains template and two perl scripts:
ilo_discovery.pl - querying iLO for items and generating standard JSON output for LLD,
ipmi_proliant.pl - querying all data for specified ipmi section (sensors, chassis, fru etc). Data will be cached in temporary file to prevent iLO to be overloaded by IPMI requests. Then specified value retrieving from cache.
Installation
1. Download archive and import template into Zabbix,
2. Place scripts to "externalscripts" directory path as configured in zabbix_server.conf, and make them executable,
3. Download and compile FreeIPMI (FAQ for installation can be found there):
Code:
# wget http://ftp.gnu.org/gnu/freeipmi/freeipmi-1.2.1.tar.gz # tar -xvzf freeipmi-1.2.1.tar.gz # cd freeipmi-1.2.1 # ./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --mandir=/usr/share/man # make install
Code:
./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --mandir=/usr/share/man --libdir=/usr/lib64
5. Check FreeIPMI to success connect with iLO (replace IP, login and password to yours):
Code:
# /usr/sbin/ipmi-sensors -D LAN2_0 -h 192.168.0.1 -u monitor -p P@$$w0rd -l USER -W discretereading --no-header-output --quiet-cache --sdr-cache-recreate --comma-separated-output --entity-sensor-names
Code:
0,System Chassis 1 UID Light,OEM Reserved,N/A,N/A,'OEM Event = 0000h' 1,System Chassis 2 Health LED,OEM Reserved,N/A,N/A,'OEM Event = 0000h' 2,Processor Module VRM 1,Power Unit,N/A,N/A,'Device Inserted/Device Present' 3,Power Supply Power Supply 1,Power Supply,N/A,N/A,'Presence detected'
Code:
# /usr/lib/zabbix/externalscripts/ilo_discovery.pl 192.168.0.1 sensor temp numeric
Code:
{
"data":[
{
"{#CLASS}":"sensor",
"{#KEY}":"Air Inlet 01-Inlet Ambient",
"{#SECTION}":"Temperature",
"{#TYPE}":"numeric",
"{#MEASURE}":"C"},
{
"{#CLASS}":"sensor",
"{#KEY}":"Processor 02-CPU",
"{#SECTION}":"Temperature",
"{#TYPE}":"numeric",
"{#MEASURE}":"C"},
8. Attach template "Template IPMI Script iLO Discovery" to host,
9. Wait for discovery will be complete. At the end of it, we should get something like this in "lastest data":

And in "graphs":

That's all. This solution was tested with Zabbix 2.0 and 2.2 on CentOS 5 and CentOS6 (x86 and x64), for Proliants DL, ML and BL generation 5, 6, 7 and 8. For servers with lo100 it will also work, but the data will be less beacuse of lo100 restrictions.
General recomendaion: upgrade your iLO firmware to lastest version before using this.
:
Comment