Movatterモバイル変換


[0]ホーム

URL:


Loading

Elasticsearch output plugin

For other versions, see theVersioned plugin docs.

For questions about the plugin, open a topic in theDiscuss forums. For bugs or feature requests, open an issue inGithub. For the list of Elastic supported plugins, please consult theElastic Support Matrix.

Elasticsearch provides near real-time search and analytics for all types of data. The Elasticsearch output plugin can store both time series datasets (such as logs, events, and metrics) and non-time series data in Elasticsearch.

You canlearn more about Elasticsearch on the website landing page or in theElasticsearch documentation.

Compatibility Note

When connected to Elasticsearch 7.x, modern versions of this plugin don’t use the document-type when inserting documents, unless the user explicitly setsdocument_type.

If you are using an earlier version of Logstash and wish to connect to Elasticsearch 7.x, first upgrade Logstash to version 6.8 to ensure it picks up changes to the Elasticsearch index template.

If you are using a customtemplate, ensure your template uses the_doc document-type before connecting to Elasticsearch 7.x.

You can use this plugin to send your Logstash data to Elasticsearch Serverless. Some differences to note between Elasticsearch Serverless and self-managed Elasticsearch:

Known issue for Logstash to Elasticsearch Serverless

The logstash-output-elasticsearchhosts setting on Serverless defaults the port to 9200 when omitted. Set the value to port :443 instead.

For more info on sending data from Logstash to Elasticsearch Serverless, check out theElasticsearch Serverless docs.

You can run Elasticsearch on your own hardware or use Elastic Cloud Hosted, available on AWS, GCP, and Azure. Try Elastic Cloud Hosted for free: https://cloud.elastic.co/registration.

This plugin will persist events to Elasticsearch in the shape produced by your pipeline, andcannot be used to re-shape the event structure into a shape that complies with ECS. To produce events that fully comply with ECS, you will need to populate ECS-defined fields throughout your pipeline definition.

However, the Elasticsearch Index Templates it manages can be configured to be ECS-compatible by settingecs_compatibility. By having an ECS-compatible template in place, we can ensure that Elasticsearch is prepared to create and index fields in a way that is compatible with ECS, and will correctly reject events with fields that conflict and cannot be coerced.

The Elasticsearch output plugin can store both time series datasets (such as logs, events, and metrics) and non-time series data in Elasticsearch.

Use the data stream options for indexing time series datasets (such as logs, metrics, and events) into Elasticsearch and Elasticsearch Serverless:

Important

ECS compatibility must be enabled (set tov1 orv8) for data streams to work properly.

Example: Basic default configuration

output {    elasticsearch {        hosts => "hostname"        data_stream => "true"    }}

