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

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

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

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,

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