使用 syslog-ng 根据主机名定位日志文件

使用 syslog-ng 根据主机名定位日志文件

我正在为大量服务器使用 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 中分段主机名

相关内容