Skip to content
This repository has been archived by the owner on Sep 13, 2024. It is now read-only.

Commit

Permalink
Merge pull request #19 from hellerda/IBMSystemxIMM_1.0.0
Browse files Browse the repository at this point in the history
Ibm systemx imm 1.0.0
  • Loading branch information
nyeates committed Sep 27, 2011
2 parents 374b896 + 082ceaa commit ec73644
Show file tree
Hide file tree
Showing 32 changed files with 389 additions and 123 deletions.
10 changes: 10 additions & 0 deletions ZenPacks.community.IBMSystemxIMM/EGG-INFO/PKG-INFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Metadata-Version: 1.0
Name: ZenPacks.community.IBMSystemxIMM
Version: 1.0.0
Summary: UNKNOWN
Home-page: UNKNOWN
Author: IBM
Author-email: UNKNOWN
License: UNKNOWN
Description: UNKNOWN
Platform: UNKNOWN
83 changes: 83 additions & 0 deletions ZenPacks.community.IBMSystemxIMM/EGG-INFO/SOURCES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
MANIFEST.in
README.txt
setup.py
ZenPacks/__init__.py
ZenPacks/__init__.pyc
ZenPacks.community.IBMSystemxIMM.egg-info/PKG-INFO
ZenPacks.community.IBMSystemxIMM.egg-info/SOURCES.txt
ZenPacks.community.IBMSystemxIMM.egg-info/dependency_links.txt
ZenPacks.community.IBMSystemxIMM.egg-info/entry_points.txt
ZenPacks.community.IBMSystemxIMM.egg-info/namespace_packages.txt
ZenPacks.community.IBMSystemxIMM.egg-info/not-zip-safe
ZenPacks.community.IBMSystemxIMM.egg-info/test_info.txt
ZenPacks.community.IBMSystemxIMM.egg-info/top_level.txt
ZenPacks.community.IBMSystemxIMM.egg-info/zenpack_info
ZenPacks/community/__init__.py
ZenPacks/community/__init__.pyc
ZenPacks/community/IBMSystemxIMM/IMMComponentLog.py
ZenPacks/community/IBMSystemxIMM/IMMComponentLog.pyc
ZenPacks/community/IBMSystemxIMM/IMMComponentVpd.py
ZenPacks/community/IBMSystemxIMM/IMMComponentVpd.pyc
ZenPacks/community/IBMSystemxIMM/IMMCpuVpd.py
ZenPacks/community/IBMSystemxIMM/IMMCpuVpd.pyc
ZenPacks/community/IBMSystemxIMM/IMMDevice.py
ZenPacks/community/IBMSystemxIMM/IMMDevice.pyc
ZenPacks/community/IBMSystemxIMM/IMMFanMon.py
ZenPacks/community/IBMSystemxIMM/IMMFanMon.pyc
ZenPacks/community/IBMSystemxIMM/IMMFwVpd.py
ZenPacks/community/IBMSystemxIMM/IMMFwVpd.pyc
ZenPacks/community/IBMSystemxIMM/IMMMemVpd.py
ZenPacks/community/IBMSystemxIMM/IMMMemVpd.pyc
ZenPacks/community/IBMSystemxIMM/IMMVoltMon.py
ZenPacks/community/IBMSystemxIMM/IMMVoltMon.pyc
ZenPacks/community/IBMSystemxIMM/__init__.py
ZenPacks/community/IBMSystemxIMM/__init__.pyc
ZenPacks/community/IBMSystemxIMM/__init__.pyo
ZenPacks/community/IBMSystemxIMM/configure.zcml
ZenPacks/community/IBMSystemxIMM/info.py
ZenPacks/community/IBMSystemxIMM/info.pyc
ZenPacks/community/IBMSystemxIMM/interfaces.py
ZenPacks/community/IBMSystemxIMM/interfaces.pyc
ZenPacks/community/IBMSystemxIMM/datasources/__init__.py
ZenPacks/community/IBMSystemxIMM/datasources/__init__.pyo
ZenPacks/community/IBMSystemxIMM/lib/__init__.py
ZenPacks/community/IBMSystemxIMM/lib/__init__.pyo
ZenPacks/community/IBMSystemxIMM/migrate/__init__.py
ZenPacks/community/IBMSystemxIMM/migrate/__init__.pyo
ZenPacks/community/IBMSystemxIMM/modeler/__init__.py
ZenPacks/community/IBMSystemxIMM/modeler/__init__.pyc
ZenPacks/community/IBMSystemxIMM/modeler/__init__.pyo
ZenPacks/community/IBMSystemxIMM/modeler/plugins/__init__.py
ZenPacks/community/IBMSystemxIMM/modeler/plugins/__init__.pyc
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/__init__.py
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/__init__.pyc
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMComponentLogMap.py
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMComponentLogMap.pyc
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMComponentVpdMap.py
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMComponentVpdMap.pyc
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMCpuVpdMap.py
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMCpuVpdMap.pyc
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMDeviceMap.py
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMDeviceMap.pyc
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMFanMonMap.py
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMFanMonMap.pyc
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMFwVpdMap.py
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMFwVpdMap.pyc
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMMemVpdMap.py
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMMemVpdMap.pyc
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMVoltMonMap.py
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/IBMIMMVoltMonMap.pyc
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/__init__.py
ZenPacks/community/IBMSystemxIMM/modeler/plugins/community/snmp/__init__.pyc
ZenPacks/community/IBMSystemxIMM/objects/objects.xml
ZenPacks/community/IBMSystemxIMM/resources/IBMSystemxIMM.js
ZenPacks/community/IBMSystemxIMM/skins/ZenPacks.community.IBMSystemxIMM/IMMComponentLogDetail.pt
ZenPacks/community/IBMSystemxIMM/skins/ZenPacks.community.IBMSystemxIMM/IMMComponentVpdDetail.pt
ZenPacks/community/IBMSystemxIMM/skins/ZenPacks.community.IBMSystemxIMM/IMMCpuVpdDetail.pt
ZenPacks/community/IBMSystemxIMM/skins/ZenPacks.community.IBMSystemxIMM/IMMFanMonDetail.pt
ZenPacks/community/IBMSystemxIMM/skins/ZenPacks.community.IBMSystemxIMM/IMMFwVpdDetail.pt
ZenPacks/community/IBMSystemxIMM/skins/ZenPacks.community.IBMSystemxIMM/IMMMemVpdDetail.pt
ZenPacks/community/IBMSystemxIMM/skins/ZenPacks.community.IBMSystemxIMM/IMMVoltMonDetail.pt
ZenPacks/community/IBMSystemxIMM/skins/ZenPacks.community.IBMSystemxIMM/README.txt
ZenPacks/community/IBMSystemxIMM/tests/__init__.py
ZenPacks/community/IBMSystemxIMM/tests/__init__.pyo
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

