用java实现Fluent位

用java实现Fluent位,java,logging,logback,photon-os,fluent-bit,Java,Logging,Logback,Photon Os,Fluent Bit,我正试图将一个基本JavaMaven项目的日志发送到远程机器上配置的fluent bit。然后,Fluent位将它们写入一个文件。这是我的基本java配置 爪哇 以及logback.xml <appender name="fluentd" class="ch.qos.logback.more.appenders.DataFluentAppender"> <remoteHost>xx.xxx.xxx.xxx</remote

我正试图将一个基本JavaMaven项目的日志发送到远程机器上配置的fluent bit。然后,Fluent位将它们写入一个文件。这是我的基本java配置

爪哇

以及logback.xml

<appender name="fluentd" class="ch.qos.logback.more.appenders.DataFluentAppender">
   <remoteHost>xx.xxx.xxx.xxx</remoteHost>
   <port>7777</port>
   <encoder>
            <pattern>%message%n</pattern>
    </encoder>
</appender>

<root level="DEBUG">
    <appender-ref ref="fluentd" />
</root>
parsers.conf

[PARSER]
    Name    custom_parser
    Format  regex
    Regex   .*
当应用程序运行时,我不断收到以下异常

[2018/09/27 08:29:13][trace][in_-tcp]read()=74 pre_-len=370 now_-len=444

[2018/09/27 08:29:13][debug][in_serial]无效的JSON消息,正在跳过

但是,当我尝试通过命令行测试配置时,它是有效的

echo '{"key 1": 10, "key 2": "YYY"}' | nc xx.xxx.xxx.xxx 7777
我没有得到任何异常,输出文件拥有所有权限。此外,远程机器是基于光子操作系统的系统


任何想法都将不胜感激。

因此,经过一些研究和我打开的罚单,我发现我使用了错误的插件

所有java配置都是正确的。只需对
td-agent bit.conf进行以下更改

[INPUT]
    Name          forward
    Listen        xx.xxx.xxx.xxx
    Port          7777
我们需要使用
forward
插件,而不是
tcp
插件。该插件将侦听7777端口上的任何传入消息,并将其重定向到该文件

注意,TCP输入插件只接受JSON映射作为记录,而不像转发协议那样接受msgpack

echo '{"key 1": 10, "key 2": "YYY"}' | nc xx.xxx.xxx.xxx 7777
[INPUT]
    Name          forward
    Listen        xx.xxx.xxx.xxx
    Port          7777