我使用以下输入配置运行logstash。
input {
tcp {
port => 5044
codec => json_lines
user => myuser
password => "$tr0ngP4ssWD!"
}
}
我有一个Spring启动服务,希望将日志发送到上面的logstash服务器。 Spring启动应用程序使用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部分here。 net.logstash.logback.appender.LogstashTcpSocketAppender
可能根本不支持基本身份验证。如果是这样的话,你可能必须自己编写自己的代码。