我们的网络设备遍布各处。我想做类似的事情:
池1 { 192.168.1.1-192.168.1.20, 192.168.1.50 } 池2 { 192.168.1.21-192.168.1.40, 192.168.1.66 }
如果从pool1执行此操作
如果来自pool2则执行
这样,我就可以让 Mac 的日志看起来像 Mac 日志,Linux 日志看起来像 Linux 日志,Cisco 日志看起来像 Cisco 日志等等。我只是无法通过 Google 搜索找到足够具体的内容。
答案1
答案2
这对我有用:
# accept logging for remote hosts on a per-ip-address basis
$template DirectoryPerHost,"/var/log/REMOTEHOSTS/%fromhost-ip%/%syslogfacility-text%.log"
if ( ( $fromhost-ip != "127.0.0.1" ) and ( $fromhost-ip != "::1" ) ) then {
?DirectoryPerHost
} else {
whatever you want to do with local log files here
}
您可以使用其他变量来代替 fromhost-ip - 有关详细信息,请参阅 Radu 链接的文档。
Radu 是正确的,你需要一个最新的 rsyslog 来完成此操作。
如果您被困在 RHEL6 或其重建版本中,您可以使用操作系统中的 rsyslog7 包来代替默认(旧)rsyslog。默认版本不支持此语法,但 v7 版本支持。