Kibana可视化界面操作

本章内容概述

1、Kibana可视化界面介绍
2、Kibana的安装和配置
3、Kibana增删改查文档

1、Kibana可视化界面介绍

	 Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。

	你用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。

	你可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。

	Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快速创建和共享动态仪表板,实时显示Elasticsearch查询
的变化。

在这里插入图片描述

2、Kibana的安装和配置

	1、通过ElasticSearch官网网站下载最新版本的Kibana
				
		网址: https://www.elastic.co/cn/downloads/

在这里插入图片描述

		目前最新版是2019年4月11日发布的7.0.0,选择Linux版本下载【Kibana版本最好和ElasticSearch一致】

在这里插入图片描述

	2、上传Kibana到Linux的usr/local目录下

在这里插入图片描述

	3、解压Kibana到usr/local目录
			
		tar -zxvf kibana-7.0.0-linux-x86_64.tar.gz
			
	4、打开安装目录下的config文件夹,修改kibana.yml
	
		vim kibana.yml
	
	5、去除Kibana的某些注释
	
		# 将默认配置改成如下:
		server.port: 5601							
		server.host: "192.168.34.64"
		elasticsearch.hosts: ["http:// 192.168.34.64:9200"]
		
		以上三条代码的作用分别为:
		Kibana端口号
		Kibana主机地址
		Kibana访问ElasticSearch的地址
		
	6、启动Kibana
	
		进入安装目录的bin目录,然后./kibana 
		
		后台启动  nohup kibana &
		
		访问http://192.168.34.64:5601/app/kibana

在这里插入图片描述

3、Kibana增删改查文档

3.1 让我们建立一个员工目录

	假设我们刚好在newcapec工作,这时人力资源部门出于某种目的需要让我们创建一个员工目录,这个目录用于促进人文关怀和用
于实时协同工作,所以它有以下不同的需求:

	1.数据能够包含多个值的标签、数字和纯文本。
	2.检索任何员工的所有信息。
	3.支持结构化搜索,例如查找30岁以上的员工。
	4.支持简单的全文搜索和更复杂的短语(phrase)搜索
	5.高亮搜索结果中的关键字
	6.能够利用图表管理分析这些数据

3.2 索引员工文档

	我们首先要做的是存储员工数据,每个文档代表一个员工。在Elasticsearch中存储数据的行为就叫做索引(indexing),不过在
索引之前,我们需要明确数据应该存储在哪里。

	在Elasticsearch中,文档归属于一种类型(type),而这些类型存在于索引(index)中,我们可以画一些简单的对比图来类比传统
关系型数据库:

	关系数据库      ⇒ 数据库        ⇒ 表          ⇒ 行              ⇒ 列(Columns)

	Elasticsearch  ⇒ 索引(Index)   ⇒ 类型(type)  ⇒ 文档(Docments)  ⇒ 字段(Fields)
	
	Elasticsearch集群可以包含多个索引(indices)(数据库),每一个索引可以包含多个类型(types)(表),每一个类型包含多
个文档(documents)(行),然后每个文档包含多个字段(Fields)(列)。

	关于索引的异议: 参考3.3
	
	所以为了创建员工目录,我们将进行如下操作:
		
		1. 为每个员工的文档(document)建立索引,每个文档包含了相应员工的所有信息。
		2. 每个文档的类型为employee。
		3. employee类型归属于索引newcapec。
		4. newcapec索引存储在Elasticsearch集群中。
		
	数据库步骤和Elasticsearch对比:
		mysql 			--> newcapec数据库 --> employee表 --> 数据行 			-->id/name等字段
		Elasticsearch 	--> 索引(Index)    --> 类型(type) --> 文档(Docments)	-->name等字段
		
	我们可以根据上面的对比一步步实现:
		
		1. 创建索引  
		
			PUT /newcapec		这种方式创建出来的采用了默认配置的分片和备份。
			
			分片及备份见:1_ElasticSearch基础知识.md 1.4小节
			
			获取索引默认配置:
			GET /索引名/_settings

在这里插入图片描述

			如果想要自己设置分片和备份数,在创建索引的时候直接指定:
			
			PUT /索引名
			{
				"settings":{
					"index":{
						"number_of_shards": "数值",
						"number_of_replicas": "数值"
					}
				}
			}

在这里插入图片描述

		2. 查询索引  
			
			获取单个索引:
				GET /索引名
			
			获取全部索引:
				GET 

在这里插入图片描述

		3. 删除索引  DELETE /newcapec
		4. 添加文档  PUT /索引名称/类型/id 
			注:id可以认为相当于主键
			PUT /newcapec/employee/1
			{
				"first_name" : "John",
				"last_name" :  "Smith",
				"age" :        25,
				"about" :      "I love to go rock climbing",
				"interests": [ "sports", "music" ]
			}

			我们看到path:/newcapec/employee/1包含三部分信息:

