我需要使用fluent-bit解析日志文件中的特定消息,并将其发送到文件。所有消息都应该发送到stdout,并且每个包含特定字符串的消息都应该发送到一个文件。我已经用如下配置的过滤器做到了这一点
[SERVICE]
Flush 1
Log_Level info
[INPUT]
Name tail
Path inputfile.log
Tag test_tag
[FILTER]
Name rewrite_tag
Match test_tag
Rule $log (user_temporarily_disabled) from.$TAG.new true
Emitter_Name re_emitted
[OUTPUT]
Name stdout
Match test_tag
[OUTPUT]
Name file
Match from.*
File myoutput.log使用下面的配置,每当我向输入文件发送一行时,它都会转到标准输出,如果该行包含"user_temporarily_disabled“字符串,它就会转到文件。这是通过使用rewrite_tag过滤器重写标记来实现的。
我需要更多的是解析消息并将其重写为新的形式。我曾尝试添加一个解析器,但没有成功
发布于 2020-08-28 17:13:55
好的,我花了一段时间才找到的
[SERVICE]
Parsers_File parserFile.conf
[INPUT]
Name tail
Path inputfile.log
Tag inputtag
#first filter to redirect to parser
[FILTER]
Name parser
Match inputtag*
Key_Name log
Parser myparser
#second filter to rewrite tag after parser
[FILTER]
Name rewrite_tag
Match *
Rule $ALARMTEXT (user_temporarily_disabled) newtag true
Emitter_Name re_emitted
[OUTPUT]
Name file
Match newtag*
File output.log
[OUTPUT]
Name stdout
Match *解析器应该是这样的
[PARSER]
Name myparser
Format regex
Regex ^(?<INT>[^ ]+) (?<FLOAT>[^ ]+) (?<BOOL>[^ ]+) (?<ALARMTEXT>.+)$现在,如果我向输入文件发送类似这样的内容:
echo "111 0.1 true user_temporarily_disabled" >> inputfile.log它转到文件和输出。任何未解析的内容都只会被输出
https://stackoverflow.com/questions/63621898
复制相似问题