将Apache Storm Log4j2 syslog appender从UDP更改为TCP

将Apache Storm Log4j2 syslog appender从UDP更改为TCP,tcp,udp,log4j2,apache-storm,syslog,Tcp,Udp,Log4j2,Apache Storm,Syslog,在我的Storm拓扑中,我通过Kafka喷口将大量JSON数据传输到ElasticSearch bolt 问题在于,Apache Storm使用的Log4j2在其配置中对集群和工作者都使用UDP协议: Log4j2/Worker.xml: <Syslog name="syslog" format="RFC5424" charset="UTF-8" host="localhost" port="514" protocol="UDP" appName="[${sys:s

在我的Storm拓扑中,我通过Kafka喷口将大量JSON数据传输到ElasticSearch bolt

问题在于,Apache Storm使用的Log4j2在其配置中对
集群
工作者
都使用UDP协议:

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"/>

因此,我在提交拓扑时收到下一个错误:

错误:无法为appender syslog写入流UDP:localhost:514 org.apache.logging.log4j.core.appender.AppenderLoggingException:错误 正在刷新流UDP:localhost:514

这是因为消息的长度


我想知道是否有可能将Apache Storm Syslog appender的默认协议从UDP更改为TCP?

这与Storm没有多大关系,因为Storm只使用Log4j2支持的任何设置。我要看一看,特别是这里给出的TCP syslog appender示例

<Syslog name="RFC5424" format="RFC5424" host="localhost" port="8514"
            protocol="TCP" appName="MyApp" includeMDC="true"
            facility="LOCAL0" enterpriseNumber="18060" newLine="true"
            messageId="Audit" id="App"/>