Какой сервис svlogd runit ожидает?

runit руководство указывает, что в конфигурации можно использовать опцию отправить журналы:

ua.b.c.d [: порт] говорит svlogd передавать первые len символы выбранных сообщений журнала к IP-адресу a.b.c.d, порту номера порта. Если порт не установлен, порт по умолчанию для системного журнала используется (514). len может быть установлен через-l опцию, видеть ниже. Если svlogd испытывает затруднения при отправке udp пакетов, это пишет сообщения об ошибках в каталог журнала. Внимание: вход через udp ненадежен, и должен использоваться в частных сетях только.

Я знаю это rsyslogd выполняет список на этом порте. Таким образом, это могло быть одним возможным вариантом...
Но есть ли кто-либо другой?

1
задан 14 November 2014 в 10:15
1 ответ

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

.
2
ответ дан 3 December 2019 в 21:10

Теги

Похожие вопросы