介绍
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
如果是前台运行的话,可以看到插入的结果:
这里我设置的数据条目数是一千万,你可以修改源文件里面的
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,类似于下面的图
之后你可以直接添加index:因为kibana跟ElasticSearch已经建立连接了,所以直接可以读取ElasticSearch里面的index信息:
在里面就可以直接看到ElasticSearch上面的数据,在Filter的搜索栏里面可以使用KQL–kibana自带的语言来对数据进行检索,很方便很方便,可以自己尝试一下。
最后
1.kibana提供了数据可视化。
2.如果是写在应用程序里面的话,还是需要学习DSL,这个是构造Json来跟ElasticSearch打交道的方法。
3.ElasticSearch还可以对数据的一些字段进行设置,具体的都是在DSL里面实现。
4.ElasticSearch是分布式的,复制的模式还不太了解,我猜应该是主从复制,多节点来分发搜索请求。
5.还需要继续学习下ElasticSearch。