3 changes: 3 additions & 0 deletions ZenPacks.community.IBMSystemxIMM/EGG-INFO/entry_points.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[zenoss.zenpacks]
ZenPacks.community.IBMSystemxIMM = ZenPacks.community.IBMSystemxIMM

Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ZenPacks
ZenPacks.community
1 change: 1 addition & 0 deletions ZenPacks.community.IBMSystemxIMM/EGG-INFO/not-zip-safe
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

4 changes: 4 additions & 0 deletions ZenPacks.community.IBMSystemxIMM/EGG-INFO/test_info.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
test_module = None
test_suite = None
test_loader = None
tests_require =
1 change: 1 addition & 0 deletions ZenPacks.community.IBMSystemxIMM/EGG-INFO/top_level.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ZenPacks
1 change: 1 addition & 0 deletions ZenPacks.community.IBMSystemxIMM/EGG-INFO/zenpack_info
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
compatZenossVers: >= 3.0
2 changes: 1 addition & 1 deletion ZenPacks.community.IBMSystemxIMM/INSTALL.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Add installation notes here.
See README.TXT
147 changes: 146 additions & 1 deletion ZenPacks.community.IBMSystemxIMM/README.txt
Original file line number Diff line number Diff line change
@@ -1 +1,146 @@
This directory is a template for the creation of new ZenPacks. When a user creates a new ZenPack via the Zenoss gui this directory is copied, modified and installed in $ZENHOME/ZenPacks.
========================================================================================================================
Zenpack: IBM System x Integrated Management Module...
========================================================================================================================
------------------------------------------------------------------------------------------------------------------------
Developed by:
------------------------------------------------------------------------------------------------------------------------
IBM Linux Technology Center

