![rsyslog 根据主机名排除日志](https://linux22.com/image/1502102/rsyslog%20%E6%A0%B9%E6%8D%AE%E4%B8%BB%E6%9C%BA%E5%90%8D%E6%8E%92%E9%99%A4%E6%97%A5%E5%BF%97.png)
我们已设置 rsyslog 服务器以将消息转发到我们的 Splunk 盒。但是,我们想消除一些噪音,因此我们设置了特定的程序来忽略。因此,基本上,如果日志是 dhcpd,则丢弃。转发其他所有内容。
if $programname != 'dhcpd' then @@0.0.0.0:514
有没有办法根据主机名中的单词排除某些主机名。例如:
hostname-ABC1.log <--- exclude
hostname2-ABC1.log <--- exclude
reghostname <---- keep and forward
版本 5.8.10
答案1
最好将日志导入 Splunk,然后让 UniversalFowarder 或 Indexer 删除您需要的内容。使用 Splunk 进行调整比修改 rsyslog 要容易得多。您可以使用 props 和 transforms 来执行此操作。
我会做的是使用正则表达式。
在你的 props.conf 中:
[source::udp:514]
TRANSFORMS-drop_hosts = drop_ABCHOSTS
在你的transforms.conf中:
[drop_ABCHOSTS]
SOURCE_KEY = Metadata:Host
REGEX = ABC1\.log
DEST_KEY = queue
FORMAT = nullQueue