Without reposting the entire pair of articles ( which would be a daft idea ), here's a short-cut of what I ended up doing.
For the record, I am using Liberty 17.0.0.3: -
/opt/ibm/WebSphere/Liberty/bin/server version
WebSphere Application Server 17.0.0.3 (1.0.18.cl170320170927-1854) on IBM J9 VM, version pxa6480sr3fp12-20160919_01 (SR3 FP12) (en_GB)
Java 8: -
java -fullversion
java full version JRE 1.8.0 IBM Linux build pxa6480sr3fp12-20160919_01(SR3 FP12)
and Jython 2.7.0: -
So I started by setting up the Jython runtime environment ( this is on the same Red Hat Enterprise Linux box that's hosting Liberty etc. ): -
Create the directory structure
mkdir /opt/ibm/WebSphere/Liberty/jython
cd /opt/ibm/WebSphere/Liberty/jython
cd /opt/ibm/WebSphere/Liberty/jython
Pull Jython 2.7.0
wget http://search.maven.org/remotecontent?filepath=org/python/jython-standalone/2.7.0/jython-standalone-2.7.0.jar
mv remotecontent\?filepath\=org%2Fpython%2Fjython-standalone%2F2.7.0%2Fjython-standalone-2.7.0.jar jython-standalone-2.7.0.jar
Copy the requisite REST Connector classes - both Jython and Java
cp /opt/ibm/WebSphere/Liberty/clients/jython/restConnector.py .
cp /opt/ibm/WebSphere/Liberty/clients/restConnector.jar .
and then started the Jython environment: -
java -cp jython-standalone-2.7.0.jar:restConnector.jar org.python.util.jython
From there, I established connectivity to my Liberty runtime: -
from restConnector import JMXRESTConnector
JMXRESTConnector.trustStore = '/opt/ibm/WebSphere/Liberty/usr/servers/defaultServer/resources/security/key.jks'
JMXRESTConnector.trustStorePassword = 'passw0rd'
connector = JMXRESTConnector()
connection = connector.connect( 'mfp.uk.ibm.com', 9443, 'appcenteradmin', 'admin')
mconnection=connector.getMBeanServerConnection()
JMXRESTConnector.trustStorePassword = 'passw0rd'
connector = JMXRESTConnector()
connection = connector.connect( 'mfp.uk.ibm.com', 9443, 'appcenteradmin', 'admin')
mconnection=connector.getMBeanServerConnection()
Note that, contrary to the article, this code did not work: -
mconnection = connection.getMBeanServerConnection()
It instead returned: -
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'getMBeanServerConnection'
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'getMBeanServerConnection'
However, this code DID work: -
mconnection=connector.getMBeanServerConnection()
and I was able to validate connectivity etc. : -
mconnection
com.ibm.ws.jmx.connector.client.rest.internal.RESTMBeanServerConnection@fcbd91c2
dir(mconnection)
['MBeanCount', 'PollingMode', 'ServerPollingThread', '__class__', '__copy__', '__deepcopy__', '__delattr__', '__doc__', '__ensure_finalizer__', '__eq__', '__format__', '__getattribute__', '__hash__', '__init__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__subclasshook__', '__unicode__', 'addNotificationListener', 'class', 'createMBean', 'defaultDomain', 'domains', 'equals', 'getAttribute', 'getAttributes', 'getClass', 'getDefaultDomain', 'getDomains', 'getMBeanCount', 'getMBeanInfo', 'getObjectInstance', 'hashCode', 'invoke', 'isInstanceOf', 'isRegistered', 'notify', 'notifyAll', 'queryMBeans', 'queryNames', 'removeNotificationListener', 'setAttribute', 'setAttributes', 'toString', 'unregisterMBean', 'wait']
mconnection.getClass()
<type 'com.ibm.ws.jmx.connector.client.rest.internal.RESTMBeanServerConnection'>
The article then takes one through creating a pair of Python scripts: -
wlp_collect_conf.py
wlp_collect.py
to create an importable library of functions, including: -
connection = connect()
9443
/opt/ibm/WebSphere/Liberty/usr/servers/defaultServer/resources/security/key.jks
Connecting to the server...
Successfully connected to the server "mfp.uk.ibm.com:9443"
/opt/ibm/WebSphere/Liberty/usr/servers/defaultServer/resources/security/key.jks
Connecting to the server...
Successfully connected to the server "mfp.uk.ibm.com:9443"
and: -
collect( connection, True, "WebSphere:type=JvmStats,*")
MBean details for WebSphere:type=JvmStats
7 attributes
UsedMemory [long] = 83109880
FreeMemory [long] = 41080840
Heap [long] = 124321792
UpTime [long] = 22864299
ProcessCPU [double] = 2.04226135228
GcCount [long] = 1187
GcTime [long] = 2457
0 operations
array(java.lang.Object, [WebSphere:type=JvmStats])
MBean details for WebSphere:type=JvmStats
7 attributes
UsedMemory [long] = 83109880
FreeMemory [long] = 41080840
Heap [long] = 124321792
UpTime [long] = 22864299
ProcessCPU [double] = 2.04226135228
GcCount [long] = 1187
GcTime [long] = 2457
0 operations
array(java.lang.Object, [WebSphere:type=JvmStats])
So, in principle, I could use these via Nagios ……
That's the next step ….
No comments:
Post a Comment