Как мы можем отслеживать сетевой трафик журналов, передаваемых через 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
,