我正在为大量服务器使用 syslog-ng。为了让文件夹结构中的所有内容更加整齐,我在 syslog-ng.conf 中使用了几个带有正则表达式的过滤器以及多个目标和日志行
我想要实现的是让 syslog 根据主机名的各个部分决定将日志文件放在何处,并将其放入 1 个过滤器中,具有 1 个目标和日志行。
例子:
fl-app-dev-01 => /var/log/fl/dev/app01.log
fl-app-prd-32 => /var/log/fl/prd/app32.log
fl-man-prd-02 => /var/log/fl/prd/man02.log
am-app-prd-12 => /var/log/am/prd/app12.log
rd-app-dev-02 => /var/log/rd/dev/app02.log
如上例所示,所有服务器都采用相同的格式:{location}-{function}-{environment}-{number}
我想将它们拆分到位置,然后拆分到环境,并以功能和服务器编号命名日志文件。
答案1
为了实现这一点,您必须解析主机名并使用 csv 解析器将其拆分为单独的字段,然后在目标文件模板中将字段名用作宏。请参阅此处的第二个示例:在 syslog-ng 中分段主机名