【问题标题】:Spring boot Microservices logging with Graylog使用 Graylog 进行 Spring Boot 微服务日志记录
【发布时间】:2018-12-07 06:30:39
【问题描述】:

我想使用 Graylog/RabbitMQ 通过我的 Spring Boot 微服务进行日志记录。据我了解,我必须将日志发送到 RabbitMQ 并且必须将其与 Graylog 集成。我想知道工作流程以及如何实现它,例如如何将日志发送到 RabbitMQ,我是否需要使用任何其他日志记录框架。

【问题讨论】:

  • 你想要这两个吗?还是先将日志发送到 RabbitMQ,然后从那里消费?如果您有多个消费者,则应使用后者,graylog 就是其中之一。
  • @SukhpalSingh ...我可以直接将日志发送到 graylog 吗?我阅读了一些博客,发现我必须使用任何消息代理,如 Kafka 或 RabbitMQ,并将 graylog 与消息代理集成。如果我可以从我的 Spring Boot 应用程序将日志直接发送到 graylog,那对我来说很好。 Graylog 是唯一的一个消费者。你能解释一下工作流程吗?

标签: spring-boot graylog2


【解决方案1】:

您可以使用 Logback appender 从 spring-boot 应用程序发送日志。将以下依赖项添加到您的 pom.xml

<dependency>
    <groupId>de.siegmar</groupId>
    <artifactId>logback-gelf</artifactId>
    <version>1.1.0</version>
</dependency>

然后你需要在你的类路径中添加一个 logback 配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
        <graylogHost>localhost</graylogHost>
        <graylogPort>12201</graylogPort>
        <maxChunkSize>508</maxChunkSize>
        <useCompression>true</useCompression>
        <layout class="de.siegmar.logbackgelf.GelfLayout">
            <originHost>localhost</originHost>
            <includeRawMessage>false</includeRawMessage>
            <includeMarker>true</includeMarker>
            <includeMdcData>true</includeMdcData>
            <includeCallerData>false</includeCallerData>
            <includeRootCauseData>false</includeRootCauseData>
            <includeLevelName>false</includeLevelName>
            <shortPatternLayout class="ch.qos.logback.classic.PatternLayout">
                <pattern>%m%nopex</pattern>
            </shortPatternLayout>
            <fullPatternLayout class="ch.qos.logback.classic.PatternLayout">
                <pattern>%m</pattern>
            </fullPatternLayout>
            <staticField>app_name:backend</staticField>
            <staticField>os_arch:${os.arch}</staticField>
            <staticField>os_name:${os.name}</staticField>
            <staticField>os_version:${os.version}</staticField>
        </layout>
    </appender>

    <root level="debug">
        <appender-ref ref="GELF" />
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

欲了解更多信息:logback-gelf

【讨论】:

    猜你喜欢
    • 2017-12-20
    • 2019-02-09
    • 2014-10-30
    • 2017-10-09
    • 1970-01-01
    • 2023-04-04
    • 2015-02-08
    • 2021-06-26
    • 1970-01-01
    相关资源
    最近更新 更多