Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
87 lines (56 sloc) 3.96 KB

Splunk JMS Modular Input v1.6.1


This is a Splunk modular input add-on for polling message queues and topics via the JMS interface.

It implements the Splunk Modular Inputs Framework

The Splunk Modular Inputs Java Framework is utilized.

Why JMS ?

JMS is simply a messaging API and is a convenient means by which to write 1 modular input that can talk to several different underlying messaging providers : MQSeries(Websphere MQ), ActiveMQ, TibcoEMS, HornetQ, RabbitMQ,Native JMS, Weblogic JMS, Sonic MQ etc.. The modular input code is generic because it is programmed to the JMS interface. You can then supply messaging provider specific jar files at runtime. More details on JMS at Wikipedia


  • Splunk 5.0+
  • Java Runtime 1.7+
  • Supported on Windows, Linux, MacOS, Solaris, FreeBSD, HP-UX, AIX


  • Optionally set your JAVA_HOME environment variable to the root directory of you JRE installation.If you don't set this , the input will look for a default installed java executable on the path.
  • Untar the release to your $SPLUNK_HOME/etc/apps directory
  • Restart Splunk

Activation Key

You require an activation key to use this App. Visit to obtain a free,non-expiring key


As this is a modular input , you can then configure your JMS inputs via Manager->DataInputs

##JNDI vs Local mode

For the most part you will setup your JMS connectivity using JNDI to obtain the remote JMS objects. However, you can bypass JNDI if you wish and use local instantiation. To this you must code an implementation of the com.splunk.modinput.jms.LocalJMSResourceFactory interface. You can then bundle the classes in a jar file and place them in $SPLUNK_HOME/etc/apps/jms_ta/bin/lib The configuration screen in Splunk Manager for creating a new JMS input allows you to choose local or jndi as the instantiation mode. So choose local , and then you can specify the name of implementation class, as well as any declarative paramaters you want to pass in.


Any log entries/errors will get written to $SPLUNK_HOME/var/log/splunk/splunkd.log To turn on more verbose INFO level logging , set the logging level in the $SPLUNK_HOME/etc/apps/jms_ta/bin/ script ie: ERROR , INFO

Third party jars

If you require specific JMS provider or JNDI Context implementation jars, then you can simply copy these to $SPLUNK_HOME/etc/apps/jms_ta/bin/lib

They will be automatically picked up upon restart

##JVM Heap Size

The default heap maximum is 64MB. If you require a larger heap, then you can alter this in $SPLUNK_HOME/etc/apps/jms_ta/bin/ on line 95

##JVM System Properties

You can declare custom JVM System Properties when setting up new input stanzas. Note : these JVM System Properties will apply to the entire JVM context and all stanzas you have setup

The default heap maximum is 64MB. If you require a larger heap, then you can alter this in $SPLUNK_HOME/etc/apps/jms_ta/bin/ on line 95


  • JAVA_HOME environment variable is set or "java" is on the PATH for the user's environment you are running Splunk as
  • You are using Splunk 5+
  • You are using a 1.7+ Java Runtime
  • You are running on a supported operating system
  • Any 3rd party jar dependencies are present in $SPLUNK_HOME/etc/apps/jms_ta/bin/lib
  • Look for any errors in $SPLUNK_HOME/var/log/splunk/splunkd.log
  • Run this command as the same user that you are running Splunk as and observe console output : "$SPLUNK_HOME/bin/splunk cmd python ../etc/apps/jms_ta/bin/ --scheme"
  • Your configuration parameters are correct for your JMS connection (check for typos, correct credentials, correct JNDI names etc...)
  • You DNS resolution for hostnames is correctly configured