可以使用logback appender将日志发送到kafkarabbit-mq,然后再发送到Logstash(弹性栈)吗?

问题描述 投票:0回答:1

语境

  • 云计算中的微服务
  • 使用Spring Boot、logback.xml开发的组件。
  • 我们需要日志聚合

目前我可以通过TCP来实现,但我认为这在AWS云中的扩展性不够。我可以用一些队列来发送日志吗??

Microservice > appender logback.xml > Queue > Logstash > Elasticsearch

Appender


    <appender name="STASH"
              class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>localhost:5000</destination>

        <encoder
                class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <mdc/>
                <context/>
                <logLevel/>
                <loggerName/>

                <pattern>
                    <pattern>
                        {
                        "serviceName": "clients-component",
                        "type": "business-capability"
                        }
                    </pattern>
                </pattern>

                <threadName/>
                <message/>
                <logstashMarkers/>
                <stackTrace/>
            </providers>
        </encoder>
    </appender>

logstash.conf

input { tcp { port => 5000 codec => "json" } } 

output { elasticsearch { hosts => ["localhost:9200"]} }
logstash elastic-stack elk spring-logback distributed-tracing
1个回答
0
投票

你可以配置Logstash从消息队列中消耗,没有任何问题。

目前,Logstash有一些消息队列的输入,如 卡夫卡, RabbitMQRedis.

因为你使用的是AWS,所以logstash也有输入的功能。AWS SQS.

您可以在下面的表格中检查所有的logstash输入。公文

© www.soinside.com 2019 - 2024. All rights reserved.