Я пытаюсь настроить путь назначения 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.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);};

Когда я перезапускаю свой сервер syslog-ng, я получаю следующее сообщение:

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
Sarath Chandra Jiguru 17 Сен 2013 в 17:49

1 ответ

Лучший ответ

До сих пор я не могу создать сокет домена Unix для межпроцессного взаимодействия. Но у меня есть способ обойти это. Все, что мне нужно, - это односторонняя связь для отправки данных, созданных в 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.

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

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

0
Sarath Chandra Jiguru 23 Окт 2013 в 16:48
Я пытаюсь сделать что-то подобное. Использование локального системного журнала для IPC. Каким был этот опыт? Это все еще работает?
 – 
snegi
7 Апр 2014 в 07:35
Да, все работает нормально. Я использовал программу java для чтения из именованного канала и отправки сообщений журнала в разные темы kafka. Дайте мне знать и о своем опыте.
 – 
Sarath Chandra Jiguru
19 Апр 2014 в 11:36