microsoft-sentinel-log-analytics-logstash-output-plugin 2.2.1-java → 2.3.2-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ea487790648bd37da80785720d41eba04d6e25d26b51acd4dedaae12d4df788e
4
- data.tar.gz: 2c5e07886e64407c588ebae4d080796ae83e4a5c24a6dd287cc91a8858e1bea4
3
+ metadata.gz: c28843f943eb0d0a6d882489496b7925807b6297afdfa3a50c502bf9acebe220
4
+ data.tar.gz: 2a43af3450ce0fa1842fb9a9daf61059a3b4576387daa9c244c04c0115e19907
5
5
  SHA512:
6
- metadata.gz: 0a76b54722684ef96a897363bfe0b2104dc14c99ef7e196585a8e6ae2e03606e330c16ece586a262148a41cfee41797304ec8ecde13cdc3839005645b808d79c
7
- data.tar.gz: d18a87da9ac8d7b5f19c3be49744d0ed7051b343fda7a8dc9dbb52c4f88c3c83dcb81310cbae590c910f0a2adb539c5dfe8ed4118303f4f24eb5969c7fe248a2
6
+ metadata.gz: e5c128d254f06c88fcd5f492a30c65cee0de83ad1a2eb98c49f9268db3c2f1109541e821054cbed38759ca906831ca0726510702968e78f2e3a5d77262e8b5e0
7
+ data.tar.gz: 0b8c115c9c082fa9a759e046df413cd30c663ec355789e87469ab9bed77a769021b91ffd93c4201570aa6e181a2f92f384287b4cf68925ec22d9b286d89d7bd0
data/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## 2.3.2
2
+ - Fixed silent worker thread death caused by uncaught exceptions in worker processing loop.
3
+ - Fixed NullPointerException in SenderWorker when Azure returns a LogsUploadException with a null HTTP response.
4
+ - Added resilient error handling with consecutive error tracking to reduce permanent worker failure.
5
+
6
+ ## 2.3.1
7
+ - Added optional Id configuration value for telemetry.
8
+ - Added DCR stream to sent-batches logging.
9
+
10
+ ## 2.3.0
11
+ - Enabled functionality with logstash 9.4.
12
+
13
+ ## 2.2.2
14
+ - Bumped dependency versions for external libraries (azure-sdk-bom, logback, slf4j, Netty).
15
+
1
16
  ## 2.2.1
2
17
  - Adds info-level logging line when batches are successfully sent.
3
18
 
@@ -5,7 +20,7 @@
5
20
  - Adds ability to use either new or old configuration values.
6
21
 
7
22
  ## 2.1.2
8
- - Documentation updates
23
+ - Documentation updates.
9
24
 
10
25
  ## 2.1.1
11
26
  - Improved efficiency.
data/README.md CHANGED
@@ -3,8 +3,8 @@
3
3
  Microsoft Sentinel provides a new output plugin for Logstash. Use this output plugin to send any log via Logstash to the Microsoft Sentinel/Log Analytics workspace. This is done with the Log Analytics DCR-based API.
4
4
  You may send logs to custom or standard tables.
5
5
 
6
- Plugin version: v2.2.1
7
- Released on: 2026-05-27
6
+ Plugin version: v2.3.2
7
+ Released on: 2026-06-23
8
8
 
9
9
  This plugin is currently in development and is free to use. We request and appreciate feedback from users.
10
10
 
@@ -19,7 +19,7 @@ This plugin is currently in development and is free to use. We request and appre
19
19
 
20
20
  Microsoft Sentinel provides Logstash output plugin to Log analytics workspace using DCR based logs API.
21
21
 
