Logstash 以 Elasticsearch 批量 API 数据格式输出事件

Logstash to output events in Elasticsearch bulk API data format

是否可以让 Logstash 以 Elasticsearch 批量 API 数据格式输出事件?

想法是在很多机器上做一些繁重的解析(没有直接连接到 ES 节点),然后手动将数据馈送到 ES。

感谢您的帮助。

Logstash是single-line类型的系统,批量格式是multi-line格式。这里有两个想法:

1) 查看文件{} 输出 message_format 是否可以包含换行符。这将允许您输出元数据行,然后输出数据行。

2) 使用 logstash 的克隆{}来复制每个事件。在 "original" 事件中,使用带有 message_format 的 file{} 输出,它看起来像批量输出(索引、类型、id)的第一行。在克隆的副本中,默认文件{}输出可能有效(或使用具有您需要的确切格式的 message_format)。

也许如果您需要用您的值更改 Logstash 中的 flush_size

https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html#plugins-outputs-elasticsearch-flush_size

或者使用 json 编解码器发送文件中的元数据并直接在 elasticsearch 上加载 https://www.elastic.co/guide/en/logstash/current/plugins-outputs-file.html