Я хочу отправить некоторые сообщения журнала на удаленный сервер журнала и изменить средство на них на настроенное значение, чтобы сервер журнала мог легче определить, что они пришли с моего оборудования. То есть, все журналы, выходящие с моей машины, относятся, скажем, к local3, независимо от их исходного объекта.
Могу ли я сделать это с помощью vanilla syslogd во FreeBSD или с помощью какой-либо другой реализации?
Очевидно, это невозможно сделать с помощью системного журнала FreeBSD. Я просмотрел справочную страницу в поисках подсказки и ничего не нашел.
В соответствии с эта веб-страница вы можете сделать это с помощью syslog-ng, но мы не можем переключиться.
Я думаю, вы пытаетесь сделать что-то странное. Вы можете легко сортировать сообщения в системном журнале в зависимости от имени хоста, с которого они пришли.
Видеть man syslog.conf
:
A hostname specification of the form #+hostname or +hostname means
the following blocks will be applied to messages received from the speci-
fied hostname. Alternatively, the hostname specification #-hostname or
-hostname causes the following blocks to be applied to messages from
any host but the one specified. If the hostname is given as @, the
local hostname will be used. As for program specifications, multiple
comma-separated values may be specified for hostname specifications.
Как выяснил сам Андрей, лучшим вариантом будет syslog-ng.
Но я думаю, что даже с ванильным syslogd FreeBSD может быть глупый способ сделать это. Кажется возможным передать записи журнала внешней программе: затем вы можете передать сообщения по конвейеру. logger
и установите желаемое средство и приоритет с ним и попросите регистратор отправить запись журнала на ваш сервер журнала.
logger, вероятно, добавляет свои собственные временные метки и т. д. к каждой записи журнала, поэтому вы можете захотеть sed
или каковы бы ни были исходные временные метки.
Да, я знаю, этот подход был бы чертовски уродливым и относится к категории «Не пробовать это где угодно», но все же он мощь работай.