将Apache Storm Log4j2 syslog appender从UDP更改为TCP
在我的Storm拓扑中,我通过Kafka喷口将大量JSON数据传输到ElasticSearch bolt 问题在于,Apache Storm使用的Log4j2在其配置中对将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
集群
和工作者
都使用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"/>