我正在尝试将基本javamaven项目的日志发送到远程机器上配置的fluent位。Fluent bit会将它们写入一个文件。这是我的基本java配置。
Java
private final static Logger logger = LoggerFactory.getLogger(App.class);
public static void main(String[] args) {
for (int i = 0; ; i++) {
logger.debug("Warn msg");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// do nothing now
}
}
}
以及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>
Fluent位配置:
td-agent-bit.conf文件
[INPUT]
Name tcp
Listen xx.xxx.xxx.xxx
Port 7777
Parsers_File /etc/td-agent-bit/parsers.conf
Parser custom_parser
[OUTPUT]
Name file
Match *
Path /home/td-agent-bit/output.txt
解析器.conf
[PARSER]
Name custom_parser
Format regex
Regex .*
[2018/09/27 08:29:13][trace][in\u tcp]read()=74 pre\u len=370 now\u len=444
[2018/09/27 08:29:13][debug][in \u serial]JSON消息无效,正在跳过
但是,当我尝试通过命令行测试配置时,它是有效的
echo '{"key 1": 10, "key 2": "YYY"}' | nc xx.xxx.xxx.xxx 7777
我没有得到任何异常,输出文件拥有所有权限。另外,远程机器是基于光子操作系统的系统。
任何想法都将不胜感激。