在 logstash 中使用按位比较

Using bitwise comparation in logstash

如何使用 if 条件来检查按位是否存在? 我有一个 Flag 的枚举(在 c# 中),我想根据它的值在 logstash 中做不同的操作。

logstash 不直接支持按位条件。您可以使用 ruby 过滤器将枚举转换为字符串

ruby { code => 'flag = event.get("Flags"); if flag { event.set("[@metadata][flags]", flag.to_i.to_s(2)) }' }

然后使用 grok 将其分开 select 每个位,然后使用条件语句测试它们中的每一个。在 ruby.

do the whole thing 可能更容易