Kibana使用

  一、什么是Kibana  

    Kibana 是一个开源的分析和可视化平台,Kibana 提供搜索、查看和与存储在 Elasticsearch 索引中的数据进行交互的功能。开发者或运维人员可以轻松地执行高级数据分析,并在各种图表、表格和地图中可视化数据。

 Kibana使用:

 ①:导入数据文件

②:预览并确认导入    

③:创建索引模式  

④:在Discover中查看数据 

Kibana左侧的Toolbar主要分为一下几块功能:

  Discovery 发现:用于查看和搜索原始数据
  Visualize 可视化:用来创建图表、表格和地图等
  Dashboard:多个图表和合并为一个 Dashboard 仪表盘
  Timelion 时间线:用于分析时序数据,以二维图形的方式展示
  Dev Tools 开发工具:用于进行DSL查询、Query性能分析等
  Management 管理:主要用于创建 Index Patterns,ES中的索引在创建 Index Patterns 之后,才能在 Discover 中被搜索,在 Visualize 和 Dashboard 中制图。

  二、检索

   1、选择日期

   2、左侧栏目展示可用的字段列表:

如果只想展示某个字段的内容,则在字段栏目上将鼠标悬停在类别字段上,然后单击 +             

  KQL(Kibana Query Language):

    KQL是一种使用自由文本搜索或基于字段的搜索过滤 Elasticsearch 数据的简单语法。KQL 仅用于过滤数据,并没有对数据进行排序或聚合的作用

   1、Terms Query

    空格分隔每个搜索词,并且只需要一个词来匹配文档。使用引号表示短语匹配(phrase match)

    ①:要使用精确搜索词进行查询,请输入字段名称,后跟 :,然后输入以空格分隔的值:

     如message中包含deduct的文档:

message: deduct

    ②:匹配多个字符串,每个字段都会单独匹配。如:force and clean

      只要匹配到其中的任何一个force、and、clean,那么搜索的结果都会显示出来

    ③:匹配单个确切的字符串或者匹配字符串短语(phrase),用双引号括起来。如"force and clean"

   2、Boolean queries

    KQL 支持 or、and 和 not。默认情况下,and 的优先级高于 or。要覆盖默认优先级,请在括号中将运算符分组。这些运算符可以是大写或小写

    

    ①:or,要匹配response为200、或者geo.dest 为 CN. 或两者都满足的文档:

response: 200 or geo.dest: "CN"

    ②:or,匹配 response 为 200 或 404 的文档:

response:(200 or 404)

    ③:and,匹配 response 为 200 且 geo.dest 为 CN 的文档

response: 200 and geo.dest: "CN"

    匹配包含术语列表的多值字段:

tags:(success and info and security)

    ④:and or结合使用,要匹配 response 为 200 且 extension 为 php 或 css 的文档:

response:200 and (extension:php or extension:css)

    ⑤:要匹配 response 为 200 且 extension 为 php 或 extension 为 css 且 response 为任何内容的文档(and 的优先级比 or 要高)

response:200 and extension:php or extension:css
等同于:
(response:200 and extension:php) or extension:css

    ⑥:not,匹配 response 不是 200 的文档:

not response:200

    ⑦:匹配 response 为 200 但 extension 不是 php 或 css 的文档:

response:200 and not (extension:php or extension:css)

3、Range queries

 KQL 支持数字和日期类型的 >、>=、< 和 <=,如:

bytes > 1000 and (hour_of_day>10 and hour_of_day <14  )

 日期范围过滤:

@timestamp < "2024-01-01"

   4、Exits queries

    ①:Exist 查询匹配包含任何字段值的文档:

response:*

    ②:如查询message中包含某个子串的 message : *n0317gfq8j20231221155303574*

   5、Wildcard queries

    通配符查询可用于按术语前缀搜索或搜索多个字段。Kibana 的默认设置出于性能原因禁止使用前导通配符,但可以通过高级设置允许

    要匹配 machine.os 以 win 开头的文档,例如 “windows 7” 和 “windows 10”:

machine.os:win*

    参考:https://mp.weixin.qq.com/s/x2NZMKAgRuxpzY7FOTwCYg

   

      补充:通过filter:

        

         选择过滤的字段,和值的包含关系:

        

        

         填入值,保存即可检索:

        

 Lucene:

1、根据字段查询

 限定字段全文搜索:field:value

 精确搜索:关键字加上双引号 filed:"value"

