![使用 syslog-ng 和 patterndb,如何指定“空”规则集模式?](https://linux22.com/image/575632/%E4%BD%BF%E7%94%A8%20syslog-ng%20%E5%92%8C%20patterndb%EF%BC%8C%E5%A6%82%E4%BD%95%E6%8C%87%E5%AE%9A%E2%80%9C%E7%A9%BA%E2%80%9D%E8%A7%84%E5%88%99%E9%9B%86%E6%A8%A1%E5%BC%8F%EF%BC%9F.png)
与我之前关于 syslog-ng 的 patterndb 的问题类似匹配空描述的模式,我现在尝试匹配“--MARK--”消息。这些消息如下所示:
-- MARK --
他们的 ${PROGRAM} 显然设置为 null/空白。我目前有以下规则集 XML,与消息不匹配:
<ruleset name='my-null' id='my-null'>
<pattern></pattern>
<rules>
<rule class='system' id='null_dashed_mark' provider='me'>
<description></description>
<patterns>
<pattern>-- MARK --</pattern>
</patterns>
<values>
</values>
<examples>
<example>
<test_message program="">-- MARK --</test_message>
<test_values>
</test_values>
</example>
</examples>
</rule>
</rules>
</ruleset>
我也尝试了 <pattern> 和 </pattern> 之间的各种换行符和空格组合,但无济于事。
那么我该如何构建我的规则集规范来匹配/捕获这些“MARK”消息呢?
答案1
省略<pattern>
规则集的元素,那么 syslog-ng 应该匹配该规则集中没有 PROGRAM 字段的消息的规则。
问候,
罗伯特