在这里插入图片描述

			如果不想指定ID,可以让ElasticSearch自动生成,但是不能用PUT,而是需要使用POST
			POST /newcapec/employee/
			{
				"first_name" : "Jek",
				"last_name" :  "Kba",
				"age" :        21,
				"about" :      "I love to go rock climbing",
				"interests": [ "music" ]
			}
			
		5. 查询文档  
			
			GET /newcapec/employee/id
			
			以上查询显示的是所有字段,如果想要显示指定字段,可以通过_source来做条件:
			
			GET /newcapec/employee/id?_source=字段1,字段2...
			
			注:字段名不要添加任何引号
			
		6. 修改文档  
			
			和添加操作类似,只是改完之后再执行,相当于把之前的覆盖
			
			另外一种方式:
			POST /索引名/类型/id/_update
			{
			  "doc":{
				"age":30
			  }
			}
			
		7. 删除文档  DELETE /newcapec/employee/id
		
		
		接下来,让我们在目录中加入更多员工信息:
		
			PUT /newcapec/employee/2
			{
				"first_name" :  "Jane",
				"last_name" :   "Smith",
				"age" :         32,
				"about" :       "I like to collect rock albums",
				"interests":  [ "music" ]
			}

			PUT /newcapec/employee/3
			{
				"first_name" :  "Douglas",
				"last_name" :   "Fir",
				"age" :         35,
				"about":        "I like to build cabinets",
				"interests":  [ "forestry" ]
			}
		
		8. 批量获取文档

			GET /_mget
			{
			  "docs":[
				{
				  "_index":"newcapec",
				  "_type":"employee",
				  "_id":1
				},
				  
				{
				  "_index":"newcapec",
				  "_type":"employee",
				  "_id":3
				}
				
			  ]
			}
			
			还可以指定每个要具体获取的字段:
			GET /_mget
			{
			  "docs":[
				{
				  "_index":"newcapec",
				  "_type":"employee",
				  "_id":1,
				  "_source":["last_name","age"]
				},
				  
				{
				  "_index":"newcapec",
				  "_type":"employee",
				  "_id":3,
				  "_source":["last_name","about","interests"]
				}
				
			  ]
			}
		
			同一索引下的相同类型可以简写:
			GET /newcapec/employee/_mget
			{
			  "ids":["1","2"]
			}
		
		9. 使用Bulk API 实现批量操作

			引入批量操作bulk,提高工作效率,你想啊,一批一批添加与一条一条添加,谁快?

			bulk API可以帮助我们同时执行多个请求
			
			bulk的格式:
			
			action:index/create/update/delete

			metadata:_index,_type,_id

			request body:_source (删除操作不需要加request body)
			
			{ action: { metadata }}

			{ request body        }
		
			批量添加案例:
POST /libary/books/_bulk
{"index":{"_id":1}}
{"title":"java基础语法","price":35}
{"index":{"_id":2}}
{"title":"HTLM5从入门到精通","price":85}
{"index":{"_id":3}}
{"title":"PHP从入门到放弃","price":55}
{"index":{"_id":4}}
{"title":"Spingboot","price":100}
			批量删除案例:
POST /libary/books/_bulk
{"delete":{"_id":1}}
{"delete":{"_id":3}}
			批量更新案例:
POST /libary/books/_bulk
{"update":{"_id":2}}
{"doc":{"price":99}}
{"update":{"_id":4}}
{"doc":{"price":66,"title":"Spingboot综合案例"}}
			注:以上操作可以混搭使用
			
			create 和index的区别:如果数据存在,使用create操作失败,会提示文档已经存在,使用index则可以成功执行。
			
			bulk一次最大处理多少数据量?
				bulk会把将要处理的数据载入内存中,所以数据量是有限制的,最佳的数据量不是一个确定的数值,它取决于你的硬件,
			你的文档大小以及复杂性,你的索引以及搜索的负载。

				一般建议是1000-5000个文档,如果你的文档很大,可以适当减少队列,大小建议是5-15MB,默认不能超过100M,可以
			在es的配置文件(即$ES_HOME下的config下的elasticsearch.yml)中。

3.3 「索引」含义的区分

	你可能已经注意到索引(index)这个词在Elasticsearch中有着不同的含义,所以有必要在此做一下区分:

	1. 索引(名词) 如上文所述,一个索引(index)就像是传统关系数据库中的数据库,它是相关文档存储的地方,index的复数
是indices 或indexes。

	2. 索引(动词) 「索引一个文档」表示把一个文档存储到索引(名词)里,以便它可以被检索或者查询。这很像SQL中的
INSERT关键字,差别是,如果文档已经存在,新的文档将覆盖旧的文档。

	3. 倒排索引 传统数据库为特定列增加一个索引,例如B-Tree索引来加速检索。Elasticsearch和Lucene使用一种叫做倒排索
引(inverted index)的数据结构来达到相同目的。

	默认情况下,文档中的所有字段都会被索引(拥有一个倒排索引),只有这样他们才是可被搜索的。

个索引(index)就像是传统关系数据库中的数据库,它是相关文档存储的地方,index的复数
是indices 或indexes。

	2. 索引(动词) 「索引一个文档」表示把一个文档存储到索引(名词)里,以便它可以被检索或者查询。这很像SQL中的
INSERT关键字,差别是,如果文档已经存在,新的文档将覆盖旧的文档。

	3. 倒排索引 传统数据库为特定列增加一个索引,例如B-Tree索引来加速检索。Elasticsearch和Lucene使用一种叫做倒排索
引(inverted index)的数据结构来达到相同目的。

	默认情况下,文档中的所有字段都会被索引(拥有一个倒排索引),只有这样他们才是可被搜索的。
	
	我们将会在倒排索引章节中更详细的讨论。
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JTZ001

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

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

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

打赏作者

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

抵扣说明:

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

余额充值