在我的storm拓扑中,我通过kafka喷口将大量json数据传输到elasticsearch bolt。
问题是,apachestorm使用的log4j2在其配置中使用udp协议,用于 cluster
以及 worker
:
log4j2/worker.xml:
<Syslog name="syslog" format="RFC5424" charset="UTF-8" host="localhost" port="514"
protocol="UDP" appName="[${sys:storm.id}:${sys:worker.port}]" mdcId="mdc" includeMDC="true"
facility="LOCAL5" enterpriseNumber="18060" newLine="true" exceptionPattern="%rEx{full}"
messageId="[${sys:user.name}:${sys:logging.sensitivity}]" id="storm" immediateFail="true"
immediateFlush="true"/>
因此-我在提交拓扑时收到下一个错误:
错误:无法写入流udp:localhost:514对于appender syslog org.apache.logging.log4j.core.appender.appenderloggingexception:刷新流时出错udp:localhost:514
这是因为消息的长度。
我想知道是否有可能将apachestormsyslog appender的默认协议从udp更改为tcp?
1条答案
按热度按时间dwbf0jvd1#
这与storm没有太大关系,因为storm只使用log4j2支持的任何设置。我想看看https://logging.apache.org/log4j/2.x/manual/appenders.html#syslogappender,特别是这里给出的tcp syslog appender示例。