2、通配符

 ? 匹配单个字符

  * 匹配0到多个字符

3、模糊搜索

 ~:在一个单词后面加上~启用模糊搜索,可以搜到一些拼写错误的单词

4、近似搜索

在短语后面加上~,可以搜到被隔开或顺序不同的单词      

"where select"~5 表示 select 和 where 中间可以隔着5个单词,可以搜到 select password from users where id=1

5、范围搜索

mod_date:[20020101 TO 20030101]:查找 mod_date 字段的值介于 20020101 和 20030101 之间的文档

      

   

Dev Tools:

Kinaba > Management > Dev Tools

PUT(修改),POST(添加),DELETE(删除),GET(查询)

1、GET /   等价于 http://localhost:9200/,对应的curl为:curl -XGET "http://localhost:9200/"  

2、创建一个索引及文档

PUT index_name/_doc(type_name)/document_id

    

3、简单检索文档

①:GET /index_name/type_name/document_id 

对应的curl:curl -X GET "localhost:9200/megacorp/employee/1?pretty"

如 GET /megacorp/employee/1  的返回,_source属性里的是原始JSON文档

{"_index" : "megacorp","_type" : "employee","_id" : "1","_version" : 1,"_seq_no" : 0,"_primary_term" : 1,"found" : true,"_source" : {"first_name" : "John","last_name" : "Smith","age" : 25,"about" : "I love to go rock climbing","interests" : ["sports","music"]}
}

②:搜索索引下的全部文档:

GET /megacorp/employee/_search

curl -X GET "localhost:9200/megacorp/employee/_search?pretty"

搜索结果放在了hit数组中,一个搜索默认返回10条结果

③:根据文档中的属性值搜索

搜索lastname属性值为Smith的文档,使用q参数:

GET /megacorp/employee/_search?q=last_name:Smith

curl -X GET "localhost:9200/megacorp/employee/_search?q=last_name:Smith&pretty"

4、查询表达式搜索

查询表达式支持构建更加复杂和健壮的查询

①:使用 match 查询属性last_name值为Smith的文档

GET /megacorp/employee/_search
{"query" : {"match" : {"last_name" : "Smith"}}
}

对应curl为:

curl -X GET "localhost:9200/megacorp/employee/_search?pretty" -H 'Content-Type: application/json' -d'
{"query" : {"match" : {"last_name" : "Smith"}}
}

②:使用过滤器filter,搜索last_name属性值为Smith、age属性值大于30的文档

GET /megacorp/employee/_search
{"query" : {"bool": {"must": {"match" : {"last_name" : "smith" }},"filter": {"range" : {"age" : { "gt" : 30 } }}}}
}

5、全文搜索

Elasticsearch会在全文属性上搜索并返回相关性最强的结果,区别于传统关系数据库的一条记录要么匹配要么不匹配

如在`about` 属性上搜索 “rock climbing” 

GET /megacorp/employee/_search
{"query" : {"match" : {"about" : "rock climbing"}}
}

返回结果:

{"took" : 67,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 2,"relation" : "eq"},"max_score" : 1.4167401,"hits" : [{"_index" : "megacorp","_type" : "employee","_id" : "1","_score" : 1.4167401,     # 相关性得分"_source" : {"first_name" : "John","last_name" : "Smith","age" : 25,"about" : "I love to go rock climbing","interests" : ["sports","music"]}},{"_index" : "megacorp","_type" : "employee","_id" : "2","_score" : 0.4589591,     # 相关性得分"_source" : {"first_name" : "Jane","last_name" : "Smith","age" : 32,"about" : "I like to collect rock albums","interests" : ["music"]}}]}
}

Elasticsearch 默认按照相关性得分排序,即每个文档跟查询的匹配程度。第一个最高得分的结果很明显:John Smith 的 about 属性清楚地写着 “rock climbing”   

但为什么 Jane Smith 也作为结果返回了呢?原因是她的 about 属性里提到了 “rock” 。因为只有 “rock” 而没有 “climbing” ,所以她的相关性得分低于 John 的

6、短语搜索

  找出一个属性中的独立单词是没有问题的,但有时候想要精确匹配一系列单词或者_短语_ 。 比如, 我们想执行这样一个查询,仅匹配同时包含 “rock” 和 “climbing” ,并且 二者以短语 “rock climbing” 的形式紧挨着文档

为此对 match 查询稍作调整,使用一个叫做 match_phrase 的查询: 

GET /megacorp/employee/_search
{"query" : {"match_phrase" : {"about" : "rock climbing"}}
}

 7、高亮搜索

 在搜索结果中高亮显示部分文本片段,以便让用户知道为何该文档符合查询条件

 使用highlight参数即可:

GET /megacorp/employee/_search
{"query" : {"match_phrase" : {"about" : "rock climbing"}},"highlight": {"fields" : {"about" : {}}}
}

8、聚合搜索

Elasticsearch 有一个功能叫聚合(aggregations),允许我们基于数据生成一些精细的分析结果。聚合与 SQL 中的 GROUP BY 类似但更强大。

聚合使用aggs,如聚合搜索文档中所有age的值:

GET /megacorp/employee/_search
{"aggs": {"all_ages": {"terms": { "field": "age" }}}
}

结果:

{..."aggregations" : {"all_ages" : {"doc_count_error_upper_bound" : 0,"sum_other_doc_count" : 0,"buckets" : [ # age 所有出现的值,及出现改之文档的个数{"key" : 25,   "doc_count" : 1},{"key" : 32,"doc_count" : 1},{"key" : 35,"doc_count" : 1}]}}
}  

Elasticsearch搜索语法中文文档:检索文档 | Elasticsearch: 权威指南 | Elastic

 9、清空索引数据

POST index_name/_delete_by_query
{"query": {"match_all": {}}
}

 10、根据id删除一条数据

DELETE index_name/_doc/${_id}

 更多API:https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-apis.html 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/838547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins 忘记登录密码怎么办

在安装Jenkins中遇到忘记登录密码该怎么呢&#xff1f;下面是一个解决办法 1. 先停止jenkins服务 我是用tomcat启动的jenkis 2. 找到config.yaml文件 find / -name config.xml命令执行后找到如下结果&#xff1a; /root/.jenkins/config.xml /root/.jenkins/users/admin_839…

scanf读取标准输入

内容 scanf函数的原理 多种数据类型混合输入 常用的数据输入/输出函数 程序员可以给程序输入数据&#xff0c;程序处理后会返回一个输出。C语言通过函数库读取标准输入&#xff0c;然后通过对应函数处理将结果打印到屏幕上&#xff0c;printf函数可以将结果打印到屏幕上。下…

Java项目:基于ssm框架实现的家政服务网站管理系统分前后台(B/S架构+源码+数据库+毕业论文+答辩PPT)

一、项目简介 本项目是一套基于ssm框架实现的家政服务网站管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 二、技术实现 jdk版本&#xff1a;1.…

Rust构造JSON和解析JSON

目录 一、Rust构造JSON和解析JSON 二、知识点 serde_json JSON 一、Rust构造JSON和解析JSON 添加依赖项 cargo add serde-json 代码&#xff1a; use serde_json::{Result, Value};fn main() -> Result<()>{//构造json结构 cpu_loadlet data r#"{"…

高质量英文文献应该如何查找并且阅读?

1. 查找 使用谷歌学术进行论文关键字检索&#xff0c;查找高度匹配的论文。这里我们可以选择年限等信息进行筛选。作为研究者我们一般选择近三年的文章进行阅读。这里谷歌学术需要科学上网&#xff0c;请大家自行解决。 https://scholar.google.com/ 2. 查看期刊等级 我们查…

计算机视觉与机器学习之文档解析与向量化技术加速多模态大模型训练与应用

目录 前言1、TextIn文档解析技术1.1、文档解析技术1.2、目前存在的问题1.2.1、不规则的文档信息示例 1.3、合合信息的文档解析1.3.1、合合信息的TextIn文档解析技术架构1.3.2、版面分析关键技术 Layout-engine1.3.3、文档树提取关键技术 Catalog-engine1.3.4、双栏1.3.5、非对称…

2024kali linux上安装java8

1 kali下载Java 8安装包 访问Oracle官网或其他可信的Java下载站点&#xff0c;如华为云的开源镜像站&#xff08;例如&#xff1a;https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz&#xff09;。 确保下载的是与你的Kali Linux系统架构&#xf…

一款专业级别的灵卡技术红外机芯——LC221详解

灵卡科技最新推出的一款高性能红外摄像头组件——LC221。这款独特的设备专为广泛的热点搜索以及热瞄准应用领域而精心打造&#xff0c;旨在为广大用户带来前所未有的智能化体验。下面&#xff0c;让我们详细了解这款新产品的特点与优势吧&#xff01; 首先&#xff0c;让…

挖掘机可视化:工程施工的智能助手

通过图扑 3D 建模和实时数据监控&#xff0c;提供设备操作的全方位视角。操作员可以从屏幕上直观地观察挖掘机各部分的工作状态&#xff0c;实时掌握挖掘进度和设备健康状况。 此技术提升了施工效率&#xff0c;减少了人为误操作风险&#xff0c;同时还支持远程诊断和维护&…

13、24年--信息系统治理——IT审计

1、IT审计基础 1.1 IT审计定义 无重要的考点,自己读课本了解即可。 1.2 IT审计目的 1)IT审计的目的是指通过开展IT审计工作,了解组织IT系统与IT活动的总体状况,对组织是否实现IT目标进行审查和评价,充分识别与评估相关IT风险,提出评价意见及改进建议,促进组织实现IT目…

C语言:指针(3)

1. 字符指针变量 在指针的类型中我们知道有⼀种指针类型为字符指针 char* ; 本质是把字符串 hello bit. ⾸字符的地址放到了pstr中。上⾯代码的意思是把⼀个常量字符串的⾸字符 h 的地址存放到指针变量 pstr 中。 2. 数组指针变量 2.1 数组指针变量是什么&#xff1f; 答案…

活字格如何复制指定单元格中的内容

1、安装插件“复制到剪贴板”后。 2、在需要执行复制的命令中&#xff0c;选择“复制到剪贴板” 3、选择源单元格。 4、执行看效果。

世界500强企业建设软件开发安全体系,打造DevSecOps示范标杆

某世界500强企业旗下拥有众多知名汽车品牌&#xff0c;业务涵盖出行服务、科技创新、金融服务、教育等。该集团一直专注于技术创新和人才培养&#xff0c;同时也是国内第一批倡议并践行“数字化转型”的汽车行业企业。 数智化建设转型&#xff0c;研发安全体系建设势在必行 在…

MES系统主要包括那些功能?

一开始接触MES系统&#xff0c;对MES细条的功能不清楚&#xff0c;这样很正常&#xff0c;因为MES系统相对于其他系统来讲&#xff0c;功能有多又复杂! 作为曾参与200企业MES系统架构的资深从业人员&#xff0c;我给大家选出了一款优秀模板——简道云MES系统&#xff0c;给大家…

【Linux】线程机制解析:理解、优势与Linux系统应用

文章目录 前言&#xff1a;1. 线程概念1.1. 什么是线程1.2. 线程得优点&#xff1a;1.3. 线程的缺点线程异常线程的用途 2. 线程的理解&#xff08;Linux 系统为例&#xff09;2.1. 为什么要设计Linux“线程"&#xff1f;2.2. 什么是进程&#xff1f;2.3. 关于调度的问题2…

线性模型快速入门

使用matplotlib画一条直线 import numpy as np import matplotlib.pyplot as pltx np.linspace(-5, 5, 100) y 0.5*x 3plt.plot(x, y, c"orange") plt.title("Straight Line") plt.show()线性模型的直线表示 import numpy as np import matplotlib.py…

并发-sleep更优雅的实现方案:TimeUnit.枚举常量.sleep()

首先给出结论&#xff1a;线程使用中的暂停&#xff0c;建议优先使用TimeUnit类中的sleep()但需要注意传入时间小于0的异常情况TimeUnit是java.util.concurrent包下的一个类名主要功能是暂停线程的操作拥有与Thread.sleep()一样的功能都是暂停线程&#xff0c;但TimeUnit提供了…

springboot实现文件防盗链设计

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen &#x1f44b;&#x1f44b;&#x1f44b;hello&#xff0c;伙伴们好久不见&…

Git使用(1):介绍、克隆、推送

一、介绍与安装 1、Git是什么&#xff1f; Git是目前世界上最先进的分布式版本控制系统。工作原理 / 流程&#xff1a; workspace&#xff1a;工作区Index / Stage&#xff1a;暂存区Repository&#xff1a;仓库区&#xff08;或本地仓库&#xff09;Remote&#xff1a;远程仓…

智能防疫电梯模拟控制系统设计-设计说明书

设计摘要&#xff1a; 本设计是基于单片机的智能防疫电梯模拟控制系统&#xff0c;主要实现了多项功能。首先&#xff0c;系统进行无接触测温&#xff0c;如果温度正常则可以启动电梯运行&#xff0c;如果温度异常则电梯会报警提示有乘客体温异常&#xff0c;电梯不会运行。其…