RSYSLOG的正则表达式无论使用哪种表达式,始终没有匹配项
我在尝试使用rsyslog的正则表达式功能,但没有任何结果。
这里是一条示例日志行
May 19 08:52:14 - ansible-exploitation-6cbcf9cb87ty-j8cqw - local0.info - ansible message bla bla bla
我想要做的是:
我想用ansible-exploitation来为日志文件命名
ansible-exploitation只是一个示例。将会有大量的Pod实例向rsyslog Pod发送rsyslog消息。
我知道有更好的方案来获取Kubernetes的 Pod日志,但现在需要让这个方案跑起来
我显然先使用了rsyslog官方工具页(rsyslog.com/regex)
有用的rsyslog信息:
Version: 8.2512.0 aka 2025.12
PLATFORM: x86_64-alpine-linux
FEATURE_REGEXP: Yes
环境:
Kubernetes集群
当前的rsyslog模板
definition: (successfuly tested on rsyslog.com/regex)
template(name="SimpleFormat" type="string" string="%timegenerated% - %hostname:R,ERE,0,DFLT:\"[a-z]+-[a-z]+\"--end% - %pri-text% - %syslogtag% - %msg%\n")
$ActionFileDefaultTemplate SimpleFormat
$template dkct-rsyslog,"/var/preprod/logs/dkct-rsyslog-%HOSTNAME:R,ERE,0,DFLT:\"[a-z]+-[a-z]+\"--end%.log"
最后一次尝试,我使用 \".+\",但仍然得到 没有匹配 的结果
在此先感谢你可能提供的任何帮助。
解决方案
有人给了我解决方案:
去掉引号(因此不要相信官方的rsyslog工具)
下面是正确的语法:
template(name="SimpleFormat" type="string" string="%timegenerated% - %hostname:R,ERE,0,DFLT:[a-z]+-[a-z]+--end% - %pri-text% - %syslogtag% - %msg%\n")
$ActionFileDefaultTemplate SimpleFormat
$template dkct-rsyslog,"/var/preprod/logs/dkct-rsyslog-%HOSTNAME:R,ERE,0,DFLT:[a-z]+-[a-z]+--end%.log"
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。