我正在将 (r)syslog 服务器配置为接收来自各种客户端的日志的远程服务器。
我想知道是否有更好的方法来动态生成多个文件名,而不是为任何需要动态创建文件名的 facility.priority 创建模板。
$template FILENAME,"/var/log/%fromhost-ip%/syslog.log"
kern.* ?FILENAME
除此之外,我是否必须明确告诉服务/守护程序使用 TCP 才能使用 (r)syslogd 通过 TCP 进行日志记录?例如,当我关闭服务器接收 UDP 数据包的能力时,它会停止记录任何内容。或者换句话说:
kern.* @loghost
不起作用。
答案1
从手册页:
To forward messages to another host via UDP, prepend the hostname with the at sign ("@"). To forward it via plain tcp, prepend two at signs ("@@").
因此,请像这样更改您的配置行:
kern.* @@loghost
并告诉 rsyslog 重新读取配置文件。