首页 > 解决方案 > rsyslog 多行事件 java 堆栈跟踪发送到 tcp 侦听器

问题描述

所以,我有以下日志:

2018-09-13 10:29:25 ERROR [kafka-coordinator-heartbeat-thread | SDRVRF] o.a.k.common.network.SslTransportLayer Failed to send SSL Close message
java.io.IOException: Broken pipe
        at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
        at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
        at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
        at sun.nio.ch.IOUtil.write(IOUtil.java:65)
        at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
        at org.apache.kafka.common.network.SslTransportLayer.flush(SslTransportLayer.java:194)
        at org.apache.kafka.common.network.SslTransportLayer.close(SslTransportLayer.java:162)
        at org.apache.kafka.common.utils.Utils.closeAll(Utils.java:663)
        at org.apache.kafka.common.network.KafkaChannel.close(KafkaChannel.java:59)
        at org.apache.kafka.common.network.Selector.doClose(Selector.java:584)
        at org.apache.kafka.common.network.Selector.close(Selector.java:575)
        at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:404)
        at org.apache.kafka.common.network.Selector.poll(Selector.java:326)
        at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:433)
        at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:232)
        at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.pollNoWakeup(ConsumerNetworkClient.java:270)
        at org.apache.kafka.clients.consumer.internals.AbstractCoordinator$HeartbeatThread.run(AbstractCoordinator.java:931)
2018-09-13 10:29:25 WARN [kafka-coordinator-heartbeat-thread | SDRVRF] org.apache.kafka.clients.NetworkClient Connection to node 3 terminated during authentication. This may indicate that authentication failed due to invalid credentials.

当我尝试使用 rsyslog 将日志发送到 tcp 侦听器时,我有以下输出:

<133>0 2018-09-13T16:06:31.928986+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"] 2018-09-13 10:29:25 ERROR [kafka-coordinator-heartbeat-thread | SDRVRF] o.a.k.common.network.SslTransportLayer Failed to send SSL Close message
<133>0 2018-09-13T16:06:31.928992+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"] java.io.IOException: Broken pipe
<133>0 2018-09-13T16:06:31.928994+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
<133>0 2018-09-13T16:06:31.928995+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
<133>0 2018-09-13T16:06:31.928999+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
<133>0 2018-09-13T16:06:31.929000+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at sun.nio.ch.IOUtil.write(IOUtil.java:65)
<133>0 2018-09-13T16:06:31.929001+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
<133>0 2018-09-13T16:06:31.929003+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at org.apache.kafka.common.network.SslTransportLayer.flush(SslTransportLayer.java:194)
<133>0 2018-09-13T16:06:31.929004+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at org.apache.kafka.common.network.SslTransportLayer.close(SslTransportLayer.java:162)
<133>0 2018-09-13T16:06:31.929006+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at org.apache.kafka.common.utils.Utils.closeAll(Utils.java:663)
<133>0 2018-09-13T16:06:31.929009+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at org.apache.kafka.common.network.KafkaChannel.close(KafkaChannel.java:59)
<133>0 2018-09-13T16:06:31.929010+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at org.apache.kafka.common.network.Selector.doClose(Selector.java:584)
<133>0 2018-09-13T16:06:31.929012+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at org.apache.kafka.common.network.Selector.close(Selector.java:575)
<133>0 2018-09-13T16:06:31.929013+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:404)
<133>0 2018-09-13T16:06:31.929015+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at org.apache.kafka.common.network.Selector.poll(Selector.java:326)
<133>0 2018-09-13T16:06:31.929016+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:433)
<133>0 2018-09-13T16:06:31.929018+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:232)
<133>0 2018-09-13T16:06:31.929022+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.pollNoWakeup(ConsumerNetworkClient.java:270)
<133>0 2018-09-13T16:06:31.929024+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"]         at org.apache.kafka.clients.consumer.internals.AbstractCoordinator$HeartbeatThread.run(AbstractCoordinator.java:931)
<133>0 2018-09-13T16:06:31.929026+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"] 2018-09-13 10:29:25 WARN [kafka-coordinator-heartbeat-thread | SDRVRF] o.a.k.common.network.SslTransportLayer Failed to send SSL Close message

如您所见,它不会占用整个 java 堆栈跟踪,而是逐行读取文件。

我希望输出如下:

<133>0 2018-09-13T16:06:31.929024+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"] whole java stack trace

<133>0 2018-09-13T16:06:31.929024+02:00 server_ip nifi-app.log - - [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag="!tag.server_ip"] new java stack trace

etcetc

我有以下 rsyslog 配置:

$ModLoad imfile

#variables required for non-syslog log file forwarding – SystemErr
$InputFileName /var/opt/nifi-app_xxxxxxx.log
$InputFileTag nifi-app.log:
$InputFilestartmsg.regex="^[[:digit:]]{4}/[[:digit:]]{2}/[[:digit:]]{2} [[:digit:]]{1,2}:[[:digit:]]{1,2}:[[:digit:]]{1,2}"

$template NiFiFormatMessages,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msgid% [2ca55a90-1cce-4544-ac22-02544e7a7100@293 sourcetag=\"!tag.server_ip"] %msg%"

我也尝试过不同的场景,$InputFileReadMode但没有成功。

您能否告诉我如何配置 rsyslog 来处理 java 堆栈跟踪以便发送到 tcp 侦听器?

先感谢您!

标签: javaeventsstackmultilinersyslog

解决方案


推荐阅读