ElasticSearch + Kibana - Go语言中文社区

ElasticSearch + Kibana


介绍

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。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/nia305/article/details/89385270
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