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:
service:jmx:rmi:///jndi/rmi://myhostname:1099/jmxrmi
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:
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64
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.
What does your full config.xml look like ?
Perhaps you are trying to access MBeans that don't exist ?
What does your full config.xml look like ?
Perhaps you are trying to access MBeans that don't exist ?
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.
Nice one 🙂