首页 > 解决方案 > Spring Boot 中的 Logback logstash 基本身份验证

问题描述

我使用以下输入配置运行 logstash。

input {
  tcp {
    port => 5044
    codec => json_lines
    user => myuser
    password => "$tr0ngP4ssWD!"
  }
}

我有一个 Spring 启动服务,它想将日志发送到上面的 logstash 服务器。Spring Boot 应用程序使用 net.logstash.logback 库进行日志记录,并将日志发送到 logstash。这是 logback 配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>xx.x.xx.xxx:5044</destination>
        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <mdc/> <!-- MDC variables on the Thread will be written as JSON fields-->
                <context/> <!--Outputs entries from logback's context -->
                <version/> <!-- Logstash json format version, the @version field in the output-->
                <logLevel/>
                <loggerName/>
                <pattern>
                    <pattern>
                        {


   <!-- we can add some custom fields to be sent with all the log entries.-->
                    <!--make filtering easier in Logstash-->
                    "appName": "elk-demo",
                    "appVersion": "1.0"
                    }
                </pattern>
            </pattern>
            <!--<threadName/>-->
            <message/>
            <logstashMarkers/> <!-- Useful so we can add extra information for specific log lines as Markers-->
            <arguments/> <!--or through StructuredArguments-->
            <stackTrace/>
        </providers>
    </encoder>
</appender>

<root level="INFO">
    <appender-ref ref="CONSOLE"/>
</root>

<logger name="org.springframework" level="INFO"/>

问题是我不确定将 logstash 凭据(用户和密码)放在 logback 配置文件中的哪个位置。net.logstash.logback 文档中没有关于安全性的内容。

任何指导将不胜感激。谢谢!

标签: spring-bootlogstashlogback

解决方案


我没有一个我知道有效的具体答案,但我可以想象您正在寻找的信息在此处的 SSH 部分下。net.logstash.logback.appender.LogstashTcpSocketAppender可能根本不支持基本身份验证。如果是这种情况,您可能必须编写自己的 if appender。


推荐阅读