зеркало из
1
0
Форкнуть 0
Logstash output for Kusto
Перейти к файлу
Ramachandran A G 33cbb65732
Feature/support managed identity (#57)
* * Attempt to address issue #50 with managed identity
* * Update version
* Fix review comments
2023-10-16 09:46:04 +05:30
.github/workflows * Manual trigger and remove install step (#56) 2023-09-26 13:05:36 +03:00
.vscode Version 0.4.0 (#26) 2019-05-26 16:20:46 +03:00
e2e Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
gradle/wrapper Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
lib/logstash/outputs Feature/support managed identity (#57) 2023-10-16 09:46:04 +05:30
spec Feature/support managed identity (#57) 2023-10-16 09:46:04 +05:30
.gitignore Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
.rubocop.yml publish version 0.1.6 (#1) 2018-09-20 16:09:28 +03:00
CHANGELOG.md Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
CONTRIBUTORS Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
Gemfile Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
LICENSE Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
README.md Feature/support managed identity (#57) 2023-10-16 09:46:04 +05:30
Rakefile Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
SECURITY.md Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
build.gradle Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
gradlew Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
gradlew.bat Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
logstash-output-kusto.gemspec Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
settings.gradle Fixes MSRC and upgrades libraries. (#54) 2023-09-26 11:44:53 +05:30
version Feature/support managed identity (#57) 2023-10-16 09:46:04 +05:30

README.md

Logstash Output Plugin for Azure Data Explorer (Kusto)

build build Gem Gem

This is a plugin for Logstash.

It is fully free and open source. The license is Apache 2.0.

This Azure Data Explorer (ADX) Logstash plugin enables you to process events from Logstash into an Azure Data Explorer database for later analysis.

Requirements

Installation

To make the Azure Data Explorer plugin available in your Logstash environment, run the following command:

bin/logstash-plugin install logstash-output-kusto

Configuration

Perform configuration before sending events from Logstash to Azure Data Explorer. The following example shows the minimum you need to provide. It should be enough for most use-cases:

output {
	kusto {
            path => "/tmp/kusto/%{+YYYY-MM-dd-HH-mm}.txt"
            ingest_url => "https://ingest-<cluster-name>.kusto.windows.net/"
            app_id => "<application id>"
            app_key => "<application key/secret>"
            app_tenant => "<tenant id>"
            database => "<database name>"
            table => "<target table>"
            json_mapping => "<mapping name>"
            proxy_host => "<proxy host>"
            proxy_port => <proxy port>
            proxy_protocol => <"http"|"https">              
	}
}

More information about configuring Logstash can be found in the logstash configuration guide

Available Configuration Keys

Parameter Name Description Notes
path The plugin writes events to temporary files before sending them to ADX. This parameter includes a path where files should be written and a time expression for file rotation to trigger an upload to the ADX service. The example above shows how to rotate the files every minute and check the Logstash docs for more information on time expressions. Required
ingest_url The Kusto endpoint for ingestion-related communication. See it on the Azure Portal. Required
app_id, app_key, app_tenant Credentials required to connect to the ADX service. Be sure to use an application with 'ingest' privileges. Optional
managed_identity Managed Identity to authenticate. For user-based managed ID, use the Client ID GUID. For system-based, use the value system. The ID needs to have 'ingest' privileges on the cluster. Optional
database Database name to place events Required
table Target table name to place events Required
json_mapping Maps each attribute from incoming event JSON strings to the appropriate column in the table. Note that this must be in JSON format, as this is the interface between Logstash and Kusto Required
recovery If set to true (default), plugin will attempt to resend pre-existing temp files found in the path upon startup
delete_temp_files Determines if temp files will be deleted after a successful upload (true is default; set false for debug purposes only)
flush_interval The time (in seconds) for flushing writes to temporary files. Default is 2 seconds, 0 will flush on every event. Increase this value to reduce IO calls but keep in mind that events in the buffer will be lost in case of abrupt failure.
proxy_host The proxy hostname for redirecting traffic to Kusto.
proxy_port The proxy port for the proxy. Defaults to 80.
proxy_protocol The proxy server protocol , is one of http or https.

Note : LS_JAVA_OPTS can be used to set proxy parameters as well (using export or SET options)

export  LS_JAVA_OPTS="-Dhttp.proxyHost=1.2.34 -Dhttp.proxyPort=8989 -Dhttps.proxyHost=1.2.3.4 -Dhttps.proxyPort=8989"

Release Notes and versions

Version Release Date Notes
2.0.0 2023-09-19 - Upgrade to the latest Java SDK version 5.0.2. Tests have been performed on Logstash 8.5 and up (Does not work with 6.x or 7.x versions of Logstash - For these versions use 1.x.x versions of logstash-output-kusto gem) - Fixes CVE's in common-text & outdated Jackson libraries
1.0.6 2022-11-29 - Upgrade to the latest Java SDK 3.2.1 version. Tests have been performed on Logstash 6.x and up.

Development Requirements

It is reccomened to use the bundled jdk and jruby with logstash to avoid compatibility issues.

To fully build the gem, run:

bundle install
lock_jars
gem build

Contributing

All contributions are welcome: ideas, patches, documentation, bug reports, and complaints. Programming is not a required skill. It is more important to the community that you are able to contribute. For more information about contributing, see the CONTRIBUTING file.