转换 Ingest 节点管道

编辑

在实现ingest 管道来解析您的数据后,您可能决定要利用 Logstash 中更丰富的转换功能。例如,如果您想执行以下操作,则可能需要使用 Logstash 而不是 ingest 管道:

  • 从更多输入源摄取数据。Logstash 可以原生从许多其他来源(如 TCP、UDP、syslog 和关系数据库)摄取数据。
  • 使用多个输出。Ingest 节点被设计为仅支持 Elasticsearch 作为输出,但您可能想要使用多个输出。例如,您可能希望将传入的数据存档到 S3,并在 Elasticsearch 中对其建立索引。
  • 利用 Logstash 中更丰富的转换功能,例如外部查找。
  • 使用持久队列功能来处理摄取数据时(来自 Beats 和其他来源)的峰值。

为了方便您迁移配置,Logstash 提供了一个 ingest 管道转换工具。该转换工具将 ingest 管道定义作为输入,并在可能的情况下,创建等效的 Logstash 配置作为输出。

有关工具限制的完整列表,请参阅限制

运行该工具

编辑

您将在 Logstash 安装的 bin 目录中找到该转换工具。请参阅Logstash 目录布局,以查找系统上 bin 的位置。

要运行该转换工具,请使用以下命令

bin/ingest-convert.sh --input INPUT_FILE_URI --output OUTPUT_FILE_URI [--append-stdio]

其中

  • INPUT_FILE_URI 是一个文件 URI,指定定义 ingest 节点管道的 JSON 文件的完整路径。
  • OUTPUT_FILE_URI 是该工具将生成的 Logstash DSL 文件的文件 URI。
  • --append-stdio 是一个可选标志,它将 stdin 和 stdout 部分添加到配置中,而不是添加默认的 Elasticsearch 输出。

此命令需要一个文件 URI,因此请确保使用正斜杠并指定文件的完整路径。

例如

bin/ingest-convert.sh --input file:///tmp/ingest/apache.json --output file:///tmp/ingest/apache.conf

限制

编辑
  • 不支持 Painless 脚本转换。
  • 只有一部分可用的处理器支持转换。对于不支持的处理器,该工具会生成警告并继续尽力进行转换。

支持的处理器

编辑

该工具目前支持转换以下 ingest 节点处理器:

  • Append (追加)
  • Convert (转换)
  • Date (日期)
  • GeoIP
  • Grok
  • Gsub
  • Json
  • Lowercase (小写)
  • Rename (重命名)
  • Set (设置)