亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述Elasticsearch掰开揉碎第6篇Kibana详解相关的知识,希望能为你提供帮助。
引言上一篇主要讲解的是:安装elasticsearch的图形化管理插件head、使用head操作elasticsearch、扩展之head史上最简单的安装方式。
本篇主要讲解的是:专为Elasticsearch设计的开源分析和可视化平台Kibana,可以使用Kibana来搜索,查看存储在Elasticsearch索引中的数据并与之交互,很容易实现高级的数据分析和可视化,以图表的形式展现出来,例如直方图、线形图、饼图、热图和内置的地理空间支持。
Kibana本身是一种数据可视化和挖掘工具,可以用于日志和时间序列分析、应用程序监控和运营智能使用案例,功能很强大。
linux下的kibana安装1、创建目录
[root@hadoop102 ~]# mkdir -p /usr/local/kibana
2、上传kibana压缩包并解压
[root@hadoop102 ~]# tar zxvf /tmp/kibana-7.8.0-linux-x86_64.tar.gz -C /usr/local/kibana/
3、配置kibana
[root@hadoop102 ~]# cd /usr/local/kibana/kibana-7.8.0-linux-x86_64/config/
[root@hadoop102 config]# vi kibana.yml
server.port: 5601
#开放端口
server.host: "0.0.0.0"
#允许任何IP访问
#ES集群连接信息
elasticsearch.hosts: ["http://192.168.8.102:9200","http://192.168.8.103:9200","http://192.168.8.104:9200"]
4、启动kibana
[root@hadoop102 ~]#
cd /usr/local/kibana/kibana-7.8.0-linux-x86_64/
[root@hadoop102 kibana-7.8.0-linux-x86_64]# nohup bin/kibana --allow-root &
5、关闭kibana
有需要操作时,再进行关闭
[root@hadoop102 ]# ps -ef|grep "allow-root"
[root@hadoop102 ]# kill -9 上一步查询的pid
6、浏览器访问
http://192.168.8.102:5601/
7、连接ES
使用Kibana操作ES1、查看索引的数据
2、查询索引中指定的数据
3、开发工具
它默认有联想功能
4、删除Kibana和索引的关联
并不会删除ES中的指定索引
此处操作,只是把Kibana和ES中指定的索引,关联关系删除了。ES中指定的索引还在,没有任何影响。
5、通过Kibana真正的操作索引
此时会查看到ES中,所有的数据,无论索引中是否有数据
6、Rest风格操作
6.1索引的操作6.1.1、创建索引
语法:PUT /索引名/~类型名~/文档id
请求体
实战操作:
PUT /test1/type1/1
"name":"大飞哥",
"age":3
6.1.2、常用类型
6.1.3、创建mapping(创建索引并指定字段的类型)
PUT /test2
"mappings":
"properties":
"name":
"type": "text"
,
"age":
"type": "long"
,
"birthday":
"type": "date"
6.1.4、获取指定索引信息
GET test2
6.1.5、查看默认字段类型
PUT /test3/_doc/1
"name":"大飞哥",
"age":3,
"birth":"1988-06-26"
GET test3
如果自己的文档字段没有指定,那么ES会给出默认配置字段类型。
6.1.6、扩展命令
GET _cat/health
查看集群健康状态
GET _cat/indices?V
查看所有索引
通过GET _cat/ 可以获得es的当前很多信息
6.1.7、修改索引(old全覆盖)
1、修改索引文档(指定所有字段)
PUT /test3/_doc/1
"name":"大飞哥123",
"age":3,
"birth":"1988-06-26"
2、查看数据
3、修改索引文档(指定部分字段)
PUT /test3/_doc/1
"name":"大飞哥123",
"age":3
4、查看数据
6.1.8、修改索引(new指定覆盖)
1、修改索引文档(指定部分字段)
POST /test3/_doc/1/_update
"doc":
"name":"法外狂徒张三"
2、查看数据
6.1.9、修改索引(new指定覆盖)、删除索引
通过使用DELETE命令实现删除,根据你的请求来判断,删除索引还是删除文档记录。
DELETE test1
6.2 文档的基本操作6.2.1、准备数据
PUT /dafeige/user/1
"name":"大飞哥",
"age":3,
"desc":"一顿操作猛如虎,一看工资2500",
"tags":["技术宅","温暖","直男"]
PUT /dafeige/user/2
"name":"张三",
"age":3,
"desc":"法外狂徒",
"tags":["交友","旅游","渣男"]
PUT /dafeige/user/3
"name":"李四",
"age":30,
"desc":"mmp,不知道如何形容",
"tags":["靓女","旅游","唱歌"]
PUT /dafeige/user/4
"name":"大飞哥oracle",
"age":6,
"desc":"一顿操作猛如虎,一看工资2500",
"tags":["技术宅","温暖","直男"]
6.2.2、GET获取数据
GET dafeige/user/1
6.2.3、PUT更新数据(全覆盖)
PUT /dafeige/user/3
"name":"李四234",
"age":30,
"desc":"mmp,不知道如何形容",
"tags":["靓女","旅游","唱歌"]
6.2.4、POST更新数据(部分修改)
POST /dafeige/user/1
【Elasticsearch掰开揉碎第6篇Kibana详解】
"doc":
"name":"大飞哥说bigdata"
查询出结果,发现和PUT操作没有区别
还原数据
PUT /dafeige/user/1
"name":"大飞哥",
"age":3,
"desc":"一顿操作猛如虎,一看工资2500",
"tags":["技术宅","温暖","直男"]
更新操作
POST /dafeige/user/1/_update
"doc":
"name":"大飞哥说bigdata"
从结果中看出来,只修改了name对应的值,其它列的值还在。
6.2.5、简单的条件查询
GET dafeige/user/_search?q=name:大飞哥
score:查询时带有条件,如果查询结果有多条,匹配度越高,score值越大。
6.2.6、字段类型说明
"name":
"type": "text",
"fields":
"keyword":
"ignore_above": 256,
"type": "keyword"
#整体搜索,分词器不会产生作用。如果想分词,使用text类型。
在fields中声明子属性时,type值为keyword,此字段整体搜索,分词器不会在此字段上产生作用。如果type值为text,才能分词。
6.3 文档的复杂操作6.3.1、查询指定参数值
GET dafeige/user/_search
"query":
"match":
"name": "大飞哥"
6.3.2、查询结果说明
6.3.3、部分字段显示
GET dafeige/user/_search
"query":
"match":
"name": "大飞哥"
,
"_source":["name","desc"]
6.3.4、排序结果
GET dafeige/user/_search
"query":
"match":
"name": "大飞哥"
,
"sort":[
"age":
"order":"asc"
]
6.3.5、分页查询
GET dafeige/user/_search
"query":
"match":
"name": "大飞哥"
,
"sort":[
"age":
"order":"asc"
],
"from":0,
"size":1
参数说明
from:从哪条记录开始
size:取几条记录
因为我们关于大飞哥的记录有2条,从下面结果看出来,分页起作用了,只显示了1条。
6.3.6、布尔多条件查询
1、must(and),所有的条件都要符合
GET dafeige/user/_search
"query":
"bool":
"must": [
"match":
"name": "大飞哥"
,
"match":
"age": "6"
]
2、should(or),只要有条件符合就行
GET dafeige/user/_search
"query":
"bool":
"should": [
"match":
"name": "大飞哥"
,
"match":
"age": "6"
]
3、not,取否定条件
GET dafeige/user/_search
"query":
"bool":
"must_not": [
"match":
"age": "6"
]
6.3.7、filter过滤器
1、name中带有大飞哥,同时要求年龄>
3
GET dafeige/user/_search
"query":
"bool":
"must": [
"match":
"name": "大飞哥"
],
"filter": [
"range":
"age":
"gt": 3
]
2、操作符说明:
gt大于、gte大于等于、lt小于、lte小于等于
3、name中带有大飞哥,同时要求 4<
=年龄<
=20
GET dafeige/user/_search
"query":
"bool":
"must": [
"match":
"name": "大飞哥"
],
"filter": [
"range":
"age":
"gte": 4,
"lte": 20
]
12.3.8、匹配多条件查询
1、关于分词:
term:查询是直接通过 倒排索引 指定的词条进行精确查找的
match:会使用分词器解析(先分析文档,然后再通过分析的文档进行查询)
2、match多条件(多条件之间使用 空格)
GET dafeige/user/_search
"query":
"match":
"tags": "男 技术"
score就是权重,满足条件的越多,score就越大。
3、分词演示
没有被分词
GET _analyze
"analyzer": "keyword",
"text": "飞哥说bigdata name"
被分词了
GET _analyze
"analyzer": "standard",
"text": "飞哥说bigdata name"
4、text和keyword类型
创建索引
PUT testdb
"mappings":
"properties":
"name":
"type": "text"
,
"desc":
"type": "keyword"
插入数据
PUT testdb/_doc/1
"name":"飞哥说bigdata name1",
"desc":"飞哥说bigdata desc1"
PUT testdb/_doc/2
"name":"飞哥说bigdata name2",
"desc":"飞哥说bigdata desc2"
5、使用term查询text和keyword类型
GET testdb/_search
"query":
"term":
"name": "飞"
GET testdb/_search
"query":
"term":
"desc": "飞哥说bigdata desc"
GET testdb/_search
"query":
"term":
"desc": "飞哥说bigdata desc1"
从结果可以看出来:
1、name类型是text,对name进行query时,可以分词的,模糊匹配
2、desc类型是keyword,对desc进行query时,不能分词,完全精准匹配
6、多个值匹配精确查询
初始化数据(testdb中会多出t1和t2两个列,默认是keyword类型的)
PUT testdb/_doc/3
"t1":"22",
"t2":"2020-4-6"
PUT testdb/_doc/4
"t1":"33",
"t2":"2020-4-7"
查询
GET testdb/_search
"query":
"bool":
"should": [
"term":
"t1": "22"
,
"term":
"t1": "33"
]
7、高亮查询
默认em格式
查询出name中包含大飞哥的,把name字段高亮显示
GET dafeige/user/_search
"query":
"match":
"name": "大飞哥"
,
"highlight":
"fields":
"name":
自定义高亮格式
GET dafeige/user/_search
"query":
"match":
"name": "大飞哥"
,
"highlight":
"pre_tags": "<
p class=key style=color:red>
",
"post_tags": "<
/p>
",
"fields":
"name":
windows下的Kibana安装1、下载压缩包并解压
此处我将它解压到D盘根目录
2、修改config/kibana.yml文件
注意此文件默认编码格式
追加如下内容
# 默认端口server.port: 5601
# ES 服务器的地址
elasticsearch.hosts: ["http://192.168.8.102:9200"]
# 索引名
kibana.index: ".kibana"
# 支持中文
i18n.locale: "zh-CN"
3、启动kibana
4、通过浏览器访问
http://localhost:5601/
5、简单测试
至此,windows下的Kibana安装就成功了。
结束语至此,Elasticsearch掰开揉碎系列的第6篇就结束了,本篇文章中主要要讲解的是:linux下的kibana安装、windows下的kibana安装、使用Kibana操作ES。本篇文章内容有点多,兄弟们加油干吧!!
下一篇我带来的是:analysis-ik中文分词器。后续的内容更精彩,敬请期待,感谢兄弟们的关注!!!
推荐阅读
- 防火墙配置
- 负载均衡-4层和7层对比
- 微服务架构概述
- ELK之kafka篇
- N64010第三周作业
- 使用HAPROXY的ACL实现基于文件后缀名的动态和静态资源分离
- 一种常用又简单的Linux流量监控工具
- linux(anolis)搭建lvs
- 《LinuxProbe》—RHCE 学习 Day7