Создайте отдельный файл syslog для каждого хоста с помощью rsyslog

Создайте отдельный файл syslog для каждого хоста с помощью rsyslog

У меня есть сервер syslog (запускающий rsyslog на RHEL 7.4), который объединяет все syslog с моих сетевых устройств. Он прослушивает порт TCP/514.

Я хочу перенаправить журналы каждого устройства в другой файл в выделенном каталоге (на основе их IP-адреса), вместо того, чтобы помещать их все в /var/log/messages. Как это сделать?

решение1

Кажется, это задокументировано на веб-сайте rsyslog здесь: https://www.rsyslog.com/storing-and-forwarding-remote-messages

Обобщить :

Вам следует определить шаблон для файлов журнала, например:

# log every host in its own directory
$template RemoteHost,"/var/syslog/hosts/%HOSTNAME%/%$YEAR%/%$MONTH%/%$DAY%/syslog.log"

Затем примените этот шаблон к сообщениям, поступающим с удаленных хостов:

# Remote Logging
$RuleSet remote
*.* ?RemoteHost

Связанный контент