ElasticSearch + Kibana

文章目录

    • 介绍
    • 用途
    • 安装
    • Mock数据
    • 简单的使用
    • 关于Kibana和ElasticSearch的连接使用
    • 最后

介绍

ElasticSearch : Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎[官网介绍]
Kibana:能够对 Elasticsearch 中的数据进行可视化并在 Elastic Stack 进行操作[官网介绍]

用途

现在Elastic Stack 多数用在日志收集和分析上面[LogStash,Beats]。

安装

1.传送门–Elastic官方网站
2.下载kibana-7.0.0-linux-x86_64.tar.gz 和 elasticsearch-7.0.0-linux-x86_64.tar.gz
3.解压第二步的两个压缩包
4.在解压出来的文件夹里面可以看到bin文件夹,里面就是可执行的文件。
5.先启动elasticsearch,如果在本机上面测试的话,直接跑可执行文件即可,如果是在内网服务器或者公网服务器上面跑的话,那么需要改下配置文件:config/elasticsearch.yml,把里面的NetWork相关的配置改掉:

network.host: 192.168.1.123
discovery.seed_hosts: ["192.168.1.123"] //如果修改了上面一行,那么下面这一行必须加上,这个是为了集群

6.修改kibana的配置文件:

server.port: 5601   // kibana的端口
server.host: "192.168.1.123"  //kibana的ip
elasticsearch.hosts: ["http://192.168.1.123:9200"] // elasticsearch的IP和端口

7.启动kibana。

Mock数据

为了制造一些假的Test数据,自己写了一个Mock数据的Go文件,有需要的朋友可以下载:
Go File
插入到ElasticSearch里面的Json格式如下:

{
	name : "",
	age : 23,
	hobbies: [],
	university : "",
	phoneNumber : "",
	Addr : {
		city : "",
		country : ""
	}
}

在运行这个Go文件之前,需要把IP:PORT换成你自己的ElasticSearch服务的IP和端口。修改完成之后,直接运行这个文件即可:

go run mock.go

如果是前台运行的话,可以看到插入的结果:
ElasticSearch + Kibana_第1张图片
这里我设置的数据条目数是一千万,你可以修改源文件里面的

numberOfMock 

变量来设置数据的条目

简单的使用

我们可以使用curl来直接访问ElasticSearch:

curl "http://192.168.26.83:9200/people/info/_search?pretty" -d '{"query" : {"bool" : {"must" : [{"match" : {"Addr.City" : "xingyi"}}, {"match" : {"Addr.Country" : "China"}}]}}}' -H "Content-Type: application/json"

curl "http://192.168.26.83:9200/people/info/_search" -d '{"query" : {"match" : {"Hobbies" : "video-game"}}}' -H "Content-Type: applicatin/json"

使用curl需要注意要加上-H参数,设置Content-Type:如果是其他的Content-Type,ElasticSearch会报错,因为ElasticSearch是RestFul API的。

关于Kibana和ElasticSearch的连接使用

走到这里的话,这两个服务应该都起了,所以我们直接访问kibana的监听的IP和端口,就可以直接访问到kibana,类似于下面的图
ElasticSearch + Kibana_第2张图片
之后你可以直接添加index:因为kibana跟ElasticSearch已经建立连接了,所以直接可以读取ElasticSearch里面的index信息:
ElasticSearch + Kibana_第3张图片
在里面就可以直接看到ElasticSearch上面的数据,在Filter的搜索栏里面可以使用KQL–kibana自带的语言来对数据进行检索,很方便很方便,可以自己尝试一下。

最后

1.kibana提供了数据可视化。
2.如果是写在应用程序里面的话,还是需要学习DSL,这个是构造Json来跟ElasticSearch打交道的方法。
3.ElasticSearch还可以对数据的一些字段进行设置,具体的都是在DSL里面实现。
4.ElasticSearch是分布式的,复制的模式还不太了解,我猜应该是主从复制,多节点来分发搜索请求。
5.还需要继续学习下ElasticSearch。

你可能感兴趣的:(工具)