------------------------------------------------------------------------------------------------------------------------
Description:
------------------------------------------------------------------------------------------------------------------------
The IBMSystemxIMM Zenpack supports out-of-band management (that is, independent of the running OS) for IBM System x servers with Integrated Management Module (IMM). IMM is an onboard Management Processor that provides monitoring, alerting, remote management and remote control of IBM servers. IMM supports IPMI 2.0, Serial over LAN (SOL), SNMP v1 and v3, telnet, ssh, SMASH CLP, SLP, CIM, SMTP and Web Access via HTTP/HTTPS.

The primary interface to IMM for the IBMSystemxIMM Zenpack is via SNMP. (as of v0.3.1 it has been tested with SNMP v1 only) The Zenpack currently supports the following features:

Configuration data (Modeler Plugins):
- Device-level Vital Product Data (VPD): Machine Type Model (MTM), Serial Number, UUID, etc.
- Firmware VPD
- CPU VPD (not supported on all IBM servers)
- Memory VPD
- Chassis Component VPD
- Chassis Component Log
- System Fan Monitors
- System Voltage Monitors

Performance data (Monitoring Templates):
- Ambient Temperature (device level)
- Fan Speeds (component level)
- System Voltages (component level)

Device Classes:
- /Server/IMM

Event Classes:
- /Events/IMM


------------------------------------------------------------------------------------------------------------------------
Components:
------------------------------------------------------------------------------------------------------------------------
The Zenpack automatically installs the following:

Device Class: /Server/IMM

Modeler Plugins:
- community.snmp.IBMIMMDeviceMap
- community.snmp.IBMIMMFwVpdMap
- community.snmp.IBMIMMCpuVpdMap
- community.snmp.IBMIMMMemVpdMap
- community.snmp.IBMIMMComponentVpdMap
- community.snmp.IBMIMMComponentLogMap
- community.snmp.IBMIMMFanMonMap
- community.snmp.IBMIMMVoltMonMap

Monitoring Templates (only IMMAmbientTemp will be bound the the device (green checkmark); the other two are component-level collectors):

- Devices
`- Server
`- IMM
|- IMMAmbientTemp (Locally defined)
|- IMMFanMon (Locally defined)
`- IMMVoltMon (Locally defined)

Event Class: /Events/IMM

Event Mappings: for all traps defined in IMMALERT-MIB, mapped to /Events/IMM, severity mapped to Zenoss severity levels.


------------------------------------------------------------------------------------------------------------------------
Requirements:
------------------------------------------------------------------------------------------------------------------------
- Zenoss Versions Supported: >= 3.0
- External Dependencies: IBM System x server with Integrated Management Module, SNMP enabled.
- ZenPack Dependencies: None
- Installation Notes: See above
- Configuration: No config required other than SNMP community string, etc.


------------------------------------------------------------------------------------------------------------------------
Installation:
------------------------------------------------------------------------------------------------------------------------
1. Enable SNMP protocol on the IMM via the IMM's web UI. Specifically you need to configure: IMM Control > Network Protocols, and optionally IMM Control > Alert. Follow your server admin guide or the online help (in the web UI).

2. Install the IMM-MIB and IMMALERT-MIB in Zenoss per the standard procedure, i.e. Advanced > MIBs > Add MIB. The IMM mibs are included with any IMM firmware download (http://www.ibm.com/support/). Look for the .mib files in zip file containing the firmware.

Alternately, to install MIBs from the command line, copy the files to: /opt/zenoss/share/mibs/site/ and:

$ su - zenoss
$ zenmib run $ZENHOME/share/mibs/site/imm.mib
$ zenmib run $ZENHOME/share/mibs/site/immalert.mib

3. Install the IBMSystemxIMM Zenpack from .egg per the standard procedure, i.e. Advanced > Zenpacks > Install Zenpack. 'zopectl restart' after installing.

Alternately, to install from command line:
$ zenpack --install ZenPacks.community.IBMSystemxIMM-0.3.0-py2.6.egg

4. Discover the server via the IP address of the IMM (not the IP of the running OS instance) per the standard procedure, i.e. Infrastructure > Devices > Add Device. Use device class: /Server/IMM. Follow the discovery output or wait a few mins for modeling to complete.

Alternately, to discover from command line (device cannot exist first):
$ zendisc run --now -d myserverIMM.mydomain.com --monitor localhost --deviceclass /Server/IMM

5. After it's discovered (and modeled) navigate to the device and you should see the following entries under Components:

- Components
|- IMM Chassis Component Log
|- IMM Chassis Component VPD
|- IMM CPU VPD # if applicable; not supported on M2/M3
|- IMM Fan Monitors
|- IMM Firmware VPD
|- IMM Memory VPD
`- IMM Voltage Monitors

