Входящий-конечный пункт системного журнала Mule - PullRequest
3 голосов
/ 17 января 2012

Я пытаюсь создать входящую конечную точку Mule, которая будет получать сообщения Syslog от удаленного сервера. Сообщения принимаются через порт 514 с использованием пакетов UDP.

Поскольку я не видел встроенной поддержки Mule для пакетов syslog, я попытался начать с этого, создав простой UDP-коннектор на этом порту для получения реальных сообщений. Однако, когда я поднимаю конечную точку, я не вижу таких сообщений (передал данные в stdio для проверки). Когда я отправляю «нормальные» UDP-сообщения, они приходят на эту конечную точку. Кроме того, я установил сервер системного журнала и убедился, что сообщения системного журнала действительно принимаются на моем хост-компьютере.

Мой вопрос: как мне настроить конечную точку для получения сообщений системного журнала? Сейчас я работаю с этой простой конфигурацией:

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

1 Ответ

1 голос
/ 04 февраля 2012

Ваша входящая конечная точка выглядит правильно.Он должен получить сообщение об ошибке для каждого 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, вам нужно написать (или вызвать) некоторый код Java, который понимает формат пакета SYSLOG.

...