there are several Websphere users and they often run in some problems setting up the monitoring. I do not monitor Websphere so my only advise is please use the forum search function, change the data range setting to "Last Year" and try to get some hints.
I don't have it working either, but I am pushing. It looks like half my problems stem from using a Windows version of WAS. I have the ambition to get it working, monitor the JMS queues and then port the whole thing into an AIX based WAS. I think we'll get it going.
Hammering at this a while. It turns out that if you have Websphere security on, the SOAP connection will fail. This means that there has to be an SSL capability for Hyperic to connect to the Websphere Admin port on 8880. I am getting this on the console but not the error. I whipped up an adminclient to try the connection and it showed me.
You HAVE to use the Java supplied with the WAS for the WAS by IBM. I had to edit the ...bundles\agent-4.1.0-1019\conf\wrapper.conf file to explicitly tell it about HQ_JAVA_HOME despite having it set in the Windows environment. Not sure why this is true. Maybe I did something silly to Windows... but echo %HQ_JAVA_HOME% returns what it should and the java isn't recognized until the line
is used to replace the environment variable. I've noticed only that the system is squirrelly about paths in the Windows I am using (2003 Server on a VM).
For Windows, the paths don't get fixed up properly. So the plugins and libs for the WAS can't be found. You get a series of class-not-found errors on your console when you try to configure. I do NOT know where the bodies are buried in the config, and I am grateful that I removed myself of the temptation to wring necks in Redmond... (moved to NZ so I would not be tempted).
To get around this part of the issue you must copy the jar files from the directory C:\program files\ibm\Websphere\AppServer\plugins to your local agent installation file ( Mine was E:\hyperic-hq-agent-4.1.0-1019-noJRE\hyperic-hq-agent-4.1.0\bundles\agent-4.1.0-1019\pdk\lib ) - I simply copied all of them this time around. You also need the jars from the C:\program files\ibm\Websphere\AppServer\runtimes copied there. I think that is all of them. Restart the agent and your next error will be "Invalid configuration: Error reported by Agent @ <your IP address here>:2144: java.lang.NullPointerException. No missing jar files, no class-not-found's.
That is telling you that you have NOT yet configured the WAS to expose the statistics and information that you desire. Which I haven't yet done. Stay tuned YMMV depending on how wizard you are with the WAS.
I am doing this WITHOUT the security turned on, largely because my real target is AIX which is mostly the same as any other UNIX and sane about finding and naming things. In Windows I do not know how to address the problem of how to aim at the WAS security information. Just dead certain it won't be found.
Right then. Following the directions to enable the PMI in the WAS I told it I wanted all the statistics. I restarted the WAS. I restarted the agent. I have a connection on port 8880. It gives me the number of JVMs and the admin console to start,stop,restart.
I am trying to work out how to get at the PMI information. Make the JMX connect to tell me queue message counts. Other stuff. ( It is not much of a monitor yet.... all it tells me is that the WAS itself is running - but it is progress 🙂
I managed to persuade HermesJMS to connect to the embedded queues, but Hyperic is as innocent of their existence as a bird is of ballistics. That's still a puzzle. I can't see how to get at the JMX from the console at all. The plugin is in the plugins directory of course, but I now have to do some studying on how Hyperic actually expects this to be customized and how to connect to the IBM controls (rather than SUN which is also a bit innocent of what IBM has been up to).
With everything enabled for the PMI on WAS I get to see 28 services... including my war files and the perfservlet application and the HAManager and the JDBC...
The mbeans relating to the SIB messaging are still invisible. I attempted to activate the MBeans but cannot get access to the JVM server which is required in the first instance to get at the JMX itself. The problem is that configuring the WAS-JVM server (per the instructions) leaves me with the difficulty of the jmx.url to use to contact it... and of course the question of whether it is there to be contacted. T
as their standard... it doesn't quite work, I am getting an InstanceNotFoundException on the java.lang.type=Threading. I am trying to disable, but it APPEARS that the URL form above works to get at the JMXConnector.
Out of ideas. I went through the agent JVM and JMX plugins and wiped all the "Threading" objects... it can't want them there, but the same error comes up.
In the Wrapper.log it comes out as a MalformedURLException jmx.url==null which makes less sense... almost as though the url I am providing is getting rejected completely. No mention of the Threading issue.
At this point I have to take a break. I am getting seriously frustrated.
In the agent config you set the Websphere home for it to detect... right?
Not all steps may be necessary but I have had results doing them this way.
Set HQ_JAVA_HOME as the environment variable to point at the Websphere JRE
If you are on Windows... In the wrapper.conf under bundles... hand it the same variable for its default JAVA_HOME
Copy all the jar files from the Websphere plugins directory into the bundles lib Add the client admin jar from the Websphere runtimes directory. Add the bootstrap.jar
Re-INSTALL the agent. This is not stop-start. You have to persuade the wrapper to exit and restart.
Use the magic URL above.
This should work on a non-security-enabled Websphere. I haven't tried security yet. I have to get at the SIB based embedded JMS queues and those don't show up even when I do get a connection. I also have to set this up to work on AIX.
I have a set of classes that should do the trick now. All I need is to work out how to embed them in a workable plugin jar. This will be separate from the Websphere plugin. .
For what it's worth, I think the new agent doesn't setup WebSphere correctly. Using the 4.1.2-1053 agent, I could not get the WebSphere Admin server properly detected by the agent until I modified the wrapper.conf file bundles/agent-4.1.2-1053/conf/wrapper.conf:
In other words, it didn't work until I included jar's from both "plugins" and "lib" from the WebSphere Appserver home in the wrapper config manually. I don't see anything in hq-agent.sh that would look at agent.properties and include the right classes, even though I had set websphere.installpath to the correct settings, re-ran setup, deleted the data directory, etc etc.
My test system is down right now for patching, but I'll try to use your notes to cut down on the included jar files. I just didn't feel like working TOO hard to do what the agent was supposed to be doing for me 🙂
With these changes to the agent configuration, I could set up my WebSphere Admin Server in the HQ UI, and it detected my node. It took me a minute to realize I had to go back up to the "platform" level to see the WebSphere node service (it doesn't show up under the Admin Server).
Most of the services underneath "Websphere 6.1 NODENAME server1" are grayed out, but at least I can get JVM memory. (Note, I had to restart the agent to start collecting JVM memory parameters beyond JVM Used Memory.)
I'll start a new thread about how I think the agent doesn't setup the websphere CLASSPATH anymore if nobody responds to this one 😉