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的字段名称。

url编辑

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

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

通用选项编辑

以下配置选项受所有输出插件支持

设置 输入类型 必需

enable_metric

布尔值

id

字符串

enable_metric编辑

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

id编辑

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

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

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

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