我目前有使用 local0 到 local7 设置的 syslog 配置文件,将特定设备分配给指向该设备的单独目录和文件的特定本地设施,例如:
*与 SYSLOG SERVER 相关的条目
*设备1
local1.=emerg /location/device1/00-emerg
local1.=警报/位置/设备1/01-警报
local1.=crit /location/device1/02-crit
*设备2
local2.=emerg /location/device2/00-emerg
local2.=alert /miramar/device2/01-alert
local2.=crit /miramar/device2/02-crit
问题是,这样只能指定 8 个设备,如何设置 syslog 以与 8 个以上的设备一起工作?
此致
答案1
除了使用 syslog 工具外,还可以考虑使用以下工具替换现有的 syslogd:系统日志工具。除其他功能外,它还允许您根据发送远程日志消息的主机地址来过滤远程日志消息。我们在 syslog 服务器上有一个简单的设置,可以执行此操作:
source remote_log { udp(ip(x.x.x.x) port(514)); };
destination remote { file("/var/log/remote/$HOST.log"); };
log { source(remote_log); destination(remote); };
这会导致每个主机的系统日志消息最终出现/var/log/remote
在以主机 IP 地址命名的文件中。如果您愿意,syslog-ng 可以让您获得比这更花哨的功能(例如,根据正则表达式匹配过滤单个消息),但这涵盖了您所询问的内容。
答案2
你可以将多个服务器记录到同一个本地#,但如果你想要单独的文件,你应该看看类似系统日志工具。