Как я могу заставить Syslogging работать на JVM? - PullRequest
1 голос
/ 26 мая 2010

Я хочу сделать системный журнал с Java. Есть приложение log4j, но оно, похоже, не работает (для меня все равно ... хотя результаты Google показывают, что многие другие с этой проблемой все еще не решены).

Я пытаюсь отладить аппендер, поэтому я написал следующий скрипт на основе RFC3164

Запускается, но в системном журнале не отображается логирование.

// scala
import java.io._
import java.net._
val ds = new DatagramSocket()
val fullMsg = "<11>May 26 14:47:22 Hello World"
val packet = new DatagramPacket(fullMsg.getBytes("UTF-8"), fullMsg.length, 
  InetAddress.getLocalHost, 514)
ds send packet
ds.close

Я также пытался использовать / bin / nc, но он тоже не работает.

echo "<14>May 26 15:23:33 Hello world" > nc -u localhost 514

Команда Ubuntu / usr / bin / logger работает , однако.

logger -p user.info hello world
# logs: May 26 15:25:10 dsupport2 jem: hello world

Что я мог делать не так?

Редактировать

И nc, и scala генерируют следующий пакет:

jem@dsupport2:~/projects/log4j$ grep -A 10 514 out
xxx.xxx.xxx.xxx:37920(unknown) -> xxx.xxx.xxx.xxx:514(syslog)
Version: 4   Total Lenght: 63   TTL: 64
Packet Number: 4

---[ UDP Data ]------------------------------------------------------

<14>May 26 15:26:33 Hello world 22

Кажется, я не могу заставить / usr / bin / logger (тот, который работает) говорить удаленно. Я предполагаю, что вы должны настроить локальный системный журнал в качестве реле.

Редактировать

Используя nc, wireshark показывает сообщение, которое нужно отформатировать, ОК, но порт недоступен.

Ответы [ 3 ]

1 голос
/ 26 мая 2010

Необходимо явно указать сетевой брандмауэр в Ubuntu, чтобы разрешить трафик на данный порт, включая Syslog.

1 голос
/ 30 мая 2010

Syslogd, вероятно, не слушает сокет IP, а использует сокет домена unix. Стандартная розетка /dev/log. Вам нужно будет использовать библиотеку, такую ​​как JUDS , чтобы подключиться к этому сокету. Это даст OutputStream, в который вы можете записать запись журнала.

1 голос
/ 26 мая 2010

Вы пытались прослушать трафик локальной сети, чтобы увидеть, действительно ли отправляются сообщения журнала, кажутся ли они правильно сформированными и т. Д.? Вы можете использовать nast или что-то в этом роде.

...