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 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【御控物联】物联网协议

文章目录 一、前言二、协议清单三、技术资料 一、前言 如果一个人想要和全球各个国家贸易&#xff0c;那这个人就得懂各个国家的语言或者全球通用语言&#xff0c;同样&#xff0c;在物联网的世界里&#xff0c;各家设备也都拥有自己的语言&#xff08;协议&#xff09;&#…

JUnit5参数化用例(三)

JUnit5枚举参数的参数化&#xff1a; 使用枚举类作为测试数据枚举参数参数化注解EnumSource必须与ParameterizedTest结合使用 枚举参数化注解 -简单使用&#xff1a; 需要添加EnumSource注解测试方法传入枚举类作为参数 在执行前&#xff0c;我们需了解enum枚举的使用方式&…

弘君资本午评:沪指拉升涨0.48%,地产板块爆发,金融等板块上扬

16日早盘&#xff0c;两市股指盘中震动上扬&#xff0c;创业板指涨超1%&#xff1b;场内近3800股飘红&#xff0c;半日成交超5000亿元。 到午间收盘&#xff0c;沪指涨0.48%报3134.97点&#xff0c;深证成指涨0.83%&#xff0c;创业板指涨1.14%&#xff0c;两市算计成交5194亿…

在win10折腾Flowise:部署和尝试

Flowise 是一种低代码/无代码拖放工具&#xff0c;旨在让人们轻松可视化和构建 LLM 应用程序。 本地部署 操作系统&#xff1a; win10 由于网络、操作系统等各种未知问题&#xff0c;使用npm install -g flowise的方式&#xff0c;尝试了很多次&#xff0c;都没有部署成功&am…

AI大模型试用盘点(附体验网址)包含10多款大模型

【前言】目前我是用过的公开免费使用的文心一言、智谱清言比较好! 1、阿里云——通义千问 网址:https://tongyi.aliyun.com/ 简介:阿里达摩院推出的大模型,拥有千亿参数,可用于智能问答、知识检索、文案创作等场景。 演示: 功能大全: 2、科大讯飞——星火大模型…

数据库-索引结构(B-Tree,B+Tree,Hash,二叉树)

文章目录 索引结构有哪些&#xff1f;二叉树详解&#xff1f;B-Tree详解?BTree详解&#xff1f;Hash详解&#xff1f;本篇小结 更多相关内容可查看 索引结构有哪些&#xff1f; MySQL的索引是在存储引擎层实现的&#xff0c;不同的存储引擎有不同的索引结构&#xff0c;主要包…

【C语言】static关键字的妙用

前言 在c/c中存在着一种内存结构&#xff0c;以此为栈区、堆区、静态区&#xff08;这里是大致划分&#xff0c;不细究&#xff09; 存放规则如下&#xff1a; 栈区&#xff1a;存放局部变量、函数的形参、临时属性的变量 堆区&#xff1a;存放malloc、realloc、calloc、fr…

2024 年适用于 Mac 的 5 大最佳免费数据恢复工具

一个常见的误解是&#xff0c;数据恢复总是很昂贵。实际上&#xff0c;您可以在 2024 年下载许多适用于 Mac 的免费数据恢复软件工具&#xff0c;并使用它们来恢复丢失的数据&#xff0c;而无需将 Mac 交给数据恢复专业人员&#xff0c;他们保证会向您收取一小笔费用他们的服务…

Ansys Mechanical|中远程点的Behavior该如何设置?

Remote point是ANSYS mechanical中的一种常见节点自由度耦合建模形式&#xff0c;在转动装配体中的连接转动副、或者在施加远端约束及远端载荷的时候&#xff0c;我们经常用到远端单元来耦合一个面或者一条线。例如销轴似的滚动摩擦连接&#xff0c;如果我们希望将两个物体通过…

Linux ps命令详细参数

一、简介 在Linux系统中&#xff0c;ps(Process Status的缩写)命令常常用来用来列出系统中当前运行的进程。ps命令列出的是当前那些进程的快照&#xff0c;就是执行ps命令的那个时刻的那些进程&#xff0c;如果想要动态的显示进程信息&#xff0c;就可以使用top命令。要对进程…

