Назад | Перейти на главную страницу

(rsyslog) Пересылка только определенного журнала

Я пытался настроить rsyslog для пересылки / var / log / syslog на удаленный сервер. Я смог сделать это, используя конфигурацию ниже.

$InputFileName /var/log/secure $InputFileTag hostname-secure $InputFileStateFile hostname-secure $InputFileSeverity info $InputRunFileMonitor *.* @address:514

Это перенаправляет / var / log / secure, но на самом деле я получаю два журнала на удаленном сервере. Один тег помечен локальным хостом, а другой - именем хоста компьютера, который использует указанный выше тег FileTag.

Что мне нужно добавить или удалить, чтобы пересылать этот файл журнала на удаленный компьютер с неповрежденными FQDN и FileTag, не включая вторую копию с localhost?

Он появляется дважды, потому что вы отправляете его дважды.

"*. * @Address: 514" отправляет все что этот системный журнал (клиент) получает в качестве входных данных, что означает оба обычных журнала, полученных подсистемой системного журнала (т.е. прочитанные из / dev / log), и путем чтения / var / log / secure после того, как он был записан самим syslog.

Что вы, вероятно, захотите сделать, это добавить: $ InputFileFacility local0 (или какое-либо другое локально неиспользуемое средство localX), а затем изменить:

*. * @ адрес: 514

на local0. * @ адрес: 514

Затем это гарантирует, что вы перенаправляете только строки журнала @address, которые читаются из / var / log / secure, с дополнительным тегом, который вы хотите (при условии, что тег является важной вещью, которую вы действительно хотите видеть на удаленном сервере системного журнала. )

Если дополнительный тег не важен, вам просто не нужны директивы InputFile *, а нужна только пересылка (*. * @Address: 514). Если вы хотите быть избирательным, замените *. * Только журналами, которые вы хотите пересылать.