我目前正在尝试使用logback-logstash-encoder将我的日志写入两个不同的logstash实例。这两个实例都将写入同一个Elasticsearch实例。
我很难找到在两个logstash实例之间加载平衡的方法。
在阅读了logback文档和log4j2文档之后,它明确指出logback-logstash使用的TcpAppender不支持“负载均衡”#39;网址(即url1,url2)。在log4j2中,我可以使用FailoverAppender来估计这种行为。
logback中是否有类似的功能?或者我是否需要支持另一项服务以进行负载平衡以进行回溯?
答案 0 :(得分:0)
AFAIK在sqlite3
内不支持负载均衡。但是,您可以通过在logstash框前面添加硬件/软件负载平衡器来实现负载平衡。如果logstash进程/盒死亡,TCP连接将被重置,下一个日志事件应该导致重新建立连接。
此方法需要在您的设置中添加负载均衡器。您可以在TcpAppenders
中使用负载均衡器的地址。平衡器为您处理logstash的可用性。
这取决于你想要达到的目标。是不是丢失了任何日志事件?那么也许更好的方法是将日志写入文件并通过logstash-forwarder将文件推送到logstash框。如果您担心连接超时和应用程序速度变慢,那么可以选择TcpAppender
或使用UDP。
HTH,马克