I am attempting to connect the SPLUNK4JMX application to our existing WebSphere JVM infrastructure. I am not interested in connecting to the WebSphere managed MBean server, but rather the JAVA PlatformMBean server exposed by the JVM.
I have configured the JVM with these start-up parameters:
-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=/opt/IBM/WebSphere/AppServer/java/jre/lib/management/jmxremote.password -Djava.rmi.server.hostname=myhostname
I can successfully connect to the target JVM's platform MBean server via jconsole using this connect string and specifying my configured username/password:
The java.lang JMX beans are listed in jconsole and I can interact with them.
However when I use the same parameters in my config.xml I get this error listed in the JMX Connectivity Status panel:
access denied (javax.management.MBeanPermission -#-[-] queryMBeans)
My JAVA_HOME environment variable on my Splunk server is set to:
Here is my jvmserver entry in config.xml:
<jmxserver jvmDescription="JVM01" jmxServiceURL="service:jmx:rmi:///jndi/rmi://myhostname:1099/jmxrmi" jmxuser="controlRole" jmxpass="mypass">
This looks like it may be a Java2 security exception but I do not have Java2 security enabled in my WebSphere cluster. I hope someone has seen this before and can provide some pointers.
Thank you in advance.
There were 2 things incorrect with my configuration. The first was the fact that I was sending my JXM output to the main index so I was not finding it when I queried by index=jmx. I reconfigured my data source and checked the "More settings" checkbox to configure the index to "jmx". The queryMBean permission problem was due to a misconfiguration in my java.lang.Memory bean config section. Thanks for the hint to look in my mbean config. Now both my custom mbeans and my JVM system mbeans are showing up.