2012-01-17 24 views
3

リモートサーバーからSyslogメッセージを受信する受信Muleエンドポイントを作成しようとしています。メッセージは、UDPパケットを使用してポート514で受信されます。Mule Syslog Inbound-Endpoint

syslogパケットの組み込みのMuleサポートは見ていないので、実際のメッセージを受信するためにそのポートに単純なUDPコネクタを作成することでこれを処理しようとしました。しかし、エンドポイントを上げると、そのようなメッセージは受信されません(チェックするためにstdioにデータを出力しました)。 「通常の」UDPメッセージを送信すると、それらのエンドポイントにUDPメッセージが送信されます。また、syslogサーバーをインストールし、syslogメッセージが実際にホストコンピュータに受信されていることを確認しました。

私の質問は、どのようにsyslogメッセージを受信するようにそのエンドポイントを設定することができますか?今すぐこの簡単な設定で作業しています:

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

何も私は恐れていません。 – Menyh

+0

私は、どのタイプのESBでもSYSLOGの統合がないと信じるのは難しいと感じています... – Menyh

答えて

1

受信エンドポイントが正しいように見えます。そのエンドポイントが受信した各UDPパケットについて、ノーメッセージを受信する必要があります。メッセージのペイロードは、パケットの内容を含むバイト配列になります。それぞれを次の構文でダンプできます。

<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コードを記述(または呼び出し)する必要があります。