spring-boot - 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 文档中没有关于安全性的内容。
任何指导将不胜感激。谢谢!
解决方案
我没有一个我知道有效的具体答案,但我可以想象您正在寻找的信息在此处的 SSH 部分下。net.logstash.logback.appender.LogstashTcpSocketAppender
可能根本不支持基本身份验证。如果是这种情况,您可能必须编写自己的 if appender。