This example shows the minimal settings for processing data streams. Events withdata_stream.*`` fields are routed to the appropriate data streams. If the fields are missing, routing defaults tologs-generic-default`.

Example: Customize data stream name

output {    elasticsearch {        hosts => "hostname"        data_stream => "true"        data_stream_type => "metrics"        data_stream_dataset => "foo"        data_stream_namespace => "bar"    }}
Note

You cannot use dynamic variable substitution whenilm_enabled istrue and when usingilm_rollover_alias.

If you’re sending events to the same Elasticsearch cluster, but you’re targeting different indices you can:

  • use different Elasticsearch outputs, each one with a different value for theindex parameter
  • use one Elasticsearch output and use the dynamic variable substitution for theindex parameter

Each Elasticsearch output is a new client connected to the cluster:

  • it has to initialize the client and connect to Elasticsearch (restart time is longer if you have more clients)
  • it has an associated connection pool

In order to minimize the number of open connections to Elasticsearch, maximize the bulk size and reduce the number of "small" bulk requests (which could easily fill up the queue), it is usually more efficient to have a single Elasticsearch output.

Example:

output {  elasticsearch {    index => "%{[some_field][sub_field]}-%{+YYYY.MM.dd}"  }}

What to do in case there is no field in the event containing the destination index prefix?

You can use themutate filter and conditionals to add a [[@metadata](https://www.elastic.co/guide/en/logstash/current/event-dependent-configuration.html#metadata) field] to set the destination index for each event. The[@metadata] fields will not be sent to Elasticsearch.

Example:

filter {  if [log_type] in [ "test", "staging" ] {    mutate { add_field => { "[@metadata][target_index]" => "test-%{+YYYY.MM}" } }  } else if [log_type] == "production" {    mutate { add_field => { "[@metadata][target_index]" => "prod-%{+YYYY.MM.dd}" } }  } else {    mutate { add_field => { "[@metadata][target_index]" => "unknown-%{+YYYY}" } }  }}output {  elasticsearch {    index => "%{[@metadata][target_index]}"  }}

The retry policy has changed significantly in the 8.1.1 release. This plugin uses the Elasticsearch bulk API to optimize its imports into Elasticsearch. These requests may experience either partial or total failures. The bulk API sends batches of requests to an HTTP endpoint. Error codes for the HTTP request are handled differently than error codes for individual documents.

HTTP requests to the bulk API are expected to return a 200 response code. All other response codes are retried indefinitely.

The following document errors are handled as follows:

  • 400 and 404 errors are sent to the dead letter queue (DLQ), if enabled. If a DLQ is not enabled, a log message will be emitted, and the event will be dropped. SeeDLQ Policy for more info.
  • 409 errors (conflict) are logged as a warning and dropped.

Note that 409 exceptions are no longer retried. Please set a higherretry_on_conflict value if you experience 409 exceptions. It is more performant for Elasticsearch to retry these exceptions than this plugin.

Mapping (404) errors from Elasticsearch can lead to data loss. Unfortunately mapping errors cannot be handled without human intervention and without looking at the field that caused the mapping mismatch. If the DLQ is enabled, the original events causing the mapping errors are stored in a file that can be processed at a later time. Often times, the offending field can be removed and re-indexed to Elasticsearch. If the DLQ is not enabled, and a mapping error happens, the problem is logged as a warning, and the event is dropped. Seedead-letter-queue (DLQ) for more information about processing events in the DLQ. The list of error codes accepted for DLQ could be customized withdlq_custom_codes but should be used only in motivated cases.

Note
  • The Index lifecycle management (ILM) feature does not apply for Elasticsearch Serverless. Any ILM settings in your plugin configuration are ignored and may cause errors.
  • The ILM feature requires plugin version9.3.1 or higher.
  • This feature requires an Elasticsearch instance of 6.6.0 or higher with at least a Basic license

Logstash can useindex lifecycle management to automate the management of indices over time.

The use of index lifecycle management is controlled by theilm_enabled setting. By default, this setting detects whether the Elasticsearch instance supports ILM, and uses it if it is available.ilm_enabled can also be set totrue orfalse to override the automatic detection, or disable ILM.

This will overwrite the index settings and adjust the Logstash template to write the necessary settings for the template to support index lifecycle management, including the index policy and rollover alias to be used.

Logstash creates a rollover alias for the indices to be written to, including a pattern for how the actual indices will be named, and unless an ILM policy that already exists has been specified, a default policy will also be created. The default policy is configured to rollover an index when it reaches either 50 gigabytes in size, or is 30 days old, whichever happens first.

The default rollover alias is calledlogstash, with a default pattern for the rollover index of{now/d}-00001, which will name indices on the date that the index is rolled over, followed by an incrementing number. Note that the pattern must end with a dash and a number that will be incremented.

See theRollover API documentation for more details on naming.

The rollover alias, ilm pattern and policy can be modified.

See config below for an example:

output {  elasticsearch {    ilm_rollover_alias => "custom"    ilm_pattern => "000001"    ilm_policy => "custom_policy"  }}
Note
  • Custom ILM policies must already exist on the Elasticsearch cluster before they can be used.
  • If the rollover alias or pattern is modified, the index template will need to be overwritten as the settingsindex.lifecycle.name andindex.lifecycle.rollover_alias are automatically written to the template
  • If the index property is supplied in the output definition, it will be overwritten by the rollover alias.

This plugin attempts to send batches of events to theElasticsearch Bulk API as a single request. However, if a batch exceeds 20MB we break it up into multiple bulk requests. If a single document exceeds 20MB it is sent as a single request.

This plugin uses the JVM to lookup DNS entries and is subject to the value ofnetworkaddress.cache.ttl, a global setting for the JVM.

As an example, to set your DNS TTL to 1 second you would set theLS_JAVA_OPTS environment variable to-Dnetworkaddress.cache.ttl=1.

Keep in mind that a connection with keepalive enabled will not reevaluate its DNS value while the keepalive is in effect.

This plugin always reads compressed responses from Elasticsearch. By default, it sends compressed bulk requests to Elasticsearch.

If you are concerned about bandwidth, you can set a highercompression_level to trade CPU capacity for a reduction in network IO.

Authentication to a secure Elasticsearch cluster is possible using one of theuser/password,cloud_auth orapi_key options.

Authorization to a secure Elasticsearch cluster requiresread permission at index level andmonitoring permissions at cluster level. Themonitoring permission at cluster level is necessary to perform periodic connectivity checks.

This plugin transmits events to Elasticsearch using a JSON API, and therefore requires that all string values in events to be valid UTF-8. When a string value on an event contains one or more byte sequences that are not valid in UTF-8, each offending byte sequence is replaced with the UTF-8 replacement character (\uFFFD).

This plugin supports these configuration options plus theCommon options described later.

Note

As of version 12.0.0 of this plugin, a number of previously deprecated SSL settings have been removed. Please check outElasticsearch Output Obsolete Configuration Options for details.

SettingInput typeRequired
actionstringNo
api_keypasswordNo
bulk_pathstringNo
ca_trusted_fingerprintstringNo
cloud_authpasswordNo
cloud_idstringNo
compression_levelnumber, one of[0 ~ 9]No
custom_headershashNo
data_streamstring, one of["true", "false", "auto"]No
data_stream_auto_routingbooleanNo
data_stream_datasetstringNo
data_stream_namespacestringNo
data_stream_sync_fieldsbooleanNo
data_stream_typestringNo
dlq_custom_codesnumberNo
dlq_on_failed_indexname_interpolationbooleanNo
doc_as_upsertbooleanNo
document_idstringNo
document_typestringNo
ecs_compatibilitystringNo
failure_type_logging_whitelistarrayNo
healthcheck_pathstringNo
hostsuriNo
http_compressionbooleanNo
ilm_enabledstring, one of["true", "false", "auto"]No
ilm_patternstringNo
ilm_policystringNo
ilm_rollover_aliasstringNo
indexstringNo
silence_errors_in_logarrayNo
manage_templatebooleanNo
parametershashNo
parentstringNo
passwordpasswordNo
pathstringNo
pipelinestringNo
pool_maxnumberNo
pool_max_per_routenumberNo
proxyuriNo
resurrect_delaynumberNo
retry_initial_intervalnumberNo
retry_max_intervalnumberNo
retry_on_conflictnumberNo
routingstringNo
scriptstringNo
script_langstringNo
script_typestring, one of["inline", "indexed", "file"]No
script_var_namestringNo
scripted_upsertbooleanNo
sniffingbooleanNo
sniffing_delaynumberNo
sniffing_pathstringNo
ssl_certificatepathNo
ssl_certificate_authoritieslist ofpathNo
ssl_cipher_suiteslist ofstringNo
ssl_enabledbooleanNo
ssl_keypathNo
ssl_keystore_passwordpasswordNo
ssl_keystore_pathpathNo
ssl_keystore_typestringNo
ssl_supported_protocolsstringNo
ssl_truststore_passwordpasswordNo
ssl_truststore_pathpathNo
ssl_truststore_typestringNo
ssl_verification_modestring, one of["full", "none"]No
templatea valid filesystem pathNo
template_apistring, one of["auto", "legacy", "composable"]No
template_namestringNo
template_overwritebooleanNo
timeoutnumberNo
upsertstringNo
userstringNo
validate_after_inactivitynumberNo
versionstringNo
version_typestring, one of["internal", "external", "external_gt", "external_gte", "force"]No

Also seeCommon options for a list of options supported by all output plugins.

  • Value type isstring
  • Default value iscreate for data streams, andindex for non-time series data.

The Elasticsearch action to perform. Valid actions are:

  • index: indexes a document (an event from Logstash).
  • delete: deletes a document by id (An id is required for this action)
  • create: indexes a document, fails if a document by that id already exists in the index.
  • update: updates a document by id. Update has a special case where you can upsert—update a document if not already present. See thedoc_as_upsert option. NOTE: This does not work and is not supported in Elasticsearch 1.x. Please upgrade to ES 2.x or greater to use this feature with Logstash!
  • A sprintf style string to change the action based on the content of the event. The value%{[foo]} would use the foo field for the action. If resolved action is not in [index,delete,create,update], the event will not be sent to Elasticsearch. Instead the event will be sent to the pipeline’sdead-letter-queue (DLQ) (if enabled), or it will be logged and dropped.

For more details on actions, check out theElasticsearch bulk API documentation.

  • Value type ispassword
  • There is no default value for this setting.

Authenticate using Elasticsearch API key. Note that this option also requires SSL/TLS, which can be enabled by supplying acloud_id, a list of HTTPShosts, or by settingssl_enabled => true.

Format isid:api_key whereid andapi_key are as returned by the ElasticsearchCreate API key API.

  • Value type isstring
  • The default value for this settings is/_bulk?filter_path=errors,items.*.error,items.*.status

HTTP Path to perform the _bulk requests to * This default bulk path is the concatenation of the value ofpath parameter and/_bulk?filter_path=errors,items.*.error,items.*.status * Thefilter_path query parameter is appended to the bulk path to reduce the payload between logstash and elasticsearch. However, if a customfilter_path query parameter is included in thebulk_path setting, then that value will be used.

  • Value type isstring, and must contain exactly 64 hexadecimal characters.
  • There is no default value for this setting.
  • Use of this optionrequires Logstash 8.3+

The SHA-256 fingerprint of an SSL Certificate Authority to trust, such as the autogenerated self-signed CA for an Elasticsearch cluster.

  • Value type ispassword
  • There is no default value for this setting.

Cloud authentication string ("<username>:<password>" format) is an alternative for theuser/password pair.

For more details, check out theLogstash-to-Cloud documentation.

  • Value type isstring
  • There is no default value for this setting.

Cloud ID, from the Elastic Cloud web console. If sethosts should not be used.

For more details, check out theLogstash-to-Cloud documentation.

  • Value can be any of:0,1,2,3,4,5,6,7,8,9
  • Default value is1

The gzip compression level. Setting this value to0 disables compression. The compression level must be in the range of1 (best speed) to9 (best compression).

Increasing the compression level will reduce the network usage but will increase the CPU usage.

  • Value can be any of:true,false andauto
  • Default isfalse in Logstash 7.x andauto starting in Logstash 8.0.

Defines whether data will be indexed into an Elasticsearch data stream. The otherdata_stream_* settings will be used only if this setting is enabled.

Logstash handles the output as a data stream when the supplied configuration is compatible with data streams and this value is set toauto. Note thatECS compatibility must be enabled (set tov1 orv8) for data streams to work properly.

  • Value type isboolean
  • Default value istrue.

Automatically routes events by deriving the data stream name using specific event fields with the%{[data_stream][type]}-%{[data_stream][dataset]}-%{[data_stream][namespace]} format.

If enabled, thedata_stream.* event fields will take precedence over thedata_stream_type,data_stream_dataset, anddata_stream_namespace settings, but will fall back to them if any of the fields are missing from the event.

  • Value type isstring
  • Default value isgeneric.

The data stream dataset used to construct the data stream at index time.

  • Value type isstring
  • Default value isdefault.

The data stream namespace used to construct the data stream at index time.

  • Value type isboolean
  • Default value istrue

Automatically adds and syncs thedata_stream.* event fields if they are missing from the event. This ensures that fields match the name of the data stream that is receiving events.

Note

If existingdata_stream.* event fields do not match the data stream name anddata_stream_auto_routing is disabled, the event fields will be overwritten with a warning.

  • Value type isstring
  • Default value islogs.

The data stream type used to construct the data stream at index time. Currently, onlylogs,metrics,synthetics andtraces are supported.

  • Value type isnumber
  • Default value is[].

List single-action error codes from Elasticsearch’s Bulk API that are considered valid to move the events into the dead letter queue. This list is an addition to the ordinary error codes considered for this feature, 400 and 404. It’s considered a configuration error to re-use the same predefined codes for success, DLQ or conflict. The option accepts a list of natural numbers corresponding to HTTP errors codes.

  • Value type isboolean
  • Default value istrue.

If enabled, failed index name interpolation events go into dead letter queue.

  • Value type isboolean
  • Default value isfalse

Enabledoc_as_upsert for update mode. Create a new document with source ifdocument_id doesn’t exist in Elasticsearch.

  • Value type isstring
  • There is no default value for this setting.

The document ID for the index. Useful for overwriting existing entries in Elasticsearch with the same ID.

  • Value type isstring
  • There is no default value for this setting.
  • This option is deprecated
Note

This option is deprecated due to theremoval of types in Elasticsearch 6.0. It will be removed in the next major version of Logstash.

Note

This value is ignored and has no effect for Elasticsearch clusters8.x.

This sets the document type to write events to. Generally you should try to write only similar events to the sametype. String expansion%{{foo}} works here. If you don’t set a value for this option:

  • for elasticsearch clusters 8.x: no value will be used;
  • for elasticsearch clusters 7.x: the value of_doc will be used;
  • for elasticsearch clusters 6.x: the value ofdoc will be used;
  • for elasticsearch clusters 5.x and below: the event’stype field will be used, if the field is not present the value ofdoc will be used.
  • Value type isstring

  • Supported values are:

    • disabled: does not provide ECS-compatible templates
    • v1,v8: Elastic Common Schema-compliant behavior
  • Default value depends on which version of Logstash is running:

    • When Logstash provides apipeline.ecs_compatibility setting, its value is used as the default
    • Otherwise, the default value isdisabled.

Controls this plugin’s compatibility with theElastic Common Schema (ECS), including the installation of ECS-compatible index templates. The value of this setting affects thedefault values of:

  • Value type isarray
  • Default value is[]
Note

Deprecated, refer tosilence_errors_in_log.

  • Value type ishash
  • There is no default value for this setting.

Pass a set of key value pairs as the headers sent in each request to an elasticsearch node. The headers will be used for any kind of request (_bulk request, template installation, health checks and sniffing). These custom headers will be overidden by settings likecompression_level.

  • Value type isstring
  • There is no default value for this setting.

HTTP Path where a HEAD request is sent when a backend is marked down the request is sent in the background to see if it has come back again before it is once again eligible to service requests. If you have custom firewall rules you may need to change this

  • Value type isuri
  • Default value is[//127.0.0.1]

Sets the host(s) of the remote instance. If given an array it will load balance requests across the hosts specified in thehosts parameter. Remember thehttp protocol uses thehttp address (eg. 9200, not 9300).

Examples:

`"127.0.0.1"``["127.0.0.1:9200","127.0.0.2:9200"]``["http://127.0.0.1"]``["https://127.0.0.1:9200"]``["https://127.0.0.1:9200/mypath"]` (If using a proxy on a subpath)

Excludededicated master nodes from thehosts list to prevent Logstash from sending bulk requests to the master nodes. This parameter should reference only data or client nodes in Elasticsearch.

Any special characters present in the URLs here MUST be URL escaped! This means# should be put in as%23 for instance.

Deprecated in 11.17.0.
  • Value type isboolean
  • Default value isfalse

Settingtrue enables gzip compression level 1 on requests.

This setting allows you to reduce this plugin’s outbound network traffic by compressing each bulkrequest to Elasticsearch.

Note

This output plugin reads compressedresponses from Elasticsearch regardless of the value of this setting.

  • Value can be any of:true,false,auto
  • Default value isauto

The default setting ofauto will automatically enableIndex Lifecycle Management, if the Elasticsearch cluster is running Elasticsearch version7.0.0 or higher with the ILM feature enabled, and disable it otherwise.

Setting this flag tofalse will disable the Index Lifecycle Management feature, even if the Elasticsearch cluster supports ILM. Setting this flag totrue will enable Index Lifecycle Management feature, if the Elasticsearch cluster supports it. This is required to enable Index Lifecycle Management on a version of Elasticsearch earlier than version7.0.0.

Note

This feature requires a Basic License or above to be installed on an Elasticsearch cluster version 6.6.0 or later.

  • Value type isstring
  • Default value is{now/d}-000001

Pattern used for generating indices managed byIndex Lifecycle Management. The value specified in the pattern will be appended to the write alias, and incremented automatically when a new index is created by ILM.

Date Math can be used when specifying an ilm pattern, seeRollover API docs for details.

Note

Updating the pattern will require the index template to be rewritten.

Note

The pattern must finish with a dash and a number that will be automatically incremented when indices rollover.

Note

The pattern is a 6-digit string padded by zeros, regardless of prior index name. Example: 000001. SeeRollover path parameters API docs for details.

  • Value type isstring
  • Default value islogstash-policy

Modify this setting to use a custom Index Lifecycle Management policy, rather than the default. If this value is not set, the default policy will be automatically installed into Elasticsearch

Note

If this setting is specified, the policy must already exist in Elasticsearch cluster.

  • Value type isstring

  • Default value depends on whetherecs_compatibility is enabled:

    • ECS Compatibility disabled:logstash
    • ECS Compatibility enabled:ecs-logstash

The rollover alias is the alias where indices managed using Index Lifecycle Management will be written to.

Note

If bothindex andilm_rollover_alias are specified,ilm_rollover_alias takes precedence.

Note

Updating the rollover alias will require the index template to be rewritten.

Note

ilm_rollover_alias does NOT support dynamic variable substitution asindex does.

  • Value type isstring

  • Default value depends on whetherecs_compatibility is enabled:

    • ECS Compatibility disabled:"logstash-%{+yyyy.MM.dd}"
    • ECS Compatibility enabled:"ecs-logstash-%{+yyyy.MM.dd}"

The indexing target to write events to. Can point to anindex,alias, ordata stream. This can be dynamic using the%{{foo}} syntax. The default value will partition your indices by day so you can more easily delete old data or only search specific date ranges. Indexes may not contain uppercase characters. For weekly indexes ISO 8601 format is recommended, eg. logstash-%{+xxxx.ww}. Logstash usesJoda formats and the@timestamp field of each event is being used as source for the date.

  • Value type isboolean
  • Default value istrue for non-time series data, andfalse for data streams.

From Logstash 1.3 onwards, a template is applied to Elasticsearch during Logstash’s startup if one with the nametemplate_name does not already exist. By default, the contents of this template is the default template forlogstash-%{+YYYY.MM.dd} which always matches indices based on the patternlogstash-*. Should you require support for other index names, or would like to change the mappings in the template in general, a custom template can be specified by settingtemplate to the path of a template file.

Settingmanage_template to false disables this feature. If you require more control over template creation, (e.g. creating indices dynamically based on field names) you should setmanage_template to false and use the REST API to apply your templates manually.

  • Value type ishash
  • There is no default value for this setting.

Pass a set of key value pairs as the URL query string. This query string is added to every host listed in thehosts configuration. If thehosts list contains urls that already have query strings, the one specified here will be appended.

  • Value type isstring
  • Default value isnil

For child documents, ID of the associated parent. This can be dynamic using the%{{foo}} syntax.

  • Value type ispassword
  • There is no default value for this setting.

Password to authenticate to a secure Elasticsearch cluster

  • Value type isstring
  • There is no default value for this setting.

HTTP Path at which the Elasticsearch server lives. Use this if you must run Elasticsearch behind a proxy that remaps the root path for the Elasticsearch HTTP API lives. Note that if you use paths as components of URLs in thehosts field you may not also set this field. That will raise an error at startup

  • Value type isstring
  • There is no default value.

Set which ingest pipeline you wish to execute for an event. You can also use event dependent configuration here likepipeline => "%{[@metadata][pipeline]}". The pipeline parameter won’t be set if the value resolves to empty string ("").

  • Value type isnumber
  • Default value is1000

While the output tries to reuse connections efficiently we have a maximum. This sets the maximum number of open connections the output will create. Setting this too low may mean frequently closing / opening connections which is bad.

  • Value type isnumber
  • Default value is100

While the output tries to reuse connections efficiently we have a maximum per endpoint. This sets the maximum number of open connections per endpoint the output will create. Setting this too low may mean frequently closing / opening connections which is bad.

  • Value type isuri
  • There is no default value for this setting.

Set the address of a forward HTTP proxy. This setting accepts only URI arguments to prevent leaking credentials. An empty string is treated as if proxy was not set. This is useful when using environment variables e.g.proxy => '${LS_PROXY:}'.

  • Value type isnumber
  • Default value is5

How frequently, in seconds, to wait between resurrection attempts. Resurrection is the process by which backend endpoints markeddown are checked to see if they have come back to life

  • Value type isnumber
  • Default value is2

Set initial interval in seconds between bulk retries. Doubled on each retry up toretry_max_interval

  • Value type isnumber
  • Default value is64

Set max interval in seconds between bulk retries.

  • Value type isnumber
  • Default value is1

The number of times Elasticsearch should internally retry an update/upserted document.

  • Value type isstring
  • There is no default value for this setting.

A routing override to be applied to all processed events. This can be dynamic using the%{{foo}} syntax.

  • Value type isstring
  • Default value is""

Set script name for scripted update mode

Example:

output {  elasticsearch {    script => "ctx._source.message = params.event.get('message')"  }}
  • Value type isstring
  • Default value is"painless"

Set the language of the used script. When using indexed (stored) scripts on Elasticsearch 6.0 and higher, you must set this parameter to"" (empty string).

  • Value can be any of:inline,indexed,file
  • Default value is["inline"]

Define the type of script referenced by "script" variable inline : "script" contains inline script indexed : "script" contains the name of script directly indexed in elasticsearch file : "script" contains the name of script stored in elasticsearch’s config directory

  • Value type isstring
  • Default value is"event"

Set variable name passed to script (scripted update)

  • Value type isboolean
  • Default value isfalse

if enabled, script is in charge of creating non-existent document (scripted update)

  • Value type isarray
  • Default value is[]

Defines the list of Elasticsearch errors that you don’t want to log. A useful example is when you want to skip all 409 errors which areversion_conflict_engine_exception.

output {  elasticsearch {    silence_errors_in_log => ["version_conflict_engine_exception"]  }}
  • Value type isboolean
  • Default value isfalse

This setting asks Elasticsearch for the list of all cluster nodes and adds them to the hosts list. For Elasticsearch 5.x and 6.x any nodes withhttp.enabled (on by default) will be added to the hosts list, excluding master-only nodes.

  • Value type isnumber
  • Default value is5

How long to wait, in seconds, between sniffing attempts

  • Value type isstring
  • There is no default value for this setting.

HTTP Path to be used for the sniffing requests the default value is computed by concatenating the path value and "_nodes/http" if sniffing_path is set it will be used as an absolute path do not use full URL here, only paths, e.g. "/sniff/_nodes/http"

  • Value type ispath
  • There is no default value for this setting.

SSL certificate to use to authenticate the client. This certificate should be an OpenSSL-style X.509 certificate file.

Note

This setting can be used only ifssl_key is set.

  • Value type is a list ofpath
  • There is no default value for this setting

The .cer or .pem files to validate the server’s certificate.

Note

You cannot use this setting andssl_truststore_path at the same time.

  • Value type is a list ofstring
  • There is no default value for this setting

The list of cipher suites to use, listed by priorities. Supported cipher suites vary depending on the Java and protocol versions.

  • Value type isboolean
  • There is no default value for this setting.

Enable SSL/TLS secured communication to Elasticsearch cluster. Leaving this unspecified will use whatever scheme is specified in the URLs listed inhosts or extracted from thecloud_id. If no explicit protocol is specified plain HTTP will be used.

  • Value type ispath
  • There is no default value for this setting.

SSL key to use. This key must be in the PKCS8 format and PEM encoded. You can use theopenssl pkcs8 command to complete the conversion. For example, the command to convert a PEM encoded PKCS1 private key to a PEM encoded, non-encrypted PKCS8 key is:

openssl pkcs8 -inform PEM -in path/to/logstash.key -topk8 -nocrypt -outform PEM -out path/to/logstash.pkcs8.key
Note

This setting can be used only ifssl_certificate is set.

  • Value type ispassword
  • There is no default value for this setting.

Set the keystore password

  • Value type ispath
  • There is no default value for this setting.

The keystore used to present a certificate to the server. It can be either.jks or.p12

Note

You cannot use this setting andssl_certificate at the same time.

  • Value can be any of:jks,pkcs12
  • If not provided, the value will be inferred from the keystore filename.

The format of the keystore file. It must be eitherjks orpkcs12.

  • Value type isstring
  • Allowed values are:'TLSv1.1','TLSv1.2','TLSv1.3'
  • Default depends on the JDK being used. With up-to-date Logstash, the default is['TLSv1.2', 'TLSv1.3'].'TLSv1.1' is not considered secure and is only provided for legacy applications.

List of allowed SSL/TLS versions to use when establishing a connection to the Elasticsearch cluster.

For Java 8'TLSv1.3' is supported only since8u262 (AdoptOpenJDK), but requires that you set theLS_JAVA_OPTS="-Djdk.tls.client.protocols=TLSv1.3" system property in Logstash.

Note

If you configure the plugin to use'TLSv1.1' on any recent JVM, such as the one packaged with Logstash, the protocol is disabled by default and needs to be enabled manually by changingjdk.tls.disabledAlgorithms in the$JDK_HOME/conf/security/java.security configuration file. That is,TLSv1.1 needs to be removed from the list.

  • Value type ispassword
  • There is no default value for this setting.

Set the truststore password

  • Value type ispath
  • There is no default value for this setting.

The truststore to validate the server’s certificate. It can be either.jks or.p12.

Note

You cannot use this setting andssl_certificate_authorities at the same time.

  • Value can be any of:jks,pkcs12
  • If not provided, the value will be inferred from the truststore filename.

The format of the truststore file. It must be eitherjks orpkcs12.

  • Value can be any of:full,none
  • Default value isfull

Defines how to verify the certificates presented by another party in the TLS connection:

full validates that the server certificate has an issue date that’s within the not_before and not_after dates; chains to a trusted Certificate Authority (CA), and has a hostname or IP address that matches the names within the certificate.

none performs no certificate validation.

Warning

Setting certificate verification tonone disables many security benefits of SSL/TLS, which is very dangerous. For more information on disabling certificate verification please readhttps://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf

  • Value type ispath
  • There is no default value for this setting.

You can set the path to your own template here, if you so desire. If not set, the included template will be used.

  • Value can be any of:auto,legacy,composable
  • Default value isauto

The default setting ofauto will useindex template API to create index template, if the Elasticsearch cluster is running Elasticsearch version8.0.0 or higher, and uselegacy template API otherwise.

Setting this flag tolegacy will use legacy template API to create index template. Setting this flag tocomposable will use index template API to create index template.

Note

The format of template provided totemplate needs to match the template API being used.

  • Value type isstring

  • Default value depends on whetherecs_compatibility is enabled:

    • ECS Compatibility disabled:logstash
    • ECS Compatibility enabled:ecs-logstash

This configuration option defines how the template is named inside Elasticsearch. Note that if you have used the template management features and subsequently change this, you will need to prune the old template manually, e.g.

curl -XDELETE <http://localhost:9200/_template/OldTemplateName?pretty>

whereOldTemplateName is whatever the former setting was.

  • Value type isboolean
  • Default value isfalse

The template_overwrite option will always overwrite the indicated template in Elasticsearch with either the one indicated by template or the included one. This option is set to false by default. If you always want to stay up to date with the template provided by Logstash, this option could be very useful to you. Likewise, if you have your own template file managed by puppet, for example, and you wanted to be able to update it regularly, this option could help there as well.

Please note that if you are using your own customized version of the Logstash template (logstash), setting this to true will make Logstash to overwrite the "logstash" template (i.e. removing all customized settings)

  • Value type isnumber
  • Default value is60

Set the timeout, in seconds, for network operations and requests sent Elasticsearch. If a timeout occurs, the request will be retried.

  • Value type isstring
  • Default value is""

Set upsert content for update mode. Create a new document with this parameter as json string ifdocument_id doesn’t exists

  • Value type isstring
  • There is no default value for this setting.

Username to authenticate to a secure Elasticsearch cluster

  • Value type isnumber
  • Default value is10000

How long to wait before checking for a stale connection to determine if a keepalive request is needed. Consider setting this value lower than the default, possibly to 0, if you get connection errors regularly.

This client is based on Apache Commons. Here’s how theApache Commons documentation describes this option: "Defines period of inactivity in milliseconds after which persistent connections must be re-validated prior to being leased to the consumer. Non-positive value passed to this method disables connection validation. This check helps detect connections that have become stale (half-closed) while kept inactive in the pool."

  • Value type isstring
  • There is no default value for this setting.

The version to use for indexing. Use sprintf syntax like%{{my_version}} to use a field value here. See theversioning support blog for more information.

  • Value can be any of:internal,external,external_gt,external_gte,force
  • There is no default value for this setting.

The version_type to use for indexing. See theversioning support blog andVersion types in the Elasticsearch documentation.

Warning

As of version12.0.0 of this plugin, some configuration options have been replaced. The plugin will fail to start if it contains any of these obsolete options.

SettingReplaced by
cacertssl_certificate_authorities
keystoressl_keystore_path
keystore_passwordssl_keystore_password
sslssl_enabled
ssl_certificate_verificationssl_verification_mode
truststoressl_truststore_path
truststore_passwordssl_truststore_password

These configuration options are supported by all output plugins:

SettingInput typeRequired
enable_metricbooleanNo
idstringNo
  • Value type isboolean
  • Default value istrue

Disable or enable metric logging for this specific plugin instance. By default we record all the metrics we can, but you can disable metrics collection for a specific plugin.

  • Value type isstring
  • There is no default value for this setting.

Add a uniqueID to the plugin configuration. If no ID is specified, Logstash will generate one. It is strongly recommended to set this ID in your configuration. This is particularly useful when you have two or more plugins of the same type. For example, if you have 2 elasticsearch outputs. Adding a named ID in this case will help in monitoring Logstash when using the monitoring APIs.

output {  elasticsearch {    id => "my_plugin_id"  }}
Note

Variable substitution in theid field only supports environment variables and does not support the use of values from the secret store.

Welcome to the docs for thelatest Elastic product versions, including Elastic Stack 9.0 and Elastic Cloud Serverless.To view previous versions, go toelastic.co/guide.


[8]ページ先頭

©2009-2025 Movatter.jp