【发布时间】:2023-02-20 04:48:29
【问题描述】:
我的设备有系统日志消息。我正在使用 Rsyslog 并希望使用 REGEX 表达式从特定文件夹收集特定消息。
使用旧语法的配置按预期工作:
:msg, regex, "hostname0. %%01SHELL" /var/log/tel/hostname.log
...产生以下日志(示例):
Feb 1 17:41:18 hostname01 %%01SHELL/6/DISPLAY_CMDRECORD(s)[5461]: Recorded display command information. (Task=FW, Ip=**, VpnName=, User=_system_, AuthenticationMethod="Null", Command="display engine statistics system")
Feb 1 17:42:18 hostname02 %%01SHELL/6/DISPLAY_CMDRECORD(s)[5461]: Recorded display command information. (Task=FW, Ip=**, VpnName=, User=_system_, AuthenticationMethod="Null", Command="display engine statistics system")
我的新 RainerScript 语法模板不起作用:
template (name="HOST_SHELL" type="string" string="/var/log/tel/%$YEAR%-%$MONTH%-%$DAY%-HOST-SHELL.log")
if re_match($msg, 'hostname0. %%01SHELL')
then {action(type="omfile" dynaFile="HOST_SHELL")
stop
}
但是,什么也没有发生。也许有另一种方法可以解决问题,或者更正我的模板。
将来计划过滤:
hostname0. %%01ERRORS in folder /var/log/tel/%$YEAR%-%$MONTH%-%$DAY%-HOST-ERRORS.log
【问题讨论】: