0

我目前正在尝试使用logback-logstash-encoder将我的日志写入两个不同的 logstash 实例。这两个实例都将写入同一个 Elasticsearch 实例。

我正在努力寻找一种在两个logstash 实例之间进行负载平衡的方法。

在阅读了 logback 文档和 log4j2 文档之后,很明显 logback-logstash 使用的 TcpAppender 不支持“负载平衡”url(即 url1、url2)。在 log4j2 中,我可以使用 FailoverAppender 来近似这种行为。

logback 中是否有类似的功能?或者我是否需要建立另一个服务来为 logback 进行负载平衡?

4

1 回答 1

0

AFAIK 中不支持负载平衡TcpAppenders。但是,您可以通过在 logstash 框前面添加硬件/软件负载平衡器来实现负载平衡。如果 logstash 进程/框死掉,TCP 连接会被重置,并且下一个日志事件应该会导致重新建立​​连接。

这种方法需要在您的设置中添加负载均衡器。您将在TcpAppender. 平衡器为您处理 logstash 的可用性。

这取决于您想要达到的目标。它不会丢失任何日志事件吗?那么也许更好的方法是将日志写入文件并通过logstash-forwarder将文件推送到您的logstash框。如果您担心连接超时和应用程序速度变慢,那么async-appender您可以选择使用 UDP 或使用 UDP。

HTH,马克

于 2015-05-27T12:04:05.117 回答