Mule Syslog Inbound-Endpoint

时间:2012-01-17 16:21:32

标签: udp esb mule syslog

我正在尝试创建一个入站Mule端点,它将从远程服务器接收Syslog消息。使用UDP数据包在端口514上接收消息。

由于我没有看到内置的Mule支持syslog数据包,我试图通过在该端口上创建一个简单的UDP连接器来接收实际消息来开始处理。但是,当我提升端点时,我看不到收到这样的消息(将数据输出到stdio以便检查)。当我发送“正常”UDP消息时,它们会出现在该端点上。此外,我安装了一个系统日志服务器,并验证系统日志消息确实正在接收到我的主机。

我的问题是:如何设置该端点以接收系统日志消息?现在我正在使用这个简单的配置:

<udp:inbound-endpoint host="localhost" port="514" exchange-pattern="one-way"/>
<stdio:outbound-endpoint system="OUT"/>

1 个答案:

答案 0 :(得分:1)

您的入站端点看起来是正确的。它应该接收该端点接收的每个UDP数据包的mule消息。消息的有效负载将是包含数据包内容的字节数组。您可以使用以下语法转储每个语法:

<udp:inbound-endpoint host="localhost" port="514" exchange-pattern="one-way"/>
<logger level="WARN"/>  <!-- dumps the message metadata -->
<logger level="WARN" message="[#payload:]"/>  <!-- dumps the message payload-->

您将看到有效负载是一个字节数组。要将其作为SYSLOG消息处理,您需要编写(或调用)一些了解SYSLOG数据包格式的Java代码。