Yes. You can index any kind of IT data in splunk, including simple metrics data like JMX. It's also easy to correlate metrics to text data (e.g. log messages) so you can figure out what else was happening on your server when you got a particular error message or saw a worrisome JMX value.
In order to get WebLogic JMX into Splunk, you'll want to write a scripted input (e.g. a java command-line app, Jython script, etc.) which collects the JMX metrics you want and then prints the data to stdout as name/value-pair text, which Splunk will then index.
You can take a look at how we did this in the Splunk for WebSphere Application Server app, where we wrote a Jython script which we executed inside WebSphere's command-line shell to call JMX to fetch metrics and print them to stdout. Splunk then indexes the data and automatically extracts fields. Look for WebSphereMBeanStats.py (inside the Splunk for WAS app) to see our Jython script.
Another path (which I took because it was easier for me) is to use the Weblogic Scripting Tool (WLST) as a scripted input to Splunk. I run a shell script which calls java weblogic.WLST and a script name..
I run the script every 5 minutes into an index, and can do reports on heap free, threads used, data source statistics. If anyone is interested in the view I can provide that as well..
import time date = time.strftime("%d-%m-%Y %H:%M:%S") ### Connect to managed server connect ('<adminaccount>','<password>','t3://<servername>:<serverport>') serverRuntime(); ### Get HEAP Stats cd ('JVMRuntime/<managedservername>') heapSizeMax = cmo.getHeapSizeMax() heapFreeCurrent = cmo.getHeapFreeCurrent() heapFreePercent = cmo.getHeapFreePercent() TotalNumberOfThreads=cmo.getTotalNumberOfThreads() ### Print the results print date,',Host=<managedservername>',',HeapSizeMax=',heapSizeMax,',HeapSizeCurrent=',heapFreeCurrent,',TotalNumberOfThreads=',TotalNumberOfThreads ### Get Database Settings. Will need to customize with your DataSourceNames cd('../../JDBCServiceRuntime/<managedservername>/JDBCDataSourceRuntimeMBeans/<datasourcename>'); ActiveConnectionsCurrentCount=cmo.getActiveConnectionsCurrentCount() ActiveConnectionsHighCount=cmo.getActiveConnectionsHighCount() ConnectionDelayTime=cmo.getConnectionDelayTime() FailuresToReconnectCount=cmo.getFailuresToReconnectCount() LeakedConnectionCount=cmo.getLeakedConnectionCount() WaitingForConnectionCurrentCount=cmo.getWaitingForConnectionCurrentCount() WaitingForConnectionHighCount=cmo.getWaitingForConnectionHighCount() ###Print the results print date,',Host=<managedservername>',',datasource=<datasourcename>',',ActiveConnectionsCurrentCount=',ActiveConnectionsCurrentCount ,',ActiveConnectionsHighCount=',ActiveConnectionsHighCount,',ConnectionDelayTime=',ConnectionDelayTime,',FailuresToReconnec tCount=',FailuresToReconnectCount,',LeakedConnectionCount=',LeakedConnectionCount,',WaitingForConnectionCurrentCount=',Wait ingForConnectionCurrentCount,',WaitingForConnectionHighCount=',WaitingForConnectionHighCount ### Disconnect disconnect()
I know that its been a while since you shared this. Do you have the full script that you are using to call this with? It looks like splunk knocked off the first letter of the lines. We're trying to do exactly what you posted here.
I am interested in your view and details on how you implemented this using splunk. I was thinking on doing it using another tool (mrtg) but doing it using splunk makes perfect sense.
Have a look at SPLUNK for JMX
You may need to specify a custom weblogic jar -> wlfullclient.jar
and a jvm system property -> -Djmx.remote.protocol.provider.pkgs=weblogic.management.remote
to be able to connect and view the Weblogic MBeans (as detailed here for using JConsole to connect to Weblogic)
Details of adding that custom jar to SPLUNK for JMX are in the pdf documentation.You simply drop it in the "SPLUNK4JMX/bin/lib/ext" directory
You can add the jvm system property yourself in the poll_jmx.sh or poll_jmx.bat script.
Let me know how you get on !!