systemd logcheck规则不起作用

给出是这个logcheck规则:

^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ systemd-logind\[[[:digit:]]+\]: New session [[:digit:]]+ of user [^[:space:]]+\.$ 

和这个日志条目:

 Mar 19 09:16:09 horst kernel: [3257039.867032] <38>systemd-logind[193047]: New session 24987 of user icinga. 

这些似乎不匹配,不幸的是我找不到匹配(原文如此)的规则。 是的,这似乎是一个静态的数字。

<38>来自哪里

在RFC 3164中 ,标题4.1.1 PRI Part描述了<38>的function。 信息的function和严重程度结合成一个数字:

 facility * 8 + severity = 38 facility = 4 = "AUTH" severity = 6 = "INFO" 

这个数字通常在被写入文件之前被syslog守护进程剥离掉。

如何修正正则expression式

在这种情况下find问题的最好方法是将正则expression式与部分逐行比较。 你没有匹配kernel: [123.456]部分:

 ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ kernel: \[[[:digit:] .-]+\] <38>systemd-logind\[[[:digit:]]+\]: New session [[:digit:]]+ of user [^[:space:]]+\.$