Mule Syslog 入站端点

Posted

技术标签:

【中文标题】Mule Syslog 入站端点【英文标题】:Mule Syslog Inbound-Endpoint 【发布时间】:2012-01-17 16:21:32 【问题描述】:

我正在尝试创建一个入站 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"/>

【问题讨论】:

有人知道吗?我很难相信任何类型的 ESB 都没有 SYSLOG 集成... 【参考方案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 代码。

【讨论】:

以上是关于Mule Syslog 入站端点的主要内容,如果未能解决你的问题,请参考以下文章

Mule 中的 ActiveMQ 负载均衡

Mule Anypoint 在消息上设置入站属性

syslog.syslog 与 SysLogHandler

如何在 syslog4j syslog 服务器中解析 syslog 消息

syslog-ng VS. rsyslog

如何将windows日志转成syslog格式