22
- The plugin is published on [RubyGems](https://rubygems.org/gems/microsoft-sentinel-log-analytics-logstash-output-plugin). To install to an existing logstash installation, run `logstash-plugin install microsoft-sentinel-log-analytics-logstash-output-plugin`.
22
+ The plugin is published on [RubyGems](https://rubygems.org/gems/microsoft-sentinel-log-analytics-logstash-output-plugin/versions/2.2.2-java). To install to an existing logstash installation, run `logstash-plugin install microsoft-sentinel-log-analytics-logstash-output-plugin`.
23
23
 
24
24
  If you do not have a direct internet connection, you can install the plugin to another logstash installation, and then export and import a plugin bundle to the offline host. For more information, see [Logstash Offline Plugin Management instruction](<https://www.elastic.co/guide/en/logstash/current/offline-plugins.html>).
25
25
 
@@ -32,6 +32,7 @@ Microsoft Sentinel's Logstash output plugin supports the following versions
32
32
  - 9.1.10 (NOTE: this version requires a security update, according to Logstash!)
33
33
  - 9.2.4 - 9.2.5 (NOTE: these versions require a security update, according to Logstash! [Security Update](https://discuss.elastic.co/t/logstash-8-19-14-9-2-8-9-3-3-security-update-esa-2026-29/385816))
34
34
  - 9.3.3
35
+ - 9.4.0
35
36
 
36
37
  Please note that when using Logstash 8, it is recommended to disable ECS in the pipeline. For more information refer to [Logstash documentation.](<https://www.elastic.co/guide/en/logstash/8.4/ecs-ls.html>)
37
38
 
@@ -95,15 +96,13 @@ To configure Microsoft Sentinel Logstash plugin you first need to create the DCR
95
96
 
96
97
  *Note:* The identity (service principal or managed identity) must have the **Monitoring Metrics Publisher** role on the target DCR:
97
98
 
98
- ```
99
99
  az role assignment create \
100
100
  --assignee <object-id-of-identity> \
101
101
  --role "Monitoring Metrics Publisher" \
102
102
  --scope "/subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.Insights/dataCollectionRules/<dcr-name>"
103
- ```
104
103
 
105
104
 
106
- ## 4. Configure the Output Plugin
105
+ ## 4. Configure Logstash configuration file
107
106
 
108
107
  Add the `microsoft-sentinel-log-analytics-logstash-output-plugin` block to the `output` section of your Logstash configuration file (e.g., `logstash.conf`). The plugin requires three values from your Azure DCR resources plus authentication credentials depending on your method.
109
108
 
@@ -125,7 +124,6 @@ The plugin auto-detects the auth method based on which config values are present
125
124
 
126
125
  Provide `client_id`, `client_secret`, and `tenant_id` for your Azure App Registration / service principal.
127
126
 
128
- ```
129
127
  output {
130
128
  microsoft-sentinel-log-analytics-logstash-output-plugin {
131
129
  data_collection_endpoint => "https://<your-dce-name>.<region>.ingest.monitor.azure.com"
@@ -136,14 +134,12 @@ Provide `client_id`, `client_secret`, and `tenant_id` for your Azure App Registr
136
134
  tenant_id => "<your-azure-tenant-id>"
137
135
  }
138
136
  }
139
- ```
140
137
 
141
138
 
142
139
  #### Option 2: Managed Identity
143
140
 
144
141
  When running on an Azure VM with a system-assigned managed identity, omit `client_id`, `client_secret`, and `tenant_id`. The plugin will automatically use the VM's managed identity.
145
142
 
146
- ```
147
143
  output {
148
144
  microsoft-sentinel-log-analytics-logstash-output-plugin {
149
145
  data_collection_endpoint => "https://<your-dce-name>.<region>.ingest.monitor.azure.com"
@@ -151,13 +147,11 @@ When running on an Azure VM with a system-assigned managed identity, omit `clien
151
147
  stream_name => "Custom-MyTableRawData_CL"
152
148
  }
153
149
  }
154
- ```
155
150
 
156
151
  #### Option 3: Client Secret + Sovereign Cloud
157
152
 
158
153
  To authenticate against a sovereign cloud, add `azure_cloud`. Supported values: `AzurePublicCloud` (default), `AzureUSGovernment`, `AzureChinaCloud`, `AzureGermanyCloud`.
159
154
 
160
- ```
161
155
  output {
162
156
  microsoft-sentinel-log-analytics-logstash-output-plugin {
163
157
  data_collection_endpoint => "https://<your-dce-ingestion-endpoint>"
@@ -169,11 +163,9 @@ To authenticate against a sovereign cloud, add `azure_cloud`. Supported values:
169
163
  azure_cloud => "AzureUSGovernment"
170
164
  }
171
165
  }
172
- ```
173
166
 
174
167
  #### Option 4: Managed Identity + Sovereign Cloud
175
168
 
176
- ```
177
169
  output {
178
170
  microsoft-sentinel-log-analytics-logstash-output-plugin {
179
171
  data_collection_endpoint => "https://<your-dce-ingestion-endpoint>"
@@ -182,7 +174,6 @@ To authenticate against a sovereign cloud, add `azure_cloud`. Supported values:
182
174
  azure_cloud => "AzureUSGovernment"
183
175
  }
184
176
  }
185
- ```
186
177
  ---
187
178
  Security notice: We recommend not to implicitly state client_id, client_secret, tenant_id, data_collection_endpoint, and dcr_id in your Logstash configuration for security reasons.
188
179
  It is best to store this sensitive information in a Logstash KeyStore as described here- ['Secrets Keystore'](<https://www.elastic.co/guide/en/logstash/current/keystore.html>)
@@ -193,7 +184,6 @@ Security notice: We recommend not to implicitly state client_id, client_secret,
193
184
 
194
185
  A complete `logstash.conf` using client secret auth with a Beats input:
195
186
 
196
- ```
197
187
  input {
198
188
  beats {
199
189
  port => 5044
@@ -213,7 +203,6 @@ A complete `logstash.conf` using client secret auth with a Beats input:
213
203
  tenant_id => "72f988bf-86f1-41af-91ab-xxxxxxxxxxxx"
214
204
  }
215
205
  }
216
- ```
217
206
  ---
218
207
 
219
208
  ## Optional Config Values
@@ -234,18 +223,17 @@ A complete `logstash.conf` using client secret auth with a Beats input:
234
223
  | `batcher_workers_count` | *(auto)* | Number of batcher threads |
235
224
  | `sender_workers_count` | *(auto)* | Number of sender threads |
236
225
  | `unifier_workers_count` | *(auto)* | Number of unifier threads |
226
+ | `id` | `None` | A custom identification tag to be added to sent-batches logs |
237
227
 
238
228
  ## Known issues
239
229
 
240
230
  When using Logstash installed on a Docker image of Lite Ubuntu, the following warning may appear:
241
231
 
242
- ```
243
232
  java.lang.RuntimeException: getprotobyname_r failed
244
- ```
245
233
 
246
234
  To resolve it, use the following commands to install the *netbase* package within your Dockerfile:
247
235
  ```
248
236
  USER root
249
237
  RUN apt install netbase -y
250
- ```
238
+ ```
251
239
  For more information, see [JNR regression in Logstash 7.17.0 (Docker)](https://github.com/elastic/logstash/issues/13703).
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.2.1
1
+ 2.3.2
@@ -1,7 +1,14 @@
1
1
  # AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
2
2
  # encoding: utf-8
3
-
4
- # NOTE: Java plugin (no Ruby plugin class). This file exists only to ensure
5
- # jar-dependencies loads the packaged jar into JRuby's classpath.
6
- require "logstash-output-microsoft-sentinel-log-analytics-logstash-output-plugin_jars"
3
+ require "logstash/outputs/base"
4
+ require "logstash/namespace"
5
+ require "microsoft-sentinel-log-analytics-logstash-output-plugin_jars"
7
6
  require "java"
7
+
8
+ class LogStash::Outputs::MicrosoftSentinelLogAnalyticsLogstashOutputPlugin < LogStash::Outputs::Base
9
+ config_name "microsoft-sentinel-log-analytics-logstash-output-plugin"
10
+
11
+ def self.javaClass
12
+ Java::org.logstashplugins.MicrosoftSentinelLogAnalyticsLogstashOutputPlugin.java_class
13
+ end
14
+ end
@@ -1,4 +1,18 @@
1
1
  # AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
2
2
  # encoding: utf-8
3
- require "logstash-output-microsoft-sentinel-log-analytics-logstash-output-plugin_jars"
4
- require "java"
3
+ require "logstash/plugins/registry"
4
+
5
+ # Workaround for elastic/logstash registry.rb#is_a_plugin? not handling
6
+ # Java plugin classes whose name uses dashes. Strip both '-' and '_'.
7
+ LogStash::Plugins::Registry.class_eval do
8
+ define_method(:is_a_plugin?) do |klass, name|
9
+ if klass.class == Java::JavaLang::Class
10
+ klass.simple_name.downcase == name.gsub(/[-_]/, '')
11
+ else
12
+ klass.ancestors.include?(LogStash::Plugin) && klass.respond_to?(:config_name) && klass.config_name == name
13
+ end
14
+ end
15
+ end
16
+
17
+ require "logstash/outputs/microsoft-sentinel-log-analytics-logstash-output-plugin"
18
+ LogStash::PLUGIN_REGISTRY.add(:output, "microsoft-sentinel-log-analytics-logstash-output-plugin", LogStash::Outputs::MicrosoftSentinelLogAnalyticsLogstashOutputPlugin)
@@ -0,0 +1,5 @@
1
+ # AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
2
+ # encoding: utf-8
3
+
4
+ require 'jar_dependencies'
5
+ require_jar('org.logstashplugins', 'microsoft-sentinel-log-analytics-logstash-output-plugin', '2.3.2')
@@ -1,7 +1,7 @@
1
1
  # AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
2
2
  Gem::Specification.new do |s|
3
3
  s.name = 'microsoft-sentinel-log-analytics-logstash-output-plugin'
4
- s.version = '2.2.1'
4
+ s.version = '2.3.2'
5
5
  s.licenses = ['Apache-2.0']
6
6
  s.summary = 'Microsoft Sentinel Log Analytics output plugin'
7
7
  s.description = 'Microsoft Sentinel provides a new output plugin for Logstash. Use this output plugin to send any log via Logstash to the Microsoft Sentinel/Log Analytics workspace. This is done with the Log Analytics DCR-based API.'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: microsoft-sentinel-log-analytics-logstash-output-plugin
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.3.2
5
5
  platform: java
6
6
  authors:
7
7
  - Microsoft
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-27 00:00:00.000000000 Z
11
+ date: 2026-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -71,11 +71,11 @@ files:
71
71
  - Gemfile
72
72
  - README.md
73
73
  - VERSION
74
- - lib/logstash-output-microsoft-sentinel-log-analytics-logstash-output-plugin_jars.rb
75
74
  - lib/logstash/outputs/microsoft-sentinel-log-analytics-logstash-output-plugin.rb
76
75
  - lib/logstash_registry.rb
76
+ - lib/microsoft-sentinel-log-analytics-logstash-output-plugin_jars.rb
77
77
  - logstash-output-microsoft-sentinel-log-analytics-logstash-output-plugin.gemspec
78
- - vendor/jar-dependencies/org/logstashplugins/logstash-output-microsoft-sentinel-log-analytics-logstash-output-plugin/2.2.1/logstash-output-microsoft-sentinel-log-analytics-logstash-output-plugin-2.2.1.jar
78
+ - vendor/jar-dependencies/org/logstashplugins/microsoft-sentinel-log-analytics-logstash-output-plugin/2.3.2/microsoft-sentinel-log-analytics-logstash-output-plugin-2.3.2.jar
79
79
  homepage:
80
80
  licenses:
81
81
  - Apache-2.0
@@ -1,5 +0,0 @@
1
- # AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
2
- # encoding: utf-8
3
-
4
- require 'jar_dependencies'
5
- require_jar('org.logstashplugins', 'logstash-output-microsoft-sentinel-log-analytics-logstash-output-plugin', '2.2.1')