【动态规划】子序列问题II|最长定差子序列|最长的斐波那契数列的长度|最长等差数列|等差数列的划分

一、最长定差子序列 1218. 最长定差子序列 算法原理&#xff1a; &#x1f4a1;细节&#xff1a; 1.正常创建dp表&#xff0c;分析状态转移方程&#xff1a;可能b存在于多个不同的位置&#xff0c;那么要用哪个下标的dp呢&#xff1f; 用最后一个b的&#xff0c;因为用前面的可…

springboot3.0+继续使用springboot2.0配置会显示 `无法自动装配,找不到对应的Bean`解决方法

在 Spring Boot 3.0 中&#xff0c;Spring 团队对自动配置机制进行了重大变更&#xff0c;特别是 spring.factories 文件。spring.factories 文件已被 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件所取代。在springboot3.0继续使用…

Danfoss丹佛斯S90泵比例放大器

S90R042、S90R055、S90R075、S90R100、S90R130、S90R180、S90R250电气排量控制变量泵比例阀放大器&#xff0c;电气排量控制为高增益控制方式&#xff1a;通过微小变化的输入电流控制信号即可推动伺服阀主阀芯至全开口位置&#xff0c;进而将最大流量的控制油引入到伺服油缸。伺…

搭建Prometheus+grafana监控系统

1. 项目目标 &#xff08;1&#xff09;熟练部署安装node_exporter &#xff08;2&#xff09;熟练部署安装prometheus &#xff08;3&#xff09;熟练部署安装grafana 2. 项目准备 2.1. 规划节点 主机名 主机IP 节点规划 prometheus-server 10.0.1.10 server prome…

光伏运维系统在光伏电站的应用

摘要&#xff1a;全球化经济社会的快速发展,加快了传统能源的消耗,导致能源日益短缺,与此同时还带来了严重的环境污染。因此,利用没有环境污染的太阳能进行光伏发电获得了社会的普遍关注。本文根据传统式光伏电站行业的发展背景及其监控系统的技术设备,给出了现代化光伏电站数据…

手机IP地址:固定还是动态?探寻背后的变化之谜

在数字化时代的今天&#xff0c;手机作为我们日常生活中必不可少的通讯工具&#xff0c;扮演着越来越重要的角色。其中&#xff0c;IP地址作为手机在网络世界中的“身份证”&#xff0c;对于手机的正常运作至关重要。然而&#xff0c;很多人对于手机IP地址的固定性存在疑问&…

电子合同怎么盖章的

数字证书盖章&#xff1a;利用个人或企业的数字证书进行盖章。数字证书作为数字身份证明&#xff0c;确保了电子签名和盖章的可信度。通过加密技术&#xff0c;确保合同内容不被篡改&#xff0c;盖章过程完成后&#xff0c;合同具有法律效力。 时间戳盖章&#xff1a;在电子合…

【AI绘画】Stable diffusion初级教程08——提示词(prompt)该如何写

今天是一篇干货&#xff0c;干的喝水的那种…… 写之前呢&#xff0c;先给大家打个比方&#xff1a;现在刚入门学习SD的相当于刚上学的小学生&#xff0c;提示词就相当于作文&#xff0c;还是英语作文&#xff0c;如果你总是抄抄抄&#xff0c;不知道作文的要点&#xff0c;语法…

实验10 协作图

一、实验目的 通过绘制活协作图&#xff0c;掌握协作图的基本原理。能对简单问题进行协作图的分析与绘制。 二、实验项目内容&#xff08;实验题目&#xff09; 考试成绩管理系统是举行成人高考、自学考试等成人高校对每个参与考试的学员成绩进行综合管理的一个系统。本系统的…

redis7基础篇2 redis的3种模式(主从,哨兵,集群)模式

一 主从复制模式 1.1 主从模式 主从模式&#xff1a; 主机可以读&#xff0c;写&#xff0c;重机只能写操作。 主机shutdown后&#xff0c;从机上位还是原地待命&#xff1a;从机不动&#xff0c;原地待命&#xff0c;数据正常使用&#xff0c;等待主机重启归来。 主机shu…