执行输出插件

编辑

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

安装

编辑

对于默认未捆绑的插件,可以通过运行 bin/logstash-plugin install logstash-output-exec 轻松安装。有关更多详细信息,请参阅使用插件

获取帮助

编辑

有关插件的问题,请在讨论论坛中开设主题。对于错误或功能请求,请在Github中打开一个问题。有关 Elastic 支持的插件列表,请查阅Elastic 支持矩阵

描述

编辑

exec 输出将为接收到的每个事件运行一个命令。将使用 Ruby 的 system() 函数,即命令字符串将传递给 shell。您可以使用 %{name} 和命令中的其他动态字符串,将事件中的选定字段传递给子进程。例如:

    output {
      if [type] == "abuse" {
        exec {
          command => "iptables -A INPUT -s %{clientip} -j DROP"
        }
      }
    }

如果你想要非阻塞模式,你应该使用 &dtach 或其他类似的技术。正在运行的命令没有超时时间,因此行为不端的命令可能会无限期地阻止 Logstash 管道。

请格外小心使用 %{name} 字段占位符。字段的内容将逐字包含,不进行任何清理,即来自字段值的任何 shell 元字符将直接传递到 shell。

执行输出配置选项

编辑

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

设置 输入类型 必需

command

字符串

quiet

布尔值

另请参阅通用选项,以获取所有输出插件支持的选项列表。

 

command

编辑
  • 这是一个必需的设置。
  • 值类型是字符串
  • 此设置没有默认值。

通过子进程执行的命令行。使用 dtachscreen 使其非阻塞。此值可以包含 %{name} 和其他动态字符串。

quiet

编辑

在终端显示命令的结果

通用选项

编辑

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

设置 输入类型 必需

codec

codec

enable_metric

布尔值

id

字符串

codec

编辑
  • 值类型是codec
  • 默认值是"plain"

用于输出数据的编解码器。输出编解码器是一种方便的方法,可以在数据离开输出之前对其进行编码,而无需在 Logstash 管道中设置单独的过滤器。

enable_metric

编辑

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

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

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

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

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