2013-09-17 1 views
0

Я пытаюсь настроить путь назначения syslog-ng для использования сокетов unix-stream для взаимодействия между процессами. Я просмотрел эту документацию http://www.balabit.com/sites/default/files/documents/syslog-ng-ose-3.3-guides/en/syslog-ng-ose-v3.3-guide-admin-en/html/configuring_destinations_unixstream.html.syslog-ng с назначением unix-потока

Мой syslog.conf (только часть) для того же выглядят следующим образом:

source s_dxtcp { tcp(ip(0.0.0.0) port(514)); }; 
filter f_request {program("dxall");}; 

destination d_dxall_unixstream {unix-stream("/var/run/logs/all.log");}; 
log {source(s_dxtcp); filter(f_request); destination(d_dxall_unixstream);}; 

Когда я перезагрузить системный журнал-нг-сервер, я получил следующее сообщение:

Connection failed; fd='11', server='AF_UNIX(/var/run/logs/all.log)', 
local='AF_UNIX(anonymous)', error='Connection refused (111)' 
Initiating connection failed, reconnecting; time_reopen='60' 

Что означает эта ошибка? Как использовать unix-сокеты с syslog-ng? Может ли кто-нибудь помочь мне.

ответ

0

До сих пор я не могу создать Unix-домен Socket для взаимодействия между процессами. Но у меня есть способ обойти это. Все, что я хочу, это одностороннее сообщение для отправки данных, созданных в syslog-ng, в запущенную Java-программу (процесс, я могу сказать). Это я достиг с помощью Именованных каналов в Syslog-ng. Документы для достижения - http://www.balabit.com/sites/default/files/documents/syslog-ng-ose-3.4-guides/en/syslog-ng-ose-v3.4-guide-admin/html-single/index.html#configuring-destinations-pipe.

Чтение из именованной трубы такое же, как чтение из обычного файла. Важно отметить, что процесс чтения (здесь программа Java) должен быть запущен до Syslog-ng (Writer, который записывает сообщения журнала в канал Named).

Причина, Писатель будет блокироваться, пока не появится Reader. Отсутствие чтения приведет к потере некоторых сообщений, которые накопились до начала чтения. И должен быть только один экземпляр Reader. Если есть несколько считывателей, второй читатель получит исключение с нулевым указателем, так как сообщение, которое оно хочет прочитать, уже считывается первым Reader. Пожалуйста, обратите внимание, что это из моего опыта. Дай мне знать, если я ошибаюсь.

+0

Я пытаюсь сделать что-то подобное. Использование локального syslog для IPC. Как опыт был для вас? Он все еще работает? – snegi

+0

Да, его работая отлично. Я использовал программу java для чтения из именованного канала и отправляю сообщения журнала на разные темы кафки. Дайте мне знать опыт ура. –

Смежные вопросы