1.概述
Es是一款开源的基于Lucene的搜索引擎。本文基于es7.17.7和kibana7.17.7版本进行实操。
es7.17.7支持使用JDK1.8。注意不同的版本配置会有差异,要根据具体版本进行配置。
2.单机模式
下载后直接启动即可,没有任何难度。启动后浏览器访问如下地址:
http://127.0.0.1:9200
image.png
3.集群模式
集群模式也只需要简单的配置,三个节点的配置如下,配置文件的路径在目录config下。
节点一
#集群名称,保证唯一
cluster.name: es-cluster
#节点名称,必须不一样
node.name: node-1
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9201
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9301
#设置集群自动发现机器ip集合
discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
节点二
#集群名称,保证唯一
cluster.name: es-cluster
#节点名称,必须不一样
node.name: node-2
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9202
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9302
#设置集群自动发现机器ip集合
discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
节点三
#集群名称,保证唯一
cluster.name: es-cluster
#节点名称,必须不一样
node.name: node-3
#必须为本机的ip地址
network.host: 127.0.0.1
#服务端口号,在同一机器下必须不一样
http.port: 9203
#集群间通信端口号,在同一机器下必须不一样
transport.tcp.port: 9303
#设置集群自动发现机器ip集合
discovery.seed_hosts: ["127.0.0.1:9301","127.0.0.1:9302","127.0.0.1:9303"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
分别启动三个节点,需要等待一会,然后访问如下地址
image.png
集群成功。
4.kibana单机
kibana单机也一样简单,这里演示连接集群,仅需修改配置文件kibana.yml文件中的一个属性。
elasticsearch.hosts: ["http://localhost:9201","http://localhost:9202","http://localhost:9203"]
访问地址
出现界面就标识访问成功
5.总结
部署这套集群环境碰上了一些问题,花费了一些时间才处理成功,总结如下
- 一开始es采用单机模式启动,生成了单机模式的data文件,集群的时候要删除
- es的配置参考搜索的内容,由于版本不一致,配置参数不一样,导致集群一致无法正常启动,神奇的问题是一开始居然提示集群成功,为kibana的启动失败问题买下了伏笔
- kibana启动失败,日志显示创建索引失败,缺少经验,没有发现是es集群的问题,而es的集群提示居然是成功的,这里花费了较多时间排查问题
最终成功的操作是重新es做了一次集群,删除了es的data文件,重新生成。