如何监控通过 rsyslog 传输的日志的网络流量

如何监控通过 rsyslog 传输的日志的网络流量

我正在使用 rsyslog 守护进程将客户端日志整合到 Ubuntu 中的中央服务器。在整合日志时,我如何才能看到从客户端到服务器传输的网络流量或文件大小?

在将日志传输到服务器之前,有什么方法可以从客户端机器进行过滤吗?

答案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 {…}

这只是过滤器的一个示例。您可能还有其他一些标准来选择应转发到集中日志记录主机的消息。

在这种情况下,只有写入日志工具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)"

在远程主机上,应该出现前两条消息,但不会出现最后一条消息。

您没有说应该应用什么样的过滤器,所以我选择了一个任意标准。

过滤条件雷纳脚本了解有关 可能的更多信息rsyslog

相关内容