Integrating Solace PubSub+ with Logstash
Logging is a crucial part of your applications, especially enterprise applications. If you're still writing logs to a database, you really need to read this This post shows how to use Solace as the pipeline to your ELK stack, replacing your slow and heavy JDBC insert operations with a JMS send operations. Let Solace be the shock-absorber and decouple your applications from the logging systems, no back pressure FTW!
I'm writing a couple of other posts around logging, but here's the first one. What do you think? Still want to write to database and get that extra elapsed time waiting for JDBC inserts? Or risking the application to stuck only waiting for log-written confirmation? Or maybe you'd prefer Fluentd? I'm curios to hear your thoughts!
Comments
-
Finally I was able to sort it out. This is the Logstash configuration that works with client certificate auth which should be added inside jndi_context section:
'javax.net.ssl.keyStore' => 'pathToKeystore.jks'
'javax.net.ssl.keyStorePassword' => 'keyStorePassword'
'Solace_JMS_Authentication_Scheme' => 'AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE'2 -
Thanks for sharing the solution @chmielej!
Do you mind sharing your entire jms input config so it's clear for future folks that come across this thread?
That would help answer a question such as do these options go under justinput.jms
or underinput.jms.jndicontext
Thanks again for sharing!
0 -
Here is my Logstash input config:
jms {
include_header => true
include_properties => true
include_body => true
use_jms_timestamp => false
destination => 'SolaceQueue'
pub_sub => false
jndi_name => '/jms/cf/default'
jndi_context => {
'java.naming.factory.initial' => 'com.solacesystems.jndi.SolJNDIInitialContextFactory'
'java.naming.security.principal' => '@vpn'
'java.naming.provider.url' => 'url'
'javax.net.ssl.trustStore' => 'pathToTrustStore.jks'
'javax.net.ssl.trustStorePassword' => 'trustStorePassword'
'javax.net.ssl.keyStore' => 'pathToKeyStore'
'javax.net.ssl.keyStorePassword' => 'keyStorePassword'
'Solace_JMS_Authentication_Scheme' => 'AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE'
}
require_jars => ['pathToRequiredJars']
}1