runit руководство указывает, что в конфигурации можно использовать опцию отправить журналы:
ua.b.c.d [: порт] говорит svlogd передавать первые len символы выбранных сообщений журнала к IP-адресу a.b.c.d, порту номера порта. Если порт не установлен, порт по умолчанию для системного журнала используется (514). len может быть установлен через-l опцию, видеть ниже. Если svlogd испытывает затруднения при отправке udp пакетов, это пишет сообщения об ошибках в каталог журнала. Внимание: вход через udp ненадежен, и должен использоваться в частных сетях только.
Я знаю это rsyslogd
выполняет список на этом порте. Таким образом, это могло быть одним возможным вариантом...
Но есть ли кто-либо другой?
Вопрос немного расплывчатый, но судя по звучанию, я думаю, что вы спрашиваете, можете ли вы использовать svlogd
для отправки сообщений syslogd в другую программу, кроме rsyslogd
. Ответ: достаточно любой программы, которая предоставляла сервис syslog. Существует нечто большее, чем просто rsyslogd
, которая предоставляет сетевой сервис syslog.
Однако, способ, которым runit был задуман для "родной" обработки сообщений syslog, вероятно, обратный тому, о чем вы думаете.
Идея в том, что у вас есть какой-то сервис, и что этот сервис записывает вывод через stdout или stderr. Программа runv
вызовет svlogd
и проложит трубу между вашим сервисом и svlogd
; все, что ваш сервис должен сделать, это послать данные в stdout/stderr, svlogd будет записывать непосредственно на диск, и жизнь хороша. Так как труба обслуживается runv
, то в случае возникновения проблем со спуском сервиса выход все равно захватывается и передается в svlogd
- так в теории , вы не теряете данные записи в журнал из-за сбоя в работе службы.
Существует другая программа того же автора, socklog
, которая действует как фронт-енд syslog, который направляет воронку в svlogd
. Поскольку существует множество программ, которые просто предполагают, что /dev/log
доступен, socklog
предоставляет этот интерфейс, так что данные syslog могут быть перехвачены - он действует как служба замены syslog. Это полная противоположность тому, что вы предлагаете.
Я не говорю, что вы не должны использовать syslog, я просто говорю, что есть более чем один способ сделать это. Если вы действительно хотите зашунтировать ваш вывод из svlogd обратно в syslog, то да, любой старый сервис syslog подойдёт, но, возможно, стоит подумать о том, чтобы сделать "всё на своём месте" и бросить rsyslogd
вообще, если ваша установка разрешит это.