【问题标题】:Documents lost between Logstash and ElasticSearchLogstash 和 ElasticSearch 之间丢失的文档
【发布时间】:2016-01-11 18:26:41
【问题描述】:

我正在运行基本的 ELK 堆栈。所有三个组件都在 vm 中运行。 Logstash 正在 TCP 9140 上监听其通过 NxLog 代理从大约 30 个 Windows Server 2008 和 30 个 Windows Server 2003 事件 (evts) 接收的输入,并将其输出到 elasticsearch。

这已经完美运行了几个星期。我可以看到 ElasticSearch 每天都在创建索引,并且可以浏览文档、创建图表,一切都很好。

一个周末后,我意识到在周五晚上 9 点的某个时间点,所有新活动都停止了。 没有网络问题,所有服务器都在传送他们的日志 我所能看到的只是很多与 Watcher(弹性插件)相关的错误/警告,但没有什么有趣的。我什至可以看到自动创建与新一天的新索引相关的日志。

所以我删除了插件,重新启动了弹性,一切都很好。 我不认为这是真正的问题,我认为 elasticsearch 被挂断了。

我有两个问题:

1) 我应该如何解决这些情况。 (所有服务都已启动,没有文档被索引)?

2) 如果 Logstash 已启动并接受输入但 Elastic 已关闭,那么从我的 Windows 服务器发送的那些事件会发生什么情况?从 Nxlog 的角度来看,这些日志已正确发送到 logstash,没有理由重试,这些日志将“永远”丢失?

谢谢! 罗德里戈。

【问题讨论】:

    标签: elasticsearch logstash


    【解决方案1】:

    如果 ES 因任何原因(太忙 GC-ing 等)而关闭或挂起,则 logstash 将 retry a few times 然后放手,这意味着您将丢失这些事件。

    有很多方法可以缓解这种情况,但一个好的做法是durably store the events(在数据库或消息队列系统中)并仅在它们成功发送到 ES 时将它们弹出。此类消息系统包括Redis(使用列表或通道作为队列)、Apache Kafka(分布式日志)、Rabbitmq(分布式消息队列)等

    有很多方法可以将这些技术与 Logstash 一起配置,其中一个示例是 this one,它显示 Logstash 与 Kafka 一起使用。在您的情况下,这意味着 Nxlog ships its logs to kafka 而不是直接到 Logstash。然后是 Logstash consumes logs from a Kafka topic

    您的里程会有所不同,但这里的主要想法是您的日志不会丢失,以防它们无法发送到 Elasticsearch。这将回答您的第二个问题。

    至于您的第一个,我建议您安装其他 ES 插件,例如 bigdeskHQ 和/或官方的 Marvel plugin,它们都可以深入了解 Elasticsearch 中当前正在发生的事情。您将能够快速发现问题所在并采取行动。

    【讨论】:

    • "如果 ES 因任何原因(太忙 GC-ing 等)关闭或挂起,logstash 将重试几次然后放手,这意味着您将丢失这些事件。” ——这真的是真的吗?有一个重试队列,但我的印象是它仅用于特定文档的瞬时批量响应错误。对于您甚至没有得到批量响应的网络错误,我相信它会像几乎所有其他输出一样停止管道。
    • 当然,我并没有试图描述他的确切问题的原因,只是事情可能会而且会以某种方式出错。我永远不会依赖这种重试机制,当然,它只是一个内置功能,但这还远远不够。
    • 感谢您提供的所有信息!当我进行初步研究时,我遇到了几个 RELK 实例,他们说 redis 已经到位,因为性能改进非常快,但因为它必须位于堆栈的前面,并且 nxLog 没有 redis 的输出,所以它是不行... 意外地,我在logstash 的一个大的rubydebug 输出中备份了那些丢失的事件... 至于Marvel,它不是免费的,是吗?
    • 有没有机会使用a proxy,因为没有输出? Marvel 不是免费的,但其他两个对于初学者来说已经足够了。
    • mmm,所以从 nxlog 的角度来看,这看起来像一个 logstash,然后将其发送到 redis ...?但是现在我的 ELK 堆栈入口点将是那个 python 代理,对吧?
    猜你喜欢
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多