简体   繁体   English

Logback 使用 ssl 发送日志

[英]Logback send logs using ssl

I am trying to send logs via ssl to syslog-ng.我正在尝试通过 ssl 将日志发送到 syslog-ng。 The only appender I found in documentation that is capable of doing this is SSLSocketAppender .我在文档中找到的唯一能够执行此操作的附加程序是SSLSocketAppender According to documentation the message is wrapped by LoggingEvent object.根据文档,该消息由 LoggingEvent object 包装。

SocketAppender is designed to log to a remote entity by transmitting serialized ILoggingEvent instances over the wire" SocketAppender 旨在通过在线传输序列化的 ILoggingEvent 实例来记录到远程实体”

Now in syslog-ng I receive something like this:现在在 syslog-ng 我收到这样的信息:

Aug 26 14:50:33 10.230.91.71 ’
Aug 26 15:17:37 10.230.91.71 sr
Aug 26 15:17:37 10.230.91.71 )ch.qos.logback.classic.spi.LoggingEventVOZó€üě
Aug 26 15:17:37 10.230.91.71 H
Aug 26 15:17:37 10.230.91.71    J
Aug 26 15:17:37 10.230.91.71    timeStamp[
Aug 26 15:17:37 10.230.91.71 callerDataArrayt
......

How to make this work?如何使这项工作? I read that i can configure SSLServerSocketReceiver to receive messages.我读到我可以配置SSLServerSocketReceiver来接收消息。 I assume that this receiver will be capable of deserializing messages properly and pass them forward to syslog but it would require to create an application only for doing that.我假设这个接收器能够正确反序列化消息并将它们转发给 syslog,但它只需要为此创建一个应用程序。 Is there an easier way?有没有更简单的方法? I simply want to send logs to syslog using ssl.我只是想使用 ssl 将日志发送到 syslog。

I was also facing same issue, but instead of using SSLSocketAppender you can use logstash LogstashTcpSocketAppender to send logs to syslog-ng server.我也面临同样的问题,但是您可以使用 logstash LogstashTcpSocketAppender 将日志发送到 syslog-ng 服务器,而不是使用 SSLSocketAppender。

  1. use below dependency in your pom.在你的 pom.xml 中使用以下依赖项。
   <dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>7.2</version>
</dependency>
  1. use LogstashTcpSocketAppender of logstash in your logback.xml as shown below file.在 logback.xml 中使用 logstash 的 LogstashTcpSocketAppender,如下文件所示。
 <?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">

    <appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>ip_address:port</destination>

        <!-- encoder is required -->

        <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
        
        <ssl>
            <trustStore>
                <location>path of trust store</location>
                <password>your truststore password</password>
            </trustStore>
        </ssl>
    </appender>

    <root level="info">
     
        <appender-ref ref="stash"/>
    </root>
    <logger name="org.springframework" level="info"/>
</configuration>

For more info please visit: https://github.com/logfellow/logstash-logback-encoder#ssl欲了解更多信息,请访问: https://github.com/logfellow/logstash-logback-encoder#ssl

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM