[转帖]Kibana查询语言(KQL)

kibana,查询语言,kql · 浏览次数 : 0

小编点评

**EKL KQL教程** **一.前言** ELK是用来收集、存储和提供日志数据的组合工具。本文将简述KQL的基本语法,介绍如何使用KQL查询数据库。 **二.KQL简介** KQL是Kibana的查询语言,用于在Kibana中进行搜索和过滤。 **三.索引匹配查询** 在进行搜索时,建议使用指定索引查询,以提高效率。例如,搜索response值为200的文档对象,可以使用response:200。 **四.示例** 以下是一些KQL查询实例: - **response:200**:查询response字段包含200的文档对象。 - **message:\"hello world yes\"**:查询message字段包含"hello world yes"的文档对象。 - **name:jane or addr:beijing**:查询name或addr字段包含"jane"的文档对象。 **五.总结** KQL是一种简单的查询语言,可用于在Kibana中进行高效的搜索。

正文

 

 

一.前言

  如今大多数的公司都会使用ELK组合来对日志数据的收集、存储和提供查询服务,这里就不介绍什么是ELK了,只介绍一些EKL中的查询,也就是K(kibana)。html

  查询数据库,若是是MySQL,那么就须要使用MySQL的语法;一样的,在Kibana上查询数据,也须要使用Kibana的语法,而Kibana的查询语法叫作Kibana Query Language,简称KQL。java

  本文的内容主要来自ES的官网,简单翻译了一下,https://www.elastic.co/guide/en/kibana/7.7/kuery-query.html数据库

  原文连接:http://www.noobyard.com/article/p-kuomtldu-nz.htmlide

 

二.KQL简单介绍

  KQL(Kibana Query Language),也就是在Kibana上面进行查询时使用的语法。ui

  Kibana中也可使用Lucene的查询语法,可是这里就不介绍了,能够参考https://www.elastic.co/guide/en/kibana/7.7/lucene-query.html翻译

 

三.使用索引匹配查询

  在Kibana中进行查询的时候,建议使用指定索引查询,这样的效率更高,而不建议使用全局查找的方式。日志

  好比查找response为200的日志,那么就写为response:200,这样去查找中response值为200的文档对象;htm

  若是没有指定response为200,那么只是单纯的查找200,那么可能会返回金额为200的文档对象(假设有金额字段),查询的效率不高,同时也会返回一些不须要的数据; 对象

 

四.Kibana查询语法

实例1

response:200

  上面这个表达式,会查询出response字段中包含200的文档对象,注意是包含,包含的是200这一个词,好比下面几种状况都会被查询出来blog

200
hello world 200
hello 200 world

  须要注意的是1200或者2001,是不能被查出来的。

 

实例2

message:"hello world yes"

  上面这个表达式,是针对message字段进行搜索,在搜索的时候不会区分大小写,也就是说,Hello world YES也是会被搜索出来的;

  须要注意,上面的"hello world yes"使用了引号,这样的话,这3个单词会被做为一个词进行查询,不会再进行分词,也就是说匹配的时候只会匹配hello world yes这样的顺序匹配,而不会匹配出helllo yes world;

 

实例3

message:hello world

  上面这个表达式,针对message字段进行搜索,搜索message中包含hello,或者包含world,或者二者都包含的状况;

  须要注意的是,不区分大小写,也不会保证顺序,也就是说,下面几种状况都会被匹配

hello
world
Hello
World
hello world
Hello world
hello yes World
yes world
world yes

  

实例4

name:jane or addr:beijing

  上面这个查询条件,会查询name字段包含jane,或者addr字段包含beijing的记录,或者二者都匹配;

  须要注意的是,or表示“或”,不区分大小写;

 

实例5

name:jane and addr:beijing

  上面这个条件,会查询name字段包含jane,且addr字段包含beijing的记录。

 

实例6

name:jane and addr:beijing or job:teacher

  上面这个查询条件中,出现了and和or,须要记住的是,KQL中,and的优先级高于or;

  因此上面的查询条件,会查询name包含jane,且addr包含beijing的记录,或者job包含teacher的记录,可使用括号来让上面的查询条件更好理解:

(name:jane and addr:beijing) or job:teacher

 

实例7

name:jane and (addr:beijing or job:teacher)

  上面这个表达式,主要是想代表,可使用括号来控制匹配的优先级。

 

实例8

response:(200 or 404)

  上面这个表达式,会查询response包含200,或者response包含404,或者包含200和404的记录(不保证顺序、不区分大小写);

  同时可使用and来表示“且”的关系。

 

实例9

not response:200

  上面这个查询条件,会查询出response字段中不包含200的记录。

 

实例10

response:200 and not yes

  上面这个查询条件,会查询response包含200,而且整条记录不包含yes的数据记录;

 

实例11

response:(200 and not yes)

  上面这个查询条件,会查询response包含200,且response不包含yes的记录。

 

实例12

response:*

  上面这个查询条件,会返回全部包含response字段的文档对象。

 

实例13

machine*:hello

  上面这个查询条件,会查询machine1字段,machine2字段...machinexyzabc字段包含hello的数据记录,这里只是想表达,对于搜索的字段列,也是可使用通配符的。

 

五.总结

  KQL仍是比较简单地,主要记住KQL匹配时是不区分大小写的,可使用括号改变匹配优先级;

  另一个要点就是,匹配是“包含”,某个字段“包含”某个词,而不是某个字段的值为某个词。

 

原文连接:http://www.noobyard.com/article/p-kuomtldu-nz.html

与[转帖]Kibana查询语言(KQL)相似的内容:

[转帖]Kibana查询语言(KQL)

时间 2020-12-27 标签 html java 数据库 ide ui 翻译 日志 htm 对象 blog 栏目 HTML 繁體版 原文 https://www.cnblogs.com/-beyond/p/14159002.html 一.前言 如今大多数的公司都会使用ELK组合来对日志数据的收集

[转帖]比快更快的 ELK 8 安装使用指南-Elasticsearch,Kibana,Logstash

https://juejin.cn/post/7133907643386560519 携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情 Elastic 8 的新特性 Elastic 8.0 版号称 比快更快 ,其新特性可参考 Elastic 官方博客:

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

[转帖]HTTPS中间人攻击原理

https://www.zhihu.com/people/bei-ji-85/posts 背景 前一段时间,公司北京地区上线了一个HTTPS防火墙,用来监听HTTPS流量。防火墙上线之前,邮件通知给管理层,我从我老大那里听说这个事情的时候,说这个有风险,然后意外地发现,很多人原来都不知道HTTPS防

[转帖]关于字节序(大小端)的一点想法

https://www.zhihu.com/people/bei-ji-85/posts 今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下: 为什么网络字节序(多数情况下)是大端? 早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地

[转帖]awk提取某一行某一列的数据

https://www.jianshu.com/p/dbcb7fe2da56 1、提取文件中第1列数据 awk '{print $1}' filename > out.txt 2、提取前2列的文件 awk `{print $1,$2}' filename > out.txt 3、打印完第一列,然后打

[转帖]awk 中 FS的用法

https://www.cnblogs.com/rohens-hbg/p/5510890.html 在openwrt文件 ar71xx.sh中 查询设备类型时,有这么一句, machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /