1

Я использую переменные rsyslog для составления имен файлов журналов. Переменные% HOSTNAME% и% fromhost-ip%. Все в порядке, но вопрос: как я могу добавить / добавить эти переменные в каждую строку журнала для журналов, поступающих с удаленных хостов?

1 ответ1

2

Решением является использование пользовательских шаблонов rsyslog. Сначала вы создаете шаблон сообщения журнала. Следующий шаблон напоминает формат системного журнала по умолчанию, но с %fromhost-ip% вы можете добавить другие переменные таким же образом

$template tplremote,"%timegenerated% %HOSTNAME% %fromhost-ip% %syslogtag%%msg:::drop-last-lf%\n"

Затем мы создаем шаблон имени файла:

$template RemoteHost,"/var/log/remote/%HOSTNAME%.log"

И наконец, мы говорим rsyslog использовать созданные шаблоны:

if ($hostname != 'localhost') then ?RemoteHost;tplremote  
& ~

Обратите внимание, что последние строки должны быть добавлены непосредственно перед строкой, содержащей.

*.info;mail.none;authpriv.none;cron.none

Также обратите внимание, что это было проверено и работало в свежем rsyslog из репозитория epel на redhat (rsyslog-7.6.7-1.el6.x86_64). Поведение может отличаться в других дистрибутивах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .