你混淆了语法:你用过 $ 代替 % 在许多情况下(有 %{...} )。而且, [ 必须对字符类外部进行转义以匹配文字 [ 符号。我也建议使用 DATA 代替 GREEDYDATA 随着 rulegroup 领域。
$
%
%{...}
[
DATA
GREEDYDATA
rulegroup
使用
OSSEC - RULEID: \"%{NUMBER:timestamp}\"; RULEID: \"%{NUMBER:ruleid}\"; RULELEVEL: \"%{NUMBER:rulelevel}\"; RULEGROUP: \"%{DATA:rulegroup}\"; RULECOMMENT: \"%{DATA:rulecomment}\"; DSTUSER: \"%{NOTSPACE:dstuser}\"; SRCIP: \"%{NOTSPACE:srcip}\"; HOSTNAME: \"%{NOTSPACE:hostname}\"; LOCATION: \"%{NOTSPACE:location}\"; EVENT: \"\[INIT\]%{DATA:event}\[END\]\";
此外,您可以用。替换所有空格 \s+ 如果空格可能不同,则简化匹配。
\s+