用java实现Fluent位
我正试图将一个基本JavaMaven项目的日志发送到远程机器上配置的fluent bit。然后,Fluent位将它们写入一个文件。这是我的基本java配置 爪哇 以及logback.xml用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
<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