【问题标题】:Its possible to use a logback appender to send logs to kafka/rabbit-mq and then to Logstash (Elastic stack)?是否可以使用 logback appender 将日志发送到 kafka/rabbit-mq,然后再发送到 Logstash(弹性堆栈)?
【发布时间】:2020-05-05 17:15:33
【问题描述】:

上下文

  • 云端微服务
  • 使用 Spring Boot 开发组件,logback.xml
  • 我们需要日志聚合

目前我可以通过 TCP 完成,但我认为这在 AWS 云中的可扩展性不够,我可以使用一些队列发送日志

微服务 > appender logback.xml > 队列 > Logstash > Elasticsearch

附加器


    <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】:

    您可以将 Logstash 配置为从消息队列中毫无问题地使用。

    目前,Logstash 有一些消息队列的输入,例如 KafkaRabbitMQRedis

    由于您使用的是 AWS,logstash 也有 AWS SQS 的输入。

    您可以检查official documentation中的所有logstash输入

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-27
      • 2022-01-12
      • 1970-01-01
      • 2019-02-28
      • 2021-08-04
      • 1970-01-01
      • 2017-05-08
      • 2022-01-14
      相关资源
      最近更新 更多