Как мы можем отслеживать сетевой трафик журналов, передаваемых через rsyslog

Я собираю клиентские журналы на централизованном сервере в Ubuntu, используя rsyslog deamon. При консолидации журналов, , как я могу увидеть объем сетевого трафика или размер файла, передаваемого от клиента к серверу?

Есть ли способ фильтрации с клиента машина перед передачей журналов на сервер?

0
задан 15 November 2018 в 14:25

1 ответ

Пересылка только выбранных сообщений - это просто. Поместите файл с расширением *.conf в /etc/rsyslog.d. Назовите это, например. /etc/rsyslog.d/40-forwarder.conf чтобы он прочитал до значения по умолчанию (в 50-default.conf) или /etc/rsyslog.d/60-forwarder.conf, чтобы он прочитал после значения по умолчанию:

if ( ($programname == "my-binary") or ($syslogfacility-text == "local1") ) then {
    action(type="omfwd" target="my.syslog.server" port="514")
}

Это перенаправит все сообщения с заданными свойствами на хост my.syslog.server, порт UDP 514. Если вы поставите stop после action, то дальнейшая обработка этого сообщения не производится.

Это означает: если вы назовете файл 40-....conf и добавите stop:

if ( ($programname == "my-binary") or ($syslogfacility-text == "local1") ) then {
    action(type="omfwd" target="my.syslog.server" port="514")
    stop
}

, то действия по умолчанию для этих сообщений (например, запись их в /var/log/messages) не будут не имеют место.

Что касается вас, другой вопрос о сетевом трафике: на самом деле это другой вопрос, который должен быть опубликован отдельно.


Обновление

Условие

if ( ($programname == "my-binary") or 
     ($syslogfacility-text == "local1") ) then {…}

является просто примером для фильтра. Вероятно, у вас есть некоторые другие критерии для выбора сообщений, которые следует пересылать на хост централизованного ведения журналов.

В этом случае будут пересылаться только те сообщения журнала, которые были записаны в logfacility local1 или были выпущены какой-либо программой под названием my-binary. Все остальные не могли. Вы можете проверить фильтр с помощью logger (переключатель -t имитирует название программы):

logger -t my-binary    -plocal4.info "This is forwarded ($RANDOM)"
logger -t other-binary -plocal1.info "This is forwarded ($RANDOM)"
logger -t other-binary -plocal4.info "This is NOT forwarded ($RANDOM)"

На удаленном хосте должны появиться первые два сообщения, но не последнее.

Вы не сказали, какой тип фильтра должен применяться, поэтому я выбрал произвольный критерий.

См. Условия фильтрации и RainerScript для получения дополнительной информации о том, что возможно с rsyslog.

0
ответ дан 15 November 2018 в 14:25

Другие вопросы по тегам:

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