Elastic App Search 输出插件

编辑

Elastic App Search 输出插件

编辑

对于其他版本,请参见 版本化插件文档

获取帮助

编辑

有关插件的问题,请在 Discuss 论坛中发起主题。对于错误或功能请求,请在 Github 中提交问题。有关 Elastic 支持的插件列表,请参阅 Elastic 支持矩阵

描述

编辑

此输出允许您将事件发送到 Elastic App Search 解决方案,包括 自托管托管 服务。在从 Logstash 管道接收一批事件后,插件会将事件转换为文档,并使用 App Search 批量 API 在一个请求中索引多个事件。

App Search 不允许字段以 @timestamp 开头。默认情况下,@timestamp@version 字段将在事件发送到 App Search 之前从每个事件中删除。如果要保留 @timestamp 字段,则可以使用 timestamp_destination 选项将时间戳存储在其他字段中。

此 gem 不支持编解码器自定义。

AppSearch 输出配置选项

编辑

此插件支持以下配置选项以及稍后描述的 通用选项

另请参见 通用选项,了解所有输出插件支持的选项列表。

 

api_key

编辑
  • 值类型为 密码
  • 没有默认值

具有写入权限的私有 API 密钥。访问 App Search API 密钥参考 [页面](https://elastic.ac.cn/guide/en/app-search/current/authentication.html#authentication-api-keys) 以获取更多信息。

document_id

编辑

App Search 文档的 ID。这可以是插值值,例如 myapp-%{sequence_id}。重复使用 ID 将导致文档被重写。

engine

编辑

您在 App Search 中创建的搜索引擎的名称,一个包含已索引文档记录的信息存储库。 engine 字段支持 sprintf 格式,以允许从每个事件的字段值派生引擎名称,例如 engine-%{engine_name}

无效的引擎名称会导致摄取停止,直到字段值能够解析为有效的引擎名称。如果插值字段值解析为没有匹配引擎的值,或者如果事件中缺少字段并且根本无法解析,则可能会发生这种情况。

如果事件中缺少字段,请考虑在配置中添加“默认”引擎类型以捕获错误。

示例

input {
  stdin {
    codec => json
  }
}

filter {
  if ![engine_name] {
    mutate {
      add_field => {"engine_name" => "default"}
    }
  }
}

output {
  elastic_app_search {
    engine => "engine_%{[engine_name]}"
  }
}

ssl_certificate_authorities

编辑
  • 值类型为 路径 列表
  • 此设置没有默认值

用于验证服务器证书的 .cer 或 .pem 文件。

您不能同时使用此设置和 ssl_truststore_path

ssl_cipher_suites

编辑
  • 值类型为 字符串 列表
  • 此设置没有默认值

要使用的密码套件列表,按优先级列出。支持的密码套件因 Java 和协议版本而异。

ssl_supported_protocols

编辑
  • 值类型为 字符串
  • 允许的值为:'TLSv1.1''TLSv1.2''TLSv1.3'
  • 默认值取决于所使用的 JDK。对于最新的 Logstash,默认值为 ['TLSv1.2', 'TLSv1.3']'TLSv1.1' 不被认为是安全的,仅为旧版应用程序提供。

在建立与 Elasticsearch 集群的连接时要使用的允许的 SSL/TLS 版本列表。

对于 Java 8,'TLSv1.3' 仅从 8u262(AdoptOpenJDK)开始受支持,但要求您在 Logstash 中设置 LS_JAVA_OPTS="-Djdk.tls.client.protocols=TLSv1.3" 系统属性。

如果您将插件配置为在任何最新的 JVM(例如 Logstash 附带的 JVM)上使用 'TLSv1.1',则默认情况下该协议会被禁用,需要通过更改 $JDK_HOME/conf/security/java.security 配置文件中的 jdk.tls.disabledAlgorithms 来手动启用它。也就是说,需要从列表中删除 TLSv1.1

ssl_truststore_password

编辑
  • 值类型为 密码
  • 此设置没有默认值。

设置密钥库密码

ssl_truststore_path

编辑
  • 值类型为 路径
  • 此设置没有默认值。

用于验证服务器证书的密钥库。它可以是 .jks.p12

您不能同时使用此设置和 ssl_certificate_authorities

ssl_truststore_type

编辑
  • 值可以是以下任何一个:jkspkcs12
  • 如果未提供,则将从密钥库文件名推断该值。

密钥库文件的格式。它必须是 jkspkcs12

ssl_verification_mode

编辑
  • 值可以是以下任何一个:fullnone
  • 默认值为 full

定义如何在 TLS 连接中验证另一方提供的证书

full 验证服务器证书的发行日期是否在 not_before 和 not_after 日期范围内;链接到受信任的证书颁发机构 (CA),并且具有与证书内的名称匹配的主机名或 IP 地址。

none 不执行证书验证。

将证书验证设置为 none 会禁用 SSL/TLS 的许多安全优势,这非常危险。有关禁用证书验证的更多信息,请阅读 https://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf

timestamp_destination

编辑

@timestamp 字段的值移动到哪里。

所有 Logstash 事件都包含 @timestamp 字段。App Search 不支持以 @timestamp 开头的字段,默认情况下,@timestamp 字段将被删除。

要保留时间戳字段,请将此值设置为要复制 @timestamp 的字段的名称。

  • 值类型为 字符串
  • 默认值为 https://127.0.0.1:3002

API 端点的值,以 URL 的形式表示。

通用选项

编辑

所有输出插件都支持这些配置选项

设置 输入类型 必填

enable_metric

布尔值

ID

字符串

enable_metric

编辑

禁用或启用此特定插件实例的指标日志记录。默认情况下,我们会记录所有可以记录的指标,但您可以禁用特定插件的指标收集。

  • 值类型为 字符串
  • 此设置没有默认值。

向插件配置添加唯一的 ID。如果未指定 ID,Logstash 将生成一个。强烈建议在配置中设置此 ID。当您有两个或更多相同类型的插件时,这尤其有用。例如,如果您有两个 elastic_app_search 输出。在这种情况下,添加命名 ID 将有助于在使用监控 API 时监控 Logstash。

output {
  elastic_app_search {
    id => "my_plugin_id"
  }
}

id 字段中的变量替换仅支持环境变量,不支持使用密钥存储中的值。