我正在努力让Syslog工作。我正在使用Log4j 2.7 SyslogAppender (org.apache.logging.log4j.core.appender)
。我有本地syslog中继服务器侦听端口514(UDP)。所有本地syslog消息都转发到远程Syslog服务器。这一切都正常,直到我使用java.net.DatagramPacket
类发送syslog消息,该类直接在localhost的端口514上中继消息。
后来我决定使用SyslogAppender
并开始看到麻烦。下面是我的log4j属性文件,我在其中配置了我的Syslog记录器/ appender
appenders = rolling, SYSLOG
appender.SYSLOG.type = Syslog
appender.SYSLOG.name = Syslog
appender.SYSLOG.host = 127.0.0.1
appender.SYSLOG.port = 514
appender.SYSLOG.protocol = UDP
logger.syslog.name = root.syslog
logger.syslog.level = info
logger.syslog.additivity = false
logger.syslog.appenderRef = SYSLOG
我在我的Java类中使用此记录器,如下所示 -
private static final Logger myLogger = LoggerFactory.getLogger("root.syslog");
.
.
myLogger.info("My test message");
我已经在/etc/rsyslog.conf中设置如下(正如我提到的那样,到目前为止一切正常) -
$ModLoad imudp
$MaxMessageSize 64k
$UDPServerAddress 127.0.0.1
$UDPServerRun 514
我将tcpdump作为tcpdump -i lo port 514 -w local-syslog-appender.pcap
。但我没有看到任何消息被发送到此频道。在使用DatagramPacket java.net.DatagramPacket
之前,我已捕获此端口上的流量。但在转移到SyslogAppender
之后,什么都没有出现。 F1。
我不知道如何对这个appender进行故障排除以及如何使其工作。