The Fan and Voltage Monitors should have Graphs. The Device level Graphs should include AmbientTemp.

It should model it on discovery but just fyi, to run the modeler from cli:

$ zenmodeler run -d myserverIMM.mydomain.com

6. Troubleshooting:

If you have missing entries under Components list try restarting zopeclt & zenhub. Navigate AWAY from the device in the UI then navigate back. If all else fails try deleting and rediscovering the device.

If it's not collecting performance data (graphs) you can try this, or the steps below. (IMMAmbientTemp and IMMVoltMon are SNMP Datasources; IMMFanMon is a COMMAND Datasource):

$ zenperfsnmp restart
$ zencommand restart


================================================================================
TROUBLESHOOTING PERF COLLECTION PROBLEMS:
================================================================================
## -- look for errors here...
tail -F /opt/zenoss/log/zenperfsnmp.log

## -- Check timestamp of RRD files... this is a reliable indicator of when they were last updated...
find /opt/zenoss/perf/Devices/mydevice.mydomain.com/ -name \*.rrd -exec ls -la {} \;
find /opt/zenoss/perf/Devices/mydevice.mydomain.com/IMM* -name \*.rrd -exec ls -la {} \;

## -- Run the poller daemons manually...
## If everything is good this will force collection and therefore update of RRD files. But that's NO GUARANTEE automatic collection is working!
zenperfsnmp run -v10 -d mydevice.mydomain.com
zencommand run -v10 -d mydevice.mydomain.com

## -- Restart the thing, if nothing else works...
zenperfsnmp restart
zencommand restart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# IMMDevice object class
#
# Zenoss community Zenpack for IBM SystemX Integrated Management Module
# version: 0.3
# version: 1.0
#
# (C) Copyright IBM Corp. 2011. All Rights Reserved.
#
Expand All @@ -25,7 +25,7 @@
__author__ = "IBM"
__copyright__ = "(C) Copyright IBM Corp. 2011. All Rights Reserved."
__license__ = "GPL"
__version__ = "0.3.0"
__version__ = "1.0.0"

from Globals import DTMLFile
from Globals import InitializeClass
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# IMMComponentVpd object class
#
# Zenoss community Zenpack for IBM SystemX Integrated Management Module
# version: 0.3
# version: 1.0
#
# (C) Copyright IBM Corp. 2011. All Rights Reserved.
#
Expand All @@ -25,7 +25,7 @@
__author__ = "IBM"
__copyright__ = "(C) Copyright IBM Corp. 2011. All Rights Reserved."
__license__ = "GPL"
__version__ = "0.3.0"
__version__ = "1.0.0"

from Globals import DTMLFile
from Globals import InitializeClass
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# IMMCpuVpd object class
#
# Zenoss community Zenpack for IBM SystemX Integrated Management Module
# version: 0.3
# version: 1.0
#
# (C) Copyright IBM Corp. 2011. All Rights Reserved.
#
Expand All @@ -25,7 +25,7 @@
__author__ = "IBM"
__copyright__ = "(C) Copyright IBM Corp. 2011. All Rights Reserved."
__license__ = "GPL"
__version__ = "0.3.0"
__version__ = "1.0.0"

from Globals import DTMLFile
from Globals import InitializeClass
Expand Down
Loading

0 comments on commit ec73644

Please sign in to comment.