elk日志查询常用语法

1、概述

很多系统的日志都会放在 Kibana 供查询,就是所谓的 ELK。Kibana 除了可以使用界面供的一些 tab 或者 button 去筛选日志,也可以在搜索栏中使用 Lucene 的语法简单的交互式查询。可以做基于字段的特定搜索,过滤数据,也可以查看索引号的文档。查询的语法可以参考 官方文档 非常易读,非常容易,包括正则语法和其他模糊匹配方法。

2、Lucene 语法查询

2.1、简易查询

如果查询的时候没有明确查询的字段,会默认为 _all 字段,也就是全文查询。也可以指定一个字段,又称为 field 来查询。

# 全文查询 Exception
Exception

# 指定查询字段 message 里的 Exception
message: Exception

# 查询短语
message: "java.lang.NullPointerException"

# 任何 message 字段都包含 Exception
message\*: Exception

# 通配符的使用,? 代替单个字符,* 代替零个或者多个字符
message: Exceptio*

# 正则表达式通过使用 / 包围,可以植入到查询的字符串中
message: /Ex?(cep[tion])/

# 另一个正则的使用,匹配的含义是「两位非abc的任意字符」
info.recallId: /[^abc]{2}/

2.2 多字段查询

可以通过一些布尔操作符来使用,如果查询中没有任意的操作符号,那么默认使用 OR 操作符。

# 支持 AND, OR, NOT,也可以写成&&, ||, !操作符
message: ((Exception AND Error) OR (Error AND Exception) OR Error) AND NOT Exception

# 包含 lucene 但不包含 elasticsearch
lucene NOT elasticsearch

# + 必须包含,其他可有可无,lucene 必须包含,apache 可有可无...
+lucene apache

# 不能出现的操作符号"-",包含了 lucence,但不包含 apache...
+lucene-apache

2.3 范围操作

可以指定日期、数字或者字符串字段的范围

# [min TO max] 是闭区间
# {min TO max} 是开区间
@timestamp: [1510536210000 TO 1510550000000]

# * 表示一端不限制范围
count:[10 TO *]

2.4 转义

保留字符包括以下,需要使用转义符来进行转义:

# 例子
message: "domain\=jobmd_ent4ent" 

# 转义符
+-=&&||><!(){}[]^"~*?:\/

2.5 模糊查询

使用字符以及一个紧随其后的整数值,当使用该修饰符修饰一个词项的时候,意味着我们想搜索那些包含该此项近词项的文档。字符后的整数值确定了近似词项与原始词项的最大编辑距离。

# mastering book Elasticsearch 也会被认为匹配
title: "mastering Elasticsearch"~2

2.6 全模糊查询

如果你什么也不清楚,只知道一些关键信息,可以直接搜

# 例子
"test"~
"test"
test
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joker.our

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值