因此,我使用标准的ELK堆栈来分析Apache访问日志,效果很好,但是我希望使用KV过滤器将URL参数作为字段进行分解,以允许我编写更好的查询。
我的问题是,我正在分析的应用程序具有“缓存清除”动态生成的参数,这导致成千上万个“字段”,每个字段仅发生一次。ElasticSearch似乎对此有严重的麻烦,它们对我没有任何价值,因此我想删除它们。以下是模式的示例
GET /page?rand123PQY=ABC&other_var=something GET /page?rand987ZDQ=DEF&other_var=something
在上面的示例中,我要删除的参数以“ rand”开头。目前,我的logstash.conf使用grok从访问日志中提取字段,然后使用kv提取查询字符串参数:
filter { grok { path => "/var/log/apache/access.log" type => "apache-access" } kv { field_split => "&?" } }
有什么办法可以过滤出与模式匹配的任何字段rand[A-Z0-9]*=[A-Z0-9]*
?我见过的大多数示例都是按准确的名称定位字段,而我无法使用。我确实想知道将请求字段重新表达为一个新字段,然后在该字段上运行KV,然后将其删除。那行得通吗?
如果字段集,你的 _是_感兴趣的是已知的和明确的,你可以设置target
为KV过滤器,用移动有趣的领域,以邮件的顶层发生变异过滤器,并与套叠的键/值对删除字段。我认为这几乎是您最后的建议。
另外,您可以使用ruby过滤器:
filter {
ruby {
code => "
event.to_hash.keys.each { |k|
if k.start_with?('rand')
event.remove(k)
end
}
"
}
}
问题内容: 通常,我得到键集,然后使用外观删除每个键/值对。 是否可以仅通过模式删除所有键? 即: 问题答案: 对于Jedis而言,“按模式删除”似乎基本上是在获取特定模式的所有键,然后在其中循环遍历。 即
我正在努力删除字符串中下划线前的子字符串。我想使用*(通配符)作为下划线可以变化之前的位: 结果应该是: 我也尝试过类似“^*”或“?”之类的东西但并没有真正奏效。
我正在用C#WPF做一个项目,它包含在一个客户机管理中,在那里我添加了新的客户机,在一个txt文档中有save,我有一个listview,在那里我可以看到所有添加的客户机,但现在我想实现一个delete按钮,在那里我从listview中选择一个客户机,并可以删除它。如果我现在做的正确,如果有人能帮我…,…谢谢。
我有一个表格,每一行都有数据填充和相应的删除按钮。 HTML代码: 当我想要从模式中删除一行时,单击该行中的删除按钮(模式)会调用该行。我使用函数“onDelete(emp.id)”在点击时调用一个模式 Typescriptcode:这里它正确地选择了我想要删除的行id 从模态按钮,我试图通过调用按钮上的函数来删除单击“delete员工(emp.id)”Typecriptcode:这里我无法通过选
我正在使用ListSelectionListener从所选行更新我的JTextField(countryTxt)。 但是,当我选择一行并单击按钮时,它会弹出一个异常。当我没有在表格中选择一行并单击按钮时,一切正常。显然,我可以在未触发事件时删除一行。因此,我的问题是:如何在触发事件后删除一行。提前谢谢。
我想在命令行上这样做,所以像这样的事情会很好: 上面的方法当然不适合散列。所以最后我需要打电话 以自动化的方式。