0

当日志文件包含单个多行日志时,td-agent 无法从行发送日志。在添加新行之前,td-agent 不会获取日志

在 Windows 机器上安装了 td-agent。将 td-agent.conf 文件配置为从包含单个多行日志的文件中选择日志。在向文件添加新行之前,不会发送日志

td-agent.conf

<source>
    @type tail
    path "C:/abc.txt"
    pos_file etc/td-agent/pos/abc-file.pos
    tag abc-file-test
    multiline_flush_interval 5s
    format multiline
    <parse>
        @type multiline
        format_firstline /^2019*/
        format1 /^(?<message>.*)/
    </parse>
    read_from_head true
</source>

<filter abc-file-**>
    @type record_modifier
    <record>
        entity "abc"
        component ${tag}
        hostname "#{Socket.gethostname}"
    </record>
</filter>

<match abc-file-**>
    @type kafka_buffered
    brokers "localhost:9092"
    default_topic abc-topic
    flush_interval 5s
    kafka_agg_max_bytes 1000000
    max_send_limit_bytes 10000000
    discard_kafka_delivery_failed true
    output_data_type json
    compression_codec gzip
    max_send_retries 1
    required_acks 1
    get_kafka_client_log true
</match>

abc.txt 日志文件:

2019-04-12 12:09:45 INFO abc.java 异常发生在 com.****************** 在 com.*************** *********** 在 com.************************

日志应该流向kafka,但它没有

4

1 回答 1

0

这是 in_tail 插件的限制。使用带有参数的 fluent-plugin-concat怎么样?multiline_end_regexp

于 2019-04-19T05:26:06.180 回答