【问题标题】:Logstash Elasticsearch Input - runs once only?Logstash Elasticsearch Input - 只运行一次?
【发布时间】:2016-09-06 22:01:03
【问题描述】:

我正在尝试将一小部分数据从索引 A 复制到索引 B。

我在带有 Elasticsearch 输入、一些过滤器和 Elasticsearch 输出的 EC2 实例上运行了一个 Logstash 配置。

这在我第一次运行时运行良好,但如果将任何新数据添加到索引 A(满足输入的查询条件),Logstash 配置不会检测到它并将其输出到索引 B。

这让我想到,Elasticsearch 输入是否只运行一次?与文件或 S3 输入等输入不同,它们会拾取添加的新文件。

【问题讨论】:

    标签: elasticsearch amazon-ec2 logstash elasticsearch-plugin


    【解决方案1】:

    Logstash elasticsearch 输入插件使用可选查询进行单次搜索(通过扫描/滚动),完成后退出。

    你是对的,它的行为方式与 for file 输入插件不同,后者只会尾随一个或多个文件并即时处理新行。

    如果您需要一种在新文档与查询匹配时得到通知的方法,您可能需要研究Watcher 插件。 Watcher 可以很好地检测到与查询匹配的新文档的存在,然后调用 webhook,这可以通过 Logstash 中的http input plugin 实现。

    【讨论】:

    • 感谢您确认 Val,我会看看 Watcher。
    • 有趣的是,我花了几天时间才得到这个确认。我需要从弹性中读取,然后关联 2 行(与 id),然后提取这两行之间的经过时间。为此,我找到了一个名为 elapsed 的过滤器,但如果弹性输入执行单次运行显然将无法正常工作,因为下次我运行 logstash 它会忘记以前的值:/
    • 您可以使用elasticsearch 过滤器(而不是输入过滤器)进行查询+elapsed 过滤器来测量它们之间的时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 2011-12-13
    • 2017-10-17
    • 2013-11-13
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多