我正在使用 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)"
在远程主机上,应该出现前两条消息,但不会出现最后一条消息。
您没有说应该应用什么样的过滤器,所以我选择了一个任意标准。