将redis与logstash一起使用

时间:2014-04-10 15:28:40

标签: redis logstash nxlog

我想知道在基础设施中使用redis作为经纪人的利弊是什么?

目前,我的所有代理都发送到中央NXLog服务器,该服务器代理对logstash的请求 - > ES。

在我的nxlog收集器和logstash之间使用redis服务器可以获得什么?对我来说,似乎毫无意义,因为nxlog已经有好的mem和磁盘缓冲区,以防logstash崩溃。

我会获得什么?

谢谢

5 个答案:

答案 0 :(得分:1)

负载过重:直接调用ES(HTTP)可能很危险,如果ES发生故障,您可能会遇到问题。

Redis可以处理更多(更多)写请求并将其以异步逻辑发送到ES(HTTP)。

答案 1 :(得分:1)

我开始使用redis因为我觉得它会分离输入和过滤器部分。 至少在我更改配置的periodes期间。

如您所知,如果您更改了logstash配置,则必须重新启动该事物。所有客户端(在我的情况下都是通过syslog)注定要在重新开始业务时重新连接到logstash守护进程。

通过在前面放置一个索引器来保存相对静态的输入配置并将所有内容都重新设置为redis,我可以重新启动logstash而不会在整个数据中心内引起任何攻击。 我遇到了一些问题,因为我们的开发人员还没有时间(还)减少发送到syslog的无用日志数量,从而使服务器溢出。在我们进行logstash之前,它们会溢出磁盘空间以获取日志 - 尽管更常见的问题是......:)

答案 2 :(得分:0)

当与Logstash一起使用时,Redis充当消息队列。你可以有多个作家和多个读者。

通过使用Redis(或任何其他排队服务),您可以通过向“群集”添加更多服务器来扩展Logstash。这对于小型操作无关紧要,但对于大型安装非常有用。

答案 3 :(得分:0)

将Logstash与Redis一起使用时,可以将Redis配置为仅将所有日志条目存储在内存中,这些日志条目需要内存队列(如内存缓存)。

您已经达到了Logstash不会处理发送的日志数量的程度,它可以不断降低您的系统(在我们的环境中观察)。

如果您觉得Redis是磁盘的开销,您可以将其配置为将所有日志存储在内存中,直到logstash处理它们为止。

答案 4 :(得分:0)

在构建我们的ELK基础架构时,我们最初在logstash索引器上遇到了很多问题(从redis读取)。 Redis会支持并最终死亡。我相信这是因为,为了不丢失日志文件,redis被配置为偶尔将缓存持久保存到磁盘。当队列得到“太大”时#34; (但仍然在可用的磁盘空间内),redis会死掉,带上所有缓存的条目。

如果这是最好的redis可以做的,我不会推荐它。

幸运的是,我们能够解决索引器的问题,这通常会将redis队列保持为空。我们将监控设置为在队列备份时快速提醒,这是一个好的迹象,表明索引器再次不高兴。

希望有所帮助。