ucp-logstash-pipeline-test 0.1.1-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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: d41c9c9d867b814d7e66ac047d36621c1d7b0842c137e625bbc674209eb8ebe8
4
+ data.tar.gz: 568a5b601009b575883923a4d6a539b66b2f11184f8dbcfb98624bf24c556e17
5
+ SHA512:
6
+ metadata.gz: d4d90723426f9a197aeaaae0509ad4c6c90e10088821baf2aaf29901c5285e74cc68ebaea26a378e8eb76252e9deebc5492fac97f7b7cead362082807a379c89
7
+ data.tar.gz: 5d7a33e886b7127b3f253a0e383c958da76bc625dc7594809a4e91a528ba3d530520aecb6ce5fa65ea4c9b5d0d696590cb002f36ee40eda89b325e867ef9b910
data/CHANGELOG.md ADDED
@@ -0,0 +1,46 @@
1
+ ## 2.5.0
2
+ - Added optional per-plugin proxy configuration for authentication and ingestion traffic using `proxy`, `proxy_aad`, and `proxy_endpoint`.
3
+ - Updated Netty handler, HTTP, HTTP/2, and DNS components to 4.1.136.Final.
4
+ - Updated Jackson Databind and Jackson Core to 2.18.8.
5
+
6
+ ## 2.4.0
7
+ - Worker threads now run as bounded, executor-scheduled passes: recoverable exceptions are logged and the worker resumes on the next cycle; fatal JVM errors are logged and re-thrown.
8
+ - Fixed graceful shutdown so in-flight batches are drained (batchers, then unifiers, then senders) before workers stop, bounded by `max_graceful_shutdown_time_seconds`.
9
+ - Added configurable upload timeouts `connect_timeout_seconds` (default `15`) and `write_timeout_seconds` (default `60`); connect/write timeouts are retried.
10
+ - Added thread id, exception type, batch size, and DCR stream to batch failure logs.
11
+
12
+ ## 2.3.3
13
+ - Fixed loss of numeric and boolean type fidelity: fields backed by Logstash's internal JRuby types (e.g. ports, byte counts) are now preserved as native JSON numbers/booleans instead of being converted to strings, ensuring reliable ingestion into DCRs with typed columns.
14
+
15
+ ## 2.3.2
16
+ - Fixed silent worker thread death caused by uncaught exceptions in worker processing loop.
17
+ - Fixed NullPointerException in SenderWorker when Azure returns a LogsUploadException with a null HTTP response.
18
+ - Added resilient error handling with consecutive error tracking to reduce permanent worker failure.
19
+ - Added optional Id configuration value for telemetry.
20
+ - Added DCR stream to sent-batches logging.
21
+
22
+ ## 2.3.0
23
+ - Enabled functionality with logstash 9.4.
24
+ - Bumped dependency versions for external libraries (azure-sdk-bom, logback, slf4j, Netty).
25
+
26
+ ## 2.2.1
27
+ - Adds info-level logging line when batches are successfully sent.
28
+
29
+ ## 2.2.0
30
+ - Adds ability to use either new or old configuration values.
31
+
32
+ ## 2.1.2
33
+ - Documentation updates.
34
+
35
+ ## 2.1.1
36
+ - Improved efficiency.
37
+
38
+ ## 2.1.0
39
+ - Fixed event normalization.
40
+
41
+ ## 2.0.0
42
+ - Refactored the plugin from Ruby to Java.
43
+ - Added ManagedIdentity authentication.
44
+
45
+ ## 1.x.x (Ruby - deprecated)
46
+ The 1.x.x releases are the deprecated Ruby version of this plugin. For the 1.x.x changelog and documentation, see [microsoft-sentinel-log-analytics-logstash-output-plugin](../microsoft-sentinel-log-analytics-logstash-output-plugin/CHANGELOG.md).
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ # AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
2
+ source 'https://rubygems.org'
3
+
4
+ gemspec
5
+
6
+ logstash_path = ENV["LOGSTASH_PATH"] || "../../logstash"
7
+ use_logstash_source = ENV["LOGSTASH_SOURCE"] && ENV["LOGSTASH_SOURCE"].to_s == "1"
8
+
9
+ if Dir.exist?(logstash_path) && use_logstash_source
10
+ gem 'logstash-core', :path => "#{logstash_path}/logstash-core"
11
+ gem 'logstash-core-plugin-api', :path => "#{logstash_path}/logstash-core-plugin-api"
12
+ end
data/README.md ADDED
@@ -0,0 +1,268 @@
1
+ # Microsoft Sentinel Output Plugin for Logstash
2
+
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
+ You may send logs to custom or standard tables.
5
+
6
+ Plugin version: v2.5.0
7
+ Released on: 2026-08-04
8
+
9
+ This plugin is currently in development and is free to use. We request and appreciate feedback from users.
10
+
11
+ ## Installation Instructions
12
+ 1) Install the plugin
13
+ 2) Create a sample file
14
+ 3) Create the required DCR-related resources
15
+ 4) Configure Logstash configuration file
16
+
17
+
18
+ ## 1. Install the plugin
19
+
20
+ Microsoft Sentinel provides Logstash output plugin to Log analytics workspace using DCR based logs API.
21
+
22
+ The plugin is published on [RubyGems](https://rubygems.org/gems/microsoft-sentinel-log-analytics-logstash-output-plugin/versions/2.5.0-java). To install to an existing logstash installation, run `logstash-plugin install microsoft-sentinel-log-analytics-logstash-output-plugin`.
23
+
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
+
26
+ Microsoft Sentinel's Logstash output plugin supports the following versions
27
+ - 7.0 - 7.17.13
28
+ - 8.0 - 8.9 (NOTE: these versions require a security update, according to Logstash!)
29
+ - 8.11 - 8.15 (NOTE: these versions require a security update, according to Logstash!)
30
+ - 8.19.2 (NOTE: this version requires a security update, according to Logstash!)
31
+ - 9.0.8 (NOTE: this version requires a security update, according to Logstash!)
32
+ - 9.1.10 (NOTE: this version requires a security update, according to Logstash!)
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
+ - 9.3.3
35
+ - 9.4.0
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>)
38
+
39
+ ## 2. Create a sample file
40
+ To create a sample file, follow the following steps:
41
+ 1) Copy the output plugin configuration below to your Logstash configuration file:
42
+ ```
43
+ output {
44
+ microsoft-sentinel-log-analytics-logstash-output-plugin {
45
+ create_sample_file => true
46
+ sample_file_path => "<enter the path to the file in which the sample data will be written>" #for example: "c:\\temp" (for windows) or "/var/log" for Linux.
47
+ }
48
+ }
49
+ ```
50
+ Note: make sure that the path exists before creating the sample file.
51
+ 2) Start Logstash. The plugin will collect up to 10 records to a sample.
52
+ 3) The file named "sampleFile<epoch seconds>.json" in the configured path will be created once there are 10 events to sample or when the Logstash process exited gracefully. (for example: "c:\temp\sampleFile1648453501.json").
53
+
54
+
55
+ ### Configurations:
56
+ The following parameters are optional and should be used to create a sample file.
57
+ - **create_sample_file** - Boolean, False by default. When enabled, up to 10 events will be written to a sample json file.
58
+ - **sample_file_path** - String, Empty by default. Required when create_sample_file is enabled. Should include a valid path in which to place the sample file generated.
59
+
60
+ ### Complete example
61
+ 1. set the pipeline.conf with the following configuration:
62
+ ```
63
+ input {
64
+ generator {
65
+ lines => [ "This is a test log message"]
66
+ count => 10
67
+ }
68
+ }
69
+
70
+ output {
71
+ microsoft-sentinel-log-analytics-logstash-output-plugin {
72
+ create_sample_file => true
73
+ sample_file_path => "<enter the path to the file in which the sample data will be written>" #for example: "c:\\temp" (for windows) or "/var/log" for Linux.
74
+ }
75
+ }
76
+ ```
77
+
78
+ 2. the following sample file will be generated:
79
+ ```
80
+ [
81
+ {
82
+ "host": "logstashMachine",
83
+ "sequence": 0,
84
+ "message": "This is a test log message",
85
+ "ls_timestamp": "2022-10-29T13:19:28.116Z",
86
+ "ls_version": "1"
87
+ },
88
+ ...
89
+ ]
90
+ ```
91
+
92
+ ## 3. Create the required DCR-related resources
93
+ To configure Microsoft Sentinel Logstash plugin you first need to create the DCR-related resources. To create these resources, follow one of the following tutorials:
94
+ 1) To ingest the data to a custom table use [Tutorial - Send custom logs to Azure Monitor Logs (preview) - Azure Monitor | Microsoft Docs](<https://docs.microsoft.com/azure/azure-monitor/logs/tutorial-custom-logs>) tutorial. Note that as part of creating the table and the DCR you will need to provide the sample file that you've created in the previous section.
95
+ 2) To ingest the data to a standard table like Syslog or CommonSecurityLog use [Tutorial - Send custom logs to Azure Monitor Logs using resource manager templates - Azure Monitor | Microsoft Docs](<https://docs.microsoft.com/azure/azure-monitor/logs/tutorial-custom-logs-api>).
96
+
97
+ *Note:* The identity (service principal or managed identity) must have the **Monitoring Metrics Publisher** role on the target DCR:
98
+
99
+ az role assignment create \
100
+ --assignee <object-id-of-identity> \
101
+ --role "Monitoring Metrics Publisher" \
102
+ --scope "/subscriptions/<sub-id>/resourceGroups/<rg>/providers/Microsoft.Insights/dataCollectionRules/<dcr-name>"
103
+
104
+
105
+ ## 4. Configure Logstash configuration file
106
+
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.
108
+
109
+ ### Required Config Values (needed for all methods)
110
+
111
+ | Key | Description |
112
+ |---|---|
113
+ | `data_collection_endpoint` | Your DCE logsIngestion URI |
114
+ | `dcr_id` | The immutable ID of your Data Collection Rule |
115
+ | `stream_name` | The stream name from your DCR (e.g., `Custom-MyTableRawData_CL`) |
116
+
117
+ ---
118
+
119
+ ### Authentication Examples
120
+
121
+ The plugin auto-detects the auth method based on which config values are present.
122
+
123
+ #### Option 1: Client Secret (App Registration)
124
+
125
+ Provide `client_id`, `client_secret`, and `tenant_id` for your Azure App Registration / service principal.
126
+
127
+ output {
128
+ microsoft-sentinel-log-analytics-logstash-output-plugin {
129
+ data_collection_endpoint => "https://<your-dce-name>.<region>.ingest.monitor.azure.com"
130
+ dcr_id => "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
131
+ stream_name => "Custom-MyTableRawData_CL"
132
+ client_id => "<your-app-client-id>"
133
+ client_secret => "<your-app-client-secret>"
134
+ tenant_id => "<your-azure-tenant-id>"
135
+ }
136
+ }
137
+
138
+
139
+ #### Option 2: Managed Identity
140
+
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.
142
+
143
+ output {
144
+ microsoft-sentinel-log-analytics-logstash-output-plugin {
145
+ data_collection_endpoint => "https://<your-dce-name>.<region>.ingest.monitor.azure.com"
146
+ dcr_id => "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
147
+ stream_name => "Custom-MyTableRawData_CL"
148
+ }
149
+ }
150
+
151
+ #### Option 3: Client Secret + Sovereign Cloud
152
+
153
+ To authenticate against a sovereign cloud, add `azure_cloud`. Supported values: `AzurePublicCloud` (default), `AzureUSGovernment`, `AzureChinaCloud`, `AzureGermanyCloud`.
154
+
155
+ output {
156
+ microsoft-sentinel-log-analytics-logstash-output-plugin {
157
+ data_collection_endpoint => "https://<your-dce-ingestion-endpoint>"
158
+ dcr_id => "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
159
+ stream_name => "Custom-MyTableRawData_CL"
160
+ client_id => "<your-app-client-id>"
161
+ client_secret => "<your-app-client-secret>"
162
+ tenant_id => "<your-tenant-id>"
163
+ azure_cloud => "AzureUSGovernment"
164
+ }
165
+ }
166
+
167
+ #### Option 4: Managed Identity + Sovereign Cloud
168
+
169
+ output {
170
+ microsoft-sentinel-log-analytics-logstash-output-plugin {
171
+ data_collection_endpoint => "https://<your-dce-ingestion-endpoint>"
172
+ dcr_id => "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
173
+ stream_name => "Custom-MyTableRawData_CL"
174
+ azure_cloud => "AzureUSGovernment"
175
+ }
176
+ }
177
+ ---
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.
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>)
180
+
181
+ ---
182
+
183
+ ## Full Pipeline Example
184
+
185
+ A complete `logstash.conf` using client secret auth with a Beats input:
186
+
187
+ input {
188
+ beats {
189
+ port => 5044
190
+ }
191
+ }
192
+
193
+ filter {
194
+ }
195
+
196
+ output {
197
+ microsoft-sentinel-log-analytics-logstash-output-plugin {
198
+ data_collection_endpoint => "https://my-dce.eastus2-1.ingest.monitor.azure.com"
199
+ dcr_id => "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
200
+ stream_name => "Custom-MyTableRawData_CL"
201
+ client_id => "619c1731-15ca-4403-9c61-xxxxxxxxxxxx"
202
+ client_secret => "xxxxxxxxxxxxxxxx"
203
+ tenant_id => "72f988bf-86f1-41af-91ab-xxxxxxxxxxxx"
204
+ }
205
+ }
206
+ ---
207
+
208
+ ## Optional Config Values
209
+
210
+ | Key | Default | Description |
211
+ |---|---|---|
212
+ | `azure_cloud` | `AzurePublicCloud` | Azure cloud environment |
213
+ | `proxy` | *(none)* | Optional. Base HTTP proxy URL applied to all plugin traffic. Format: `[http://][user:password@]host:port`. When unset, no proxy is used and behavior is unchanged |
214
+ | `proxy_aad` | *(value of `proxy`)* | Optional. HTTP proxy URL used only for Microsoft Entra ID (AAD) authentication/token traffic. Falls back to `proxy` when unset |
215
+ | `proxy_endpoint` | *(value of `proxy`)* | Optional. HTTP proxy URL used only for traffic to the Data Collection Endpoint. Falls back to `proxy` when unset |
216
+ | `keys_to_keep` | *(all)* | Array of field names to send (subset filtering) |
217
+ | `max_retries_num` | `3` | Max retry attempts for failed sends |
218
+ | `initial_wait_time_seconds` | `1` | Initial backoff between retries |
219
+ | `connect_timeout_seconds` | `15` | Timeout for establishing the connection to the ingestion endpoint. Bounds how long an upload can block in the connect phase; a resulting timeout is retried |
220
+ | `write_timeout_seconds` | `60` | Timeout for sending the request body to the ingestion endpoint. Bounds how long an upload can block in the write phase; a resulting timeout is retried |
221
+ | `max_graceful_shutdown_time_seconds` | `60` | Max wait for graceful shutdown |
222
+ | `max_waiting_time_for_batch_seconds` | `10` | Max wait before flushing a batch |
223
+ | `max_waiting_for_unifier_time_seconds` | `10` | Max wait before flushing the unifier |
224
+ | `max_batch_size` | `10000` | Maximum number of events per batch. When a batch reaches this size it is flushed immediately, regardless of the time window |
225
+ | `input_queue_capacity` | `50000` | Maximum capacity of the input queue. Bounds memory usage under high-volume ingestion. When full, back-pressure is applied to the Logstash pipeline |
226
+ | `internal_queue_capacity` | `500` | Maximum capacity of the internal queues between batcher, unifier, and sender workers. Bounds memory usage for in-flight batches |
227
+ | `worker_sleep_time_millis` | `10` | Delay between worker iterations |
228
+ | `batcher_workers_count` | *(auto)* | Number of batcher threads |
229
+ | `sender_workers_count` | *(auto)* | Number of sender threads |
230
+ | `unifier_workers_count` | *(auto)* | Number of unifier threads |
231
+ | `id` | `None` | A custom identification tag to be added to sent-batches logs |
232
+
233
+ ### Proxy configuration
234
+
235
+ The proxy settings are **optional** and scoped to this plugin only. If you do not set any of them, the plugin behaves exactly as before and sends traffic directly (no proxy). This is useful when a single Logstash instance has multiple outputs and only the Microsoft Sentinel output needs to traverse a corporate proxy.
236
+
237
+ - `proxy` — base proxy applied to both authentication and ingestion traffic.
238
+ - `proxy_aad` — overrides the proxy used for Microsoft Entra ID (AAD) token requests; falls back to `proxy`.
239
+ - `proxy_endpoint` — overrides the proxy used for Data Collection Endpoint traffic; falls back to `proxy`.
240
+
241
+ Proxy URLs use the format `[http://][user:password@]host:port`. The scheme is optional and defaults to `http`; both host and port are required. Example:
242
+
243
+ output {
244
+ microsoft-sentinel-log-analytics-logstash-output-plugin {
245
+ data_collection_endpoint => "https://my-dce.eastus2-1.ingest.monitor.azure.com"
246
+ dcr_id => "dcr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
247
+ stream_name => "Custom-MyTableRawData_CL"
248
+ client_id => "<your-app-client-id>"
249
+ client_secret => "<your-app-client-secret>"
250
+ tenant_id => "<your-azure-tenant-id>"
251
+ proxy => "http://proxyhost:8080"
252
+ }
253
+ }
254
+
255
+ Security note: if your proxy requires credentials, store them in the Logstash KeyStore rather than placing them in plaintext in the configuration file.
256
+
257
+ ## Known issues
258
+
259
+ When using Logstash installed on a Docker image of Lite Ubuntu, the following warning may appear:
260
+
261
+ java.lang.RuntimeException: getprotobyname_r failed
262
+
263
+ To resolve it, use the following commands to install the *netbase* package within your Dockerfile:
264
+ ```
265
+ USER root
266
+ RUN apt install netbase -y
267
+ ```
268
+ For more information, see [JNR regression in Logstash 7.17.0 (Docker)](https://github.com/elastic/logstash/issues/13703).
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 2.5.0
@@ -0,0 +1,14 @@
1
+ # AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
2
+ # encoding: utf-8
3
+ require "logstash/outputs/base"
4
+ require "logstash/namespace"
5
+ require "microsoft-sentinel-log-analytics-logstash-output-plugin_jars"
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
@@ -0,0 +1,18 @@
1
+ # AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
2
+ # encoding: utf-8
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.5.0')
@@ -0,0 +1,22 @@
1
+ # AUTOGENERATED BY THE GRADLE SCRIPT. EDITS WILL BE OVERWRITTEN.
2
+ Gem::Specification.new do |s|
3
+ s.name = 'ucp-logstash-pipeline-test'
4
+ s.version = '0.1.1'
5
+ s.licenses = ['Apache-2.0']
6
+ s.summary = 'Microsoft Sentinel Log Analytics output plugin'
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.'
8
+ s.authors = ['Microsoft']
9
+ s.email = ['msg-ucp@service.microsoft.com']
10
+ s.platform = 'java'
11
+ s.require_paths = ['lib', 'vendor/jar-dependencies']
12
+
13
+ s.files = Dir["lib/**/*","*.gemspec","*.md","CONTRIBUTORS","Gemfile","LICENSE","NOTICE.TXT", "vendor/jar-dependencies/**/*.jar", "vendor/jar-dependencies/**/*.rb", "VERSION", "docs/**/*"]
14
+
15
+ # Special flag to let us know this is actually a logstash plugin
16
+ s.metadata = { 'logstash_plugin' => 'true', 'logstash_group' => 'output', 'java_plugin' => 'true'}
17
+
18
+ # Gem dependencies
19
+ s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
20
+ s.add_runtime_dependency 'jar-dependencies'
21
+ s.add_development_dependency 'logstash-devutils'
22
+ end
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ucp-logstash-pipeline-test
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: java
6
+ authors:
7
+ - Microsoft
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2026-08-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '1.60'
19
+ - - "<="
20
+ - !ruby/object:Gem::Version
21
+ version: '2.99'
22
+ name: logstash-core-plugin-api
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1.60'
30
+ - - "<="
31
+ - !ruby/object:Gem::Version
32
+ version: '2.99'
33
+ - !ruby/object:Gem::Dependency
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ name: jar-dependencies
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ name: logstash-devutils
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ description: Microsoft Sentinel provides a new output plugin for Logstash. Use this
62
+ output plugin to send any log via Logstash to the Microsoft Sentinel/Log Analytics
63
+ workspace. This is done with the Log Analytics DCR-based API.
64
+ email:
65
+ - msg-ucp@service.microsoft.com
66
+ executables: []
67
+ extensions: []
68
+ extra_rdoc_files: []
69
+ files:
70
+ - CHANGELOG.md
71
+ - Gemfile
72
+ - README.md
73
+ - VERSION
74
+ - lib/logstash/outputs/microsoft-sentinel-log-analytics-logstash-output-plugin.rb
75
+ - lib/logstash_registry.rb
76
+ - lib/microsoft-sentinel-log-analytics-logstash-output-plugin_jars.rb
77
+ - logstash-output-microsoft-sentinel-log-analytics-logstash-output-plugin.gemspec
78
+ - vendor/jar-dependencies/org/logstashplugins/microsoft-sentinel-log-analytics-logstash-output-plugin/2.5.0/microsoft-sentinel-log-analytics-logstash-output-plugin-2.5.0.jar
79
+ homepage:
80
+ licenses:
81
+ - Apache-2.0
82
+ metadata:
83
+ logstash_plugin: 'true'
84
+ logstash_group: output
85
+ java_plugin: 'true'
86
+ post_install_message:
87
+ rdoc_options: []
88
+ require_paths:
89
+ - lib
90
+ - vendor/jar-dependencies
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ requirements: []
102
+ rubygems_version: 3.3.26
103
+ signing_key:
104
+ specification_version: 4
105
+ summary: Microsoft Sentinel Log Analytics output plugin
106
+ test_files: []