Elasticsearch本文统称“ES”。很多情况下,因为工作或者学习需要用到ES集群,但是自身服务器资源又有限,如何解决此问题呢?这里用1台云服务器,实现ES集群的搭建并与Kibana实现正常的连接。
将ES软件从官网下载并解压到/usr/local/目录下,配置JDK开发环境变量(过程略)
默认情况下,我们的ES在不用更改任何配置的情况下,是可以正常启动的。因为ES有两种模式,一种是development模式,这个模式是供开发人员、运维人员去验证其功能是否正常完整的。默认情况下就是development.模式。一旦更改配置文件,那么它就运行在另外的模式Production生产模式。生产模式下的ES将会对各节点的环境检查、安全设置、日志告警级别有比较严格的要求。那么这里我们先不改配置,进而快速搭建一个集群。因为ES5以后,ES官方为了安全起见,禁止启用Root启动ES服务,因此我们需要进行普通用户的创建,才能正常启动ES服务。所以我们需要新建一个普通用户,并将ES安装目录授权给刚新建的用户。命令如下:
所以,我们su - elas 切换到用户下,启动ES服务 /usr/local/elasticsearch-6.8.2/bin/elasticsearch (在前台启动,观看其进程状态,后面测试没问题后,我们在用“-d”选项放到后台启动)
查看ES启动的默认端口9200是否启动,如下图
当然我们也可以通过curl 命令,来查看这个节点的ES是否正常。如下图
所以,到这里我们可以说,单节点ES是启动成功了对吧。
为了模拟集群的形式,我们需要再启动2个节点。我们用更改端口的形式在一台机器上启用第二个节点,使用如下命令
$PATH/bin/elasticsearch -Ehttp.port=8200 -Epath.data=node2 更改端口、更改索引存储的目录名字,默认是安装目录下的data
查看是否OK?发现正常启动
$PATH/bin/elasticsearch -Ehttp.port=7200 -Epath.data=node3
通过JPS命令查看: 三个ES进程启动了。
同时我们也看到了ES安装目录下自动生成了我们的数据文件夹,如下所示:
我们知道,一个服务器上安装三个节点没问题了,但是三个节点是否组成一个集群呢?三者间有没有联系呢?我们通过curl 127.0.0.1:8200/_cat/nodes 这个API看能否查出所有的节点信息:
通过随便查看一个端口的状态我们可以看到有3个节点,然后带*号的是主节点,也就是Master节点。
我们再查看一下集群节点的状态:发现3个节点,集群的信息都显示出来了。说明集群间的连接是正常的。如下图:
所以,到此为止,我们的三个节点都启动正常。
一般情况下,ES作为实时的分布式搜索引擎,我们肯定不能将其暴露在外网,我们信息人员要保证其绝对的安全。但是我们又要操作ES,怎么办呢?这里推荐Kibana。它也是ELK Stack系列产品,能很好的无缝对接ES链接。Kibana基于Nodejs开发,解压即可使用。下面,我们将安装Kibana与ES进行无缝链接。
将Kibana解压到/usr/local下,解压即可
进入安装目录,看config/kibana.yml文件,作简单的配置,只需要改下面三个地方:
server.port ---->kibana对外提供服务的http端口
server.host----->默认是localhost.因为这里是云主机,需要外网可以访问,因此我们需要改成0.0.0.0.但是如果是自己的虚拟机或者物理服务器我们需要改成自己的IP。
elastisearch.hosts----->Kibana链接ES的地址,一般Kibana跟ES都会安装在一起。所以这里只要改成127.0.0.1:9200即可。也就是说链接ES的内网IP即可。
然后启动Kibana即可。使用 nohup $kibana安装目录/bin/kinaba & ----->后台启动
结果发现:kibana服务启动正常。那浏览器能否正常打开界面呢?
本节我们通过在一台云主机上,快速搭建了一个具有三个节点的ES集群。同时安装了Kibana,并实现了与ES的正常链接。后面我将利用其有效的管理开发工具对ES进行更进一步的讲解。以上就是基于云平台下环境的搭建。
本机的私有IP为:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。