【发布时间】:2019-02-18 00:22:40
【问题描述】:
我们的存档服务器正在获取由一些日志服务器发送的日志 - 这些日志服务器在他们转发到存档服务器的每条消息中写入自己的 IP。现在我想使用我的存档服务器的 rsyslog 配置从每个 Logmessage 中“剪切”他们的 IP 地址和“src@”。
例子:
192.168.0.12 是我的日志服务器之一 | Foo 是在其 DNS 名称中翻译的“真实”源 IP
错误 [8 月 23 日 10:00:01 192.168.0.12 src@Foo logdata logdata]
右 [8 月 23 日 10:00:01 Foo logdata logdata]
起初我认为我可以使用“FIELDS”和空格作为分隔符,但当我想删除 src@ 时,我想我也会删除我的真实 Source-IP 的 DNS-Name。如果可能的话,我很想使用 sed,但我不知道如何在我的 rsyslog.conf 中实现它
sed 's/\(192.168.0.12 @src\)//'
应该可以。
_________更新________
有一个看起来很有前途的功能,叫做“替换”,但我似乎根本无法让它工作。
if ( $fromhost-ip == '192.168.0.12' ) then {
replace($msg, "@src", " ")
-/var/log/foo.log
stop
}
消息是用 foo.log 编写的 - 但没有任何内容被替换
【问题讨论】: