如何在Kibana过滤器中创建通配符非匹配规则
ELK 非匹配通配符过滤器快速实现方案
以下方案无需系统学习Elasticsearch相关知识,可直接修改字段后复用:
场景1:Kibana 页面(Discover/仪表盘)直接过滤
以排除Django相关日志为例,直接在Kibana顶部搜索框输入以下语法即可生效:NOT logger:django*
logger为存储日志来源的字段名,若需要排除消息内容中包含Django关键词的日志,可替换为message或你的集群实际对应的字段名*为通配符,可放在任意匹配位置,例如要排除所有结尾为.dev的日志,可写成NOT logger:*.dev
场景2:Logstash 采集阶段直接过滤(无需存入ES,节省存储资源)
直接在Logstash配置的filter模块添加以下规则,匹配到的日志会直接丢弃:
filter { # 匹配所有logger字段以django开头的日志 if [logger] =~ /^django.*/ { drop {} } }
- 字段名可根据实际需求修改,若要匹配message字段内容,改为
[message]即可
场景3:Elasticsearch 查询DSL 排除规则
若需要自行编写ES查询语句,可直接在bool查询的must_not块中添加wildcard规则:
{ "query": { "bool": { "must_not": [ { "wildcard": { "logger": "django*" } } ] } } }
内容的提问来源于stack exchange,提问作者EthanK
相关产品推荐
相关产品推荐

