logstash-input-jms 3.0.6-java → 3.1.0-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4e0b7da08d783aaa34842119cb780c5f52b00483b09c652d779da9c1f1ba24d0
4
- data.tar.gz: 4c96668a804e020bb50c57fd6258cf4cfddb136fc0fde1ff81f8dbdc95dca74b
3
+ metadata.gz: 0c67e7b1c2a2cdef01628e322b3d7e7f2b0d569354c4284b667b30ed9ca874d5
4
+ data.tar.gz: 10f7a99686215d53cd59145a898c0b931763eca6ff20d5a4cd82ababde5b65ba
5
5
  SHA512:
6
- metadata.gz: 9261b580965f2c5f0ba2ad29966ef9a47b2302652da035c6f917c81742c02954ac05cf49a0d164a6740f704e93448b6e388f5c9004fbfd6af1ad490eff2a6929
7
- data.tar.gz: 0ddc3508282986ea0ffec41e4a49b07ba6f24a7ea7b2ee67b043370442190130ed92b3f47bf3f77f89bcecea0f14c9485b8377e9a33796eaafb8b9f702d107cf
6
+ metadata.gz: 9fb991ca333e90e0900d36ddac2c299e46805f911d8a3f357a3794bcbab74638d7e63496bb35bb18f4ea7940a266336ab88082193a8f554b87b552c3ea6df17a
7
+ data.tar.gz: 0e86a615ad62ddc0a9a59d228debdc62cbb2e31f0994146754fc015e9c6cafa828873b462fcd3eaf970902fa2760ec193f9fa92ee5279fdf3d5bb5f7f1d7844e
@@ -1,3 +1,15 @@
1
+ ## 3.1.0
2
+ - Added many improvements to plugin [#35](https://github.com/logstash-plugins/logstash-input-jms/pull/35), including:
3
+ - Added support for TLS
4
+ - Added support for durable subscriptions
5
+ - Added support to skip processing of specified headers and properties
6
+ - Added Integration tests
7
+ - Added support for specifying system and connection factory settings in configuration
8
+ - Improved error handling and reporting
9
+ - Deprecated confusing runner settings, and simplified code.
10
+ - Improved unit test coverage
11
+ - Improved documentation with sample configurations and a basic troubleshooting guide
12
+
1
13
  ## 3.0.6
2
14
  - Fixed formatting issues in documentation [#32](https://github.com/logstash-plugins/logstash-input-jms/pull/32) and [#33](https://github.com/logstash-plugins/logstash-input-jms/pull/33]
3
15
 
@@ -23,24 +23,318 @@ include::{include_path}/plugin_header.asciidoc[]
23
23
 
24
24
  Read events from a Jms Broker. Supports both Jms Queues and Topics.
25
25
 
26
- For more information about Jms, see <http://docs.oracle.com/javaee/6/tutorial/doc/bncdq.html>.
26
+ For more information about Jms, see <https://javaee.github.io/tutorial/jms-concepts.html>.
27
27
  For more information about the Ruby Gem used, see <http://github.com/reidmorrison/jruby-jms>.
28
- Here is a config example to pull from a queue:
29
28
 
29
+
30
+ JMS configurations can be done either entirely in the Logstash configuration file, or in a mixture of the Logstash
31
+ configuration file, and a specified yaml file. Simple configurations that do not need to make calls to implementation
32
+ specific methods on the connection factory can be specified entirely in the Logstash configuration, whereas more complex
33
+ configurations, should also use the combination of yaml file and Logstash configuration.
34
+
35
+
36
+
37
+ ==== Sample Configuration using Logstash Configuration Only
38
+
39
+
40
+ Configurations can be configured either entirely in Logstash configuration, or via a combination of Logstash configuration
41
+ and yaml file, which can be useful for sharing similar configurations across multiple inputs and outputs.
42
+ The JMS plugin can also be configured using JNDI if desired.
43
+
44
+ ===== Logstash Confuguration for Non-JNDI Connection
30
45
  [source,ruby]
31
- ----
32
- jms {
33
- include_header => false
34
- include_properties => false
35
- include_body => true
36
- use_jms_timestamp => false
37
- interval => 10
38
- destination => "myqueue"
39
- pub-sub => false
40
- yaml_file => "~/jms.yml"
41
- yaml_section => "mybroker"
46
+ --------------------------------------------------
47
+ input
48
+ {
49
+ jms {
50
+ broker_url => 'failover:(tcp://host1:61616,tcp://host2:61616)?initialReconnectDelay=100' <1>
51
+ destination => 'myqueue' <2>
52
+ factory => 'org.apache.activemq.ActiveMQConnectionFactory' <3>
53
+ pub_sub => false <4>
54
+ use_jms_timestamp => false <5>
55
+ # JMS provider credentials if needed <6>
56
+ username => 'username'
57
+ password => 'secret'
58
+ # JMS provider keystore and truststore details <7>
59
+ keystore => '/Users/logstash-user/security/keystore.jks'
60
+ keystore_password => 'another_secret'
61
+ truststore => '/Users/logstash-user/security/truststore.jks'
62
+ truststore_password => 'yet_another_secret'
63
+ # Parts of the JMS message to be included <8>
64
+ include_header => false
65
+ include_properties => false
66
+ include_body => true
67
+ # Message selector
68
+ selector => "string_property = 'this' OR int_property < 3" <9>
69
+ # Connection factory specific settings
70
+ factory_settings => { <10>
71
+ exclusive_consumer => true
72
+ }
73
+ # Jar Files to include
74
+ require_jars => ['/usr/share/jms/activemq-all-5.15.9.jar'] <11>
75
+ }
42
76
  }
43
- ----
77
+ --------------------------------------------------
78
+
79
+ <1> Url of the broker to connect to. Please consult your JMS provider documentation for the exact syntax to use
80
+ here, including how to enable failover.
81
+ <2> Name of the topic or queue that the plugin will listen to events from.
82
+ <3> Full name (including package name) of Java connection factory used to create a connection with your JMS provider.
83
+ <4> Determines whether the event source is a queue or a topic, set to `true` for topic, `false` for queue.
84
+ <5> Determines whether the JMSTimestamp header is used to populate the `@timestamp` field.
85
+ <6> Credentials to use when connecting to the JMS provider, if required.
86
+ <7> Keystore and Truststore to use when connecting to the JMS provider, if required.
87
+ <8> Parts of the JMS Message to include in the event - headers, properties and the message body can be included or
88
+ excluded from the event.
89
+
90
+ <9> Message selector: Use this to filter messages to be processed. The whole selector query should be double-quoted,
91
+ string property values should be single quoted, and numeric property vaues should not be quoted.
92
+ See JMS provider documentation for exact syntax.
93
+ <10> Additional settings that are set directly on the ConnectionFactory object can be added here.
94
+ <11> List of jars required by the JMS provider. Paths should be the fully qualified location of all jar files required
95
+ by the JMS provider. This list may also include dependent jars as well as specific jars from the JMS provider.
96
+
97
+ ===== Logstash Configuration for JNDI Connection
98
+ [source,ruby]
99
+ --------------------------------------------------
100
+ input {
101
+ jms {
102
+ # Logstash Configuration Settings. <1>
103
+ include_header => false
104
+ include_properties => false
105
+ include_body => true
106
+ use_jms_timestamp => false
107
+ destination => "myqueue"
108
+ pub_sub => false
109
+ # JNDI Settings
110
+ jndi_name => /jms/cf/default <2>
111
+ jndi_context => { <3>
112
+ 'java.naming.factory.initial' => com.solacesystems.jndi.SolJNDIInitialContextFactory
113
+ 'java.naming.security.principal' => solace-cloud-client@user
114
+ 'java.naming.provider.url' => tcp://address.messaging.solace.cloud:20608
115
+ 'java.naming.security.credentials' => verysecret
116
+ }
117
+ # Jar files to be imported
118
+ require_jars=> ['/usr/share/jms/commons-lang-2.6.jar', <4>
119
+ '/usr/share/jms/sol-jms-10.5.0.jar',
120
+ '/usr/share/jms/geronimo-jms_1.1_spec-1.1.1.jar',
121
+ '/usr/share/jms/commons-lang-2.6.jar]'
122
+ }
123
+ }
124
+ --------------------------------------------------
125
+
126
+ <1> Configuration settings. Note that there is no `broker_url` or `username` or `password` defined here - these are
127
+ defined in the `jndi_context` hash.
128
+ <2> JNDI name for this connection.
129
+ <3> JNDI context settings hash. Contains details of how to connect to JNDI server. See your JMS provider documentation for
130
+ implementation specific details.
131
+ <4> List of jars required by the JMS provider. Paths should be the fully qualified location of all jar files required
132
+ by the JMS provider. This list may also include dependent jars as well as specific jars from the JMS provider.
133
+
134
+
135
+ ==== Sample Configuration using Logstash Configuration and Yaml File
136
+
137
+ ===== Non-JNDI Connection
138
+
139
+ This section contains sample configurations for connecting to a JMS provider that is not using JNDI using a combination
140
+ of the Logstash configuration and the yaml file
141
+
142
+ ===== Logstash Configuration for Non-JNDI Connection (for configs including yaml)
143
+
144
+ [source,ruby]
145
+ --------------------------------------------------
146
+ input {
147
+ jms {
148
+ # Logstash Configuration File Settings <1>
149
+ include_header => false
150
+ include_properties => false
151
+ include_body => true
152
+ use_jms_timestamp => false
153
+ destination => "myqueue"
154
+ pub_sub => false
155
+ # JMS Provider credentials <2>
156
+ username => xxxx
157
+ password => xxxx
158
+ # Location of yaml file, and which section to use for configuration
159
+ yaml_file => "~/jms.yml" <3>
160
+ yaml_section => "mybroker" <4>
161
+ }
162
+ }
163
+ --------------------------------------------------
164
+
165
+
166
+ <1> Configuration settings
167
+ <2> Username and password for the connection.
168
+ <3> Full path to a yaml file containing the definition for the ConnectionFactory.
169
+ <4> Section name in the yaml file of the ConnectionFactory for this plugin definition
170
+
171
+
172
+ ===== Yaml File for Non-JNDI Connection
173
+
174
+ [source,yaml]
175
+ --------------------------------------------------
176
+ mybroker: <1>
177
+ :broker_url: 'ssl://localhost:61617' <2>
178
+ :factory: org.apache.activemq.ActiveMQConnectionFactory <3>
179
+ :exclusive_consumer: true <4>
180
+ :require_jars: <5>
181
+ - /usr/share/jms/activemq-all-5.15.9.jar
182
+ - /usr/share/jms/log4j-1.2.17.jar
183
+ --------------------------------------------------
184
+
185
+ <1> Section name for this broker definition. This should be the value of `yaml_section` in the logstash configuration file.
186
+ Note that multiple sections can co-exist in the same yaml file.
187
+ <2> Full url of the broker. See your JMS Provider documentation for details.
188
+ <3> Full name (including package name) of Java connection factory used to create a connection with your JMS provider.
189
+ <4> Implementation specific configuration parameters to be used with the connection factory specified.
190
+ in <3>. Each JMS Provider will have its own set of parameters that can be used here. These parameters are mapped to
191
+ `set` methods on the provided connection factory, and can be supplied in either 'snake' or 'camel' case. In <4> above,
192
+ the `exclusive_consumer` property will call the `setExclusiveConsumer` on the supplied connection factory. See your JMS provider
193
+ documentation for implementation specific details.
194
+ <5> List of jars required by the JMS provider. Paths should be the fully qualified location of all jar files required
195
+ by the JMS provider. This list may also include dependent jars as well as specific jars from the JMS provider.
196
+
197
+
198
+ ===== JNDI Connection
199
+
200
+ This section contains sample configurations for connecting to a JMS provider that is using JNDI using a combination
201
+ of the Logstash configuration and the yaml file
202
+
203
+ ===== Logstash Configuration for JNDI Connection (for configs including yaml)
204
+
205
+ [source,ruby]
206
+ --------------------------------------------------
207
+ input {
208
+ jms {
209
+ # Logstash specific configuration settings <1>
210
+ include_header => false
211
+ include_properties => false
212
+ include_body => true
213
+ use_jms_timestamp => false
214
+ destination => "myqueue"
215
+ pub_sub => false
216
+ # Location of yaml file, and which section to use for configuration
217
+ yaml_file => "~/jms.yml" <2>
218
+ yaml_section => "mybroker" <3>
219
+ }
220
+ }
221
+ --------------------------------------------------
222
+
223
+ <1> Configuration settings
224
+ <2> Full path to a yaml file containing the definition for the ConnectionFactory.
225
+ <3> Section name in the yaml file of the ConnectionFactory for this plugin definition
226
+
227
+
228
+ ===== Yaml File for JNDI Connection
229
+
230
+ [source,yaml]
231
+ --------------------------------------------------
232
+
233
+ solace: <1>
234
+ :jndi_name: /jms/cf/default <2>
235
+ :jndi_context: <3>
236
+ java.naming.factory.initial: com.solacesystems.jndi.SolJNDIInitialContextFactory
237
+ java.naming.security.principal: solace-cloud-client@user
238
+ java.naming.provider.url: tcp://address.messaging.solace.cloud:20608
239
+ java.naming.security.credentials: verysecret
240
+ :require_jars: <4>
241
+ - /usr/share/jms/commons-lang-2.6.jar
242
+ - /usr/share/jms/sol-jms-10.5.0.jar
243
+ - /usr/share/jms/geronimo-jms_1.1_spec-1.1.1.jar
244
+ - /usr/share/jms/commons-lang-2.6.jar
245
+ --------------------------------------------------
246
+
247
+ <1> Section name for this broker definition. This should be the value of `yaml_section` in the Logstash configuration file.
248
+ <2> Name of JNDI entry at which the Factory can be found
249
+ <3> JNDI context settings. Contains details of how to connect to JNDI server. See your JMS provider documentation for
250
+ implementation specific details.
251
+ <4> List of jars required by the JMS provider. Paths should be the fully qualified location of all jar files required
252
+ by the JMS provider. This list may also include dependent jars as well as specific jars from the JMS provider.
253
+
254
+
255
+ ==== Jar files
256
+
257
+ In order to communicate with a JMS broker, the plugin must load the jar files necessary for each client type.
258
+ This can be set in the yaml file, or in the main configuration if a yaml file is not necessary. The `require_jars`
259
+ setting should include the full path for each jar file required for the client. Eg
260
+
261
+ ===== Logstash configuration
262
+
263
+ [source,ruby]
264
+ --------------------------------------------------
265
+
266
+ input {
267
+ jms {
268
+ :
269
+ [snip]
270
+ require_jars => ['/usr/share/jms/commons-lang-2.6.jar',
271
+ '/usr/share/jms/sol-jms-10.5.0.jar',
272
+ '/usr/share/jms/geronimo-jms_1.1_spec-1.1.1.jar',
273
+ '/usr/share/jms/commons-lang-2.6.jar']
274
+ }
275
+ }
276
+ --------------------------------------------------
277
+
278
+ ==== Troubleshooting
279
+
280
+ This section includes some common issues that a user may have when integrating this plugin with their JMS provider.
281
+
282
+ ===== Missing Jar files
283
+
284
+ The most common issue is missing jar files, which may be jar files provided by the JMS vendor, or jar files that the JMS
285
+ vendor requires to run. This issue can manifest in different ways, depending on where the missing jar file is discovered.
286
+
287
+ Example log output:
288
+
289
+ [source,txt]
290
+ -----
291
+ Failed to load JMS Connection, likely because a JMS Provider is not on the Logstash classpath or correctly
292
+ specified by the plugin's `require_jars` directive
293
+ {:exception=>"cannot load Java class javax.jms.DeliveryMode"
294
+ -----
295
+
296
+ [source,txt]
297
+ -----
298
+ JMS Consumer Died {:exception=>"Java::JavaxNaming::NoInitialContextException",
299
+ :exception_message=>"Cannot instantiate class:"
300
+ -----
301
+
302
+ [source,txt]
303
+ -----
304
+ warning: thread "[main]<jms" terminated with exception (report_on_exception is true):
305
+ java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableException
306
+ -----
307
+
308
+ [source,txt]
309
+ -----
310
+ JMS Consumer Died {:exception=>"Java::JavaxJms::JMSException", :exception_message=>"io/netty/channel/epoll/Epoll",
311
+ :root_cause=>{:exception=>"Java::JavaLang::NoClassDefFoundError", :exception_message=>"io/netty/channel/epoll/Epoll"}
312
+ -----
313
+
314
+ If any of these issues occur, check the list of `require_jars` in either the Logstash configuration or yaml configuration
315
+ files.
316
+
317
+ ===== Setting System Properties
318
+
319
+ Many JMS providers allow or expect System properties to be set to configure certain properties when using JMS, for
320
+ example, the Apache qpid JMS client allows the connection factory lookup to be stored there, and the Solace JMS client
321
+ allows many properties, such as number of connection retries to be set as System properties. Any system properties that
322
+ are set should be set in the Logstash `jvm.options` file.
323
+
324
+ ===== Multiple JMS inputs/outputs in the same Logstash process
325
+
326
+ The use of multiple JMS consumers and producers in the same Logstash process is unsupported if:
327
+
328
+ * System properties need to be different for any of the consumers/producers
329
+ * Different keystores or truststores are required for any of the consumers/producers
330
+
331
+ ===== Message Selectors unexpectedly filtering out all messages
332
+
333
+ Incorrect message selector syntax can have two effects - either the syntax is incorrect and the selector parser from the
334
+ JMS provider will throw an exception causing the plugin to fail OR the syntax will be accepted, but the messages will
335
+ be silently dropped - this can happen with incorrect quoting of string properties in the selector definition. All
336
+ selector definitions must be double quoted in the Logstash configuration file, and string property values must be
337
+ single quoted, and numeric property values not quoted at all.
44
338
 
45
339
 
46
340
  [id="plugins-{type}s-{plugin}-options"]
@@ -53,6 +347,9 @@ This plugin supports the following configuration options plus the <<plugins-{typ
53
347
  |Setting |Input type|Required
54
348
  | <<plugins-{type}s-{plugin}-broker_url>> |<<string,string>>|No
55
349
  | <<plugins-{type}s-{plugin}-destination>> |<<string,string>>|Yes
350
+ | <<plugins-{type}s-{plugin}-durable_subscriber>> |<<boolean,boolean>>|No
351
+ | <<plugins-{type}s-{plugin}-durable_subscriber_client_id>> |<<string,string>>|No
352
+ | <<plugins-{type}s-{plugin}-durable_subscriber_name>> |<<string,string>>|No
56
353
  | <<plugins-{type}s-{plugin}-factory>> |<<string,string>>|No
57
354
  | <<plugins-{type}s-{plugin}-include_body>> |<<boolean,boolean>>|No
58
355
  | <<plugins-{type}s-{plugin}-include_header>> |<<boolean,boolean>>|No
@@ -60,14 +357,21 @@ This plugin supports the following configuration options plus the <<plugins-{typ
60
357
  | <<plugins-{type}s-{plugin}-interval>> |<<number,number>>|No
61
358
  | <<plugins-{type}s-{plugin}-jndi_context>> |<<hash,hash>>|No
62
359
  | <<plugins-{type}s-{plugin}-jndi_name>> |<<string,string>>|No
360
+ | <<plugins-{type}s-{plugin}-keystore>> |a valid filesystem path|No
361
+ | <<plugins-{type}s-{plugin}-keystore_password>> |<<password,password>>|No
63
362
  | <<plugins-{type}s-{plugin}-oracle_aq_buffered_messages>> |<<boolean,boolean>>|No
64
363
  | <<plugins-{type}s-{plugin}-password>> |<<string,string>>|No
65
364
  | <<plugins-{type}s-{plugin}-pub_sub>> |<<boolean,boolean>>|No
66
365
  | <<plugins-{type}s-{plugin}-require_jars>> |<<array,array>>|No
67
- | <<plugins-{type}s-{plugin}-runner>> |<<string,string>>, one of `["consumer", "async", "thread"]`|No
366
+ | <<plugins-{type}s-{plugin}-runner>> |<<string,string>>|__Deprecated__
68
367
  | <<plugins-{type}s-{plugin}-selector>> |<<string,string>>|No
368
+ | <<plugins-{type}s-{plugin}-skip_headers>> |<<array,array>>|No
369
+ | <<plugins-{type}s-{plugin}-skip_properties>> |<<array,array>>|No
370
+ | <<plugins-{type}s-{plugin}-system_properties>> |<<hash,hash>>|No
69
371
  | <<plugins-{type}s-{plugin}-threads>> |<<number,number>>|No
70
372
  | <<plugins-{type}s-{plugin}-timeout>> |<<number,number>>|No
373
+ | <<plugins-{type}s-{plugin}-truststore>> |a valid filesystem path|No
374
+ | <<plugins-{type}s-{plugin}-truststore_password>> |<<password,password>>|No
71
375
  | <<plugins-{type}s-{plugin}-use_jms_timestamp>> |<<boolean,boolean>>|No
72
376
  | <<plugins-{type}s-{plugin}-username>> |<<string,string>>|No
73
377
  | <<plugins-{type}s-{plugin}-yaml_file>> |<<string,string>>|No
@@ -80,15 +384,15 @@ input plugins.
80
384
  &nbsp;
81
385
 
82
386
  [id="plugins-{type}s-{plugin}-broker_url"]
83
- ===== `broker_url`
387
+ ===== `broker_url`
84
388
 
85
389
  * Value type is <<string,string>>
86
390
  * There is no default value for this setting.
87
391
 
88
- Url to use when connecting to the JMS provider.
392
+ Url to use when connecting to the JMS provider. This is only relevant for non-JNDI configurations.
89
393
 
90
394
  [id="plugins-{type}s-{plugin}-destination"]
91
- ===== `destination`
395
+ ===== `destination`
92
396
 
93
397
  * This is a required setting.
94
398
  * Value type is <<string,string>>
@@ -96,16 +400,52 @@ Url to use when connecting to the JMS provider.
96
400
 
97
401
  Name of the destination queue or topic to use.
98
402
 
403
+ [id="plugins-{type}s-{plugin}-durable_subscriber"]
404
+ ===== `durable_subscriber`
405
+
406
+ * Value type is <<boolean,boolean>>
407
+ * This is `false` by default
408
+ * Requires `pub_sub` to be true
409
+
410
+ Setting this value to `true` will make subscriptions to topics "durable", which allowing messages that arrived on the
411
+ specified topic while Logstash is not running to still be read. Without setting this value, any messages sent to a topic
412
+ while Logstash is not actively listening will be lost. A durable subscriber specifies a unique identity consisting of the
413
+ topic (`destination`), the client id (`durable_subscriber_client_id`) and subscriber name
414
+ (`durable_subscriber_subscriber_name`). See your JMS Provider documentation for any further requirements/limitations
415
+ around these settings.
416
+
417
+ * Note that a durable subscription can only have one active subscriber at a time.
418
+ * Note that this setting is only permitted when `pub_sub` is set to true, and will generate a configuration error otherwise
419
+
420
+ [id="plugins-{type}s-{plugin}-durable_subscriber_client_id"]
421
+ ===== `durable_subscriber_client_id`
422
+
423
+ * Value type is <<string,string>>
424
+ * If `durable_subscriber` is set, the default value for this setting is 'Logstash', otherwise this setting has no
425
+ effect
426
+
427
+ This represents the value of the client ID for a durable subscribtion, and is only used if `durable_subscriber` is set to `true`.
428
+
429
+ [id="plugins-{type}s-{plugin}-durable_subscriber_name"]
430
+ ===== `durable_subscriber_name`
431
+
432
+ * Value type is <<string,string>>
433
+ * If `durable_subscriber` is set, the default value for this setting will be the same value as the `destination`
434
+ setting, otherwise this setting has no effect.
435
+
436
+ This represents the value of the subscriber name for a durable subscribtion, and is only used if `durable_subscriber`
437
+ is set to `true`. Please consult your JMS Provider documentation for constraints and requirements for this setting.
438
+
99
439
  [id="plugins-{type}s-{plugin}-factory"]
100
- ===== `factory`
440
+ ===== `factory`
101
441
 
102
442
  * Value type is <<string,string>>
103
443
  * There is no default value for this setting.
104
444
 
105
- Name of JMS Provider Factory class.
445
+ Full name (including package name) of Java connection factory used to create a connection with your JMS provider.
106
446
 
107
447
  [id="plugins-{type}s-{plugin}-include_body"]
108
- ===== `include_body`
448
+ ===== `include_body`
109
449
 
110
450
  * Value type is <<boolean,boolean>>
111
451
  * Default value is `true`
@@ -120,7 +460,7 @@ the key/value pairs will be added in the Hashmap of the event.
120
460
  StreamMessage and ObjectMessage are not supported.
121
461
 
122
462
  [id="plugins-{type}s-{plugin}-include_header"]
123
- ===== `include_header`
463
+ ===== `include_header`
124
464
 
125
465
  * Value type is <<boolean,boolean>>
126
466
  * Default value is `true`
@@ -136,7 +476,7 @@ You can tell the input plugin which parts should be included in the event produc
136
476
  Include JMS Message Header Field values in the event.
137
477
 
138
478
  [id="plugins-{type}s-{plugin}-include_properties"]
139
- ===== `include_properties`
479
+ ===== `include_properties`
140
480
 
141
481
  * Value type is <<boolean,boolean>>
142
482
  * Default value is `true`
@@ -144,7 +484,7 @@ Include JMS Message Header Field values in the event.
144
484
  Include JMS Message Properties Field values in the event.
145
485
 
146
486
  [id="plugins-{type}s-{plugin}-interval"]
147
- ===== `interval`
487
+ ===== `interval`
148
488
 
149
489
  * Value type is <<number,number>>
150
490
  * Default value is `10`
@@ -154,33 +494,52 @@ This is the time sleeping between asks to a consumed Queue.
154
494
  This parameter has non influence in the case of a subcribed Topic.
155
495
 
156
496
  [id="plugins-{type}s-{plugin}-jndi_context"]
157
- ===== `jndi_context`
497
+ ===== `jndi_context`
158
498
 
159
499
  * Value type is <<hash,hash>>
160
500
  * There is no default value for this setting.
161
501
 
162
- Mandatory if jndi lookup is being used.
163
- Contains details on how to connect to JNDI server.
502
+ Only used if using JNDI lookup. Key value pairs to determine how to connect the JMS message brokers if JNDI
503
+ is being used. Consult your JMS provider documentation for the correct values to use here.
504
+
164
505
 
165
506
  [id="plugins-{type}s-{plugin}-jndi_name"]
166
- ===== `jndi_name`
507
+ ===== `jndi_name`
167
508
 
168
509
  * Value type is <<string,string>>
169
510
  * There is no default value for this setting.
170
511
 
171
- Name of JNDI entry at which the Factory can be found.
512
+ Only used if using JNDI lookup. Name of JNDI entry at which the Factory can be found.
513
+
514
+ [id="plugins-{type}s-{plugin}-keystore"]
515
+ ===== `keystore`
516
+
517
+ * Value type is <<path,path>>
518
+ * There is no default value for this setting.
519
+
520
+ If you need to use a custom keystore (`.jks`) specify it here. This does not work with .pem keys
521
+
522
+ [id="plugins-{type}s-{plugin}-keystore_password"]
523
+ ===== `keystore_password`
524
+
525
+ * Value type is <<password,password>>
526
+ * There is no default value for this setting.
527
+
528
+ Specify the keystore password here.
529
+ Note, most .jks files created with keytool require a password
172
530
 
173
531
  [id="plugins-{type}s-{plugin}-oracle_aq_buffered_messages"]
174
- ===== `oracle_aq_buffered_messages`
532
+ ===== `oracle_aq_buffered_messages`
175
533
 
176
534
  * Value type is <<boolean,boolean>>
177
535
  * Default value is `false`
178
536
 
179
537
  Receive Oracle AQ buffered messages.
180
538
  In this mode persistent Oracle AQ JMS messages will not be received.
539
+ Only for use with Oracle AQ
181
540
 
182
541
  [id="plugins-{type}s-{plugin}-password"]
183
- ===== `password`
542
+ ===== `password`
184
543
 
185
544
  * Value type is <<string,string>>
186
545
  * There is no default value for this setting.
@@ -188,15 +547,15 @@ In this mode persistent Oracle AQ JMS messages will not be received.
188
547
  Password to use when connecting to the JMS provider.
189
548
 
190
549
  [id="plugins-{type}s-{plugin}-pub_sub"]
191
- ===== `pub_sub`
550
+ ===== `pub_sub`
192
551
 
193
552
  * Value type is <<boolean,boolean>>
194
553
  * Default value is `false`
195
554
 
196
- If pub-sub (topic) style should be used.
555
+ If pub-sub (topic) style should be used. Note that if `pub_sub` is set to true, `threads` must be set to 1.
197
556
 
198
557
  [id="plugins-{type}s-{plugin}-require_jars"]
199
- ===== `require_jars`
558
+ ===== `require_jars`
200
559
 
201
560
  * Value type is <<array,array>>
202
561
  * There is no default value for this setting.
@@ -208,45 +567,91 @@ to put all the JMS Provider specific jar files into the
208
567
  java CLASSPATH prior to starting Logstash.
209
568
 
210
569
  [id="plugins-{type}s-{plugin}-runner"]
211
- ===== `runner`
570
+ ===== `runner`
212
571
 
213
- * Value can be any of: `consumer`, `async`, `thread`
214
- * Default value is `"consumer"`
572
+ * DEPRECATED WARNING: This configuration item is deprecated and may not be available in future versions.
215
573
 
216
- Choose an implementation of the run block. Value can be `consumer`, `async` or `thread`.
217
574
 
218
575
  [id="plugins-{type}s-{plugin}-selector"]
219
- ===== `selector`
576
+ ===== `selector`
220
577
 
221
578
  * Value type is <<string,string>>
222
579
  * There is no default value for this setting.
223
580
 
224
- Set the selector to use to get messages off the queue or topic.
581
+ JMS message selector. Use in conjunctions with message headers or properties to filter messages to be processed. Only
582
+ messages that match the query specified here will be processed. Check with your JMS provider for the correct JMS message
583
+ selector syntax.
584
+
585
+ [id="plugins-{type}s-{plugin}-skip_headers"]
586
+ ===== `skip_headers`
587
+
588
+ * Value type is <<array,array>>
589
+ * There is no default value for this setting.
590
+
591
+ If `include_headers` is set, a list of headers to skip processing on can be specified here.
592
+
593
+ [id="plugins-{type}s-{plugin}-skip_properties"]
594
+ ===== `skip_properties`
595
+
596
+ * Value type is <<array,array>>
597
+ * There is no default value for this setting.
598
+
599
+ If `include_properties` is set, a list of properties to skip processing on can be specified here.
600
+
601
+ [id="plugins-{type}s-{plugin}-system_properties"]
602
+ ===== `system_properties`
603
+
604
+ * Value type is <<hash,hash>>
605
+ * There is no default value for this setting.
606
+
607
+ Any System properties that the JMS provider requires can be set either in a Hash here, or in `jvm.options`
608
+
225
609
 
226
610
  [id="plugins-{type}s-{plugin}-threads"]
227
- ===== `threads`
611
+ ===== `threads`
228
612
 
229
613
  * Value type is <<number,number>>
230
614
  * Default value is `1`
231
615
 
616
+ * Note that if pub_sub is set to true, this value *must* be 1. A configuration error will be thrown otherwise
617
+
232
618
  [id="plugins-{type}s-{plugin}-timeout"]
233
- ===== `timeout`
619
+ ===== `timeout`
234
620
 
235
621
  * Value type is <<number,number>>
236
622
  * Default value is `60`
237
623
 
238
624
  Initial connection timeout in seconds.
239
625
 
626
+ [id="plugins-{type}s-{plugin}-truststore"]
627
+ ===== `truststore`
628
+
629
+ * Value type is <<path,path>>
630
+ * There is no default value for this setting.
631
+
632
+ If you need to use a custom truststore (`.jks`) specify it here. This does not work with .pem certs.
633
+
634
+ [id="plugins-{type}s-{plugin}-truststore_password"]
635
+ ===== `truststore_password`
636
+
637
+ * Value type is <<password,password>>
638
+ * There is no default value for this setting.
639
+
640
+ Specify the truststore password here.
641
+
642
+ * Note, most .jks files created with keytool require a password.
643
+
644
+
240
645
  [id="plugins-{type}s-{plugin}-use_jms_timestamp"]
241
- ===== `use_jms_timestamp`
646
+ ===== `use_jms_timestamp`
242
647
 
243
648
  * Value type is <<boolean,boolean>>
244
649
  * Default value is `false`
245
650
 
246
- Convert the JMSTimestamp header field to the @timestamp value of the event.
651
+ Convert the JMSTimestamp header field to the @timestamp value of the event
247
652
 
248
653
  [id="plugins-{type}s-{plugin}-username"]
249
- ===== `username`
654
+ ===== `username`
250
655
 
251
656
  * Value type is <<string,string>>
252
657
  * There is no default value for this setting.
@@ -254,7 +659,7 @@ Convert the JMSTimestamp header field to the @timestamp value of the event.
254
659
  Username to use for connecting to JMS provider.
255
660
 
256
661
  [id="plugins-{type}s-{plugin}-yaml_file"]
257
- ===== `yaml_file`
662
+ ===== `yaml_file`
258
663
 
259
664
  * Value type is <<string,string>>
260
665
  * There is no default value for this setting.
@@ -262,7 +667,7 @@ Username to use for connecting to JMS provider.
262
667
  Yaml config file
263
668
 
264
669
  [id="plugins-{type}s-{plugin}-yaml_section"]
265
- ===== `yaml_section`
670
+ ===== `yaml_section`
266
671
 
267
672
  * Value type is <<string,string>>
268
673
  * There is no default value for this setting.
@@ -275,4 +680,4 @@ For some known examples, see https://github.com/reidmorrison/jruby-jms/blob/mast
275
680
  [id="plugins-{type}s-{plugin}-common-options"]
276
681
  include::{include_path}/{type}.asciidoc[]
277
682
 
278
- :default_codec!:
683
+ :default_codec!: