虚拟机搭建ElasticSearch集群

参考文章:
https://elasticsearch.bookhub.tech/getting_started/install
https://www.cnblogs.com/cblogs/p/15215805.html
https://cloud.tencent.com/developer/article/2154915

单个结点

实验环境
VMware Workstation + Centos8(1台)
1. 下载Elasticsearch压缩包

下载地址
或通过命令行下载:

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.11.1-linux-x86_64.tar.gz

2. 解压文件

tar -xvf elasticsearch-7.11.1-linux-x86_64.tar.gz

3. 指定JDK版本
最新版的ElasticSearch需要JDK11版本,下载JDK11压缩包,并进行解压,虽然es自带了jdk,但最好还是单独配一下jdk。
修改环境配置文件
vi bin/elasticsearch-env
参照以下位置, 追加一行, 设置JAVA_HOME, 指定JDK11路径。

JAVA_HOME=/usr/local/etc/jdk-11

# now set the path to java
if [ ! -z "$JAVA_HOME" ]; then
  JAVA="$JAVA_HOME/bin/java"
else
  if [ "$(uname -s)" = "Darwin" ]; then
    # OSX has a different structure
    JAVA="$ES_HOME/jdk/Contents/Home/bin/java"
  else
    JAVA="$ES_HOME/jdk/bin/java"
  fi
fi

4. 从bin目录中启动Elasticsearch

cd elasticsearch-7.11.1/bin
./elasticsearch

注意:当前用户不能是root用户,且当前用户需要有相关目录的执行权限。通过以下命令赋予用户目录的权限。

sudo chown 用户名:用户名 -R elasticsearch-7.11.1 # -R表示递归赋予目录权限

5. 验证
输入以下命令验证是否启动成功。

curl -XGET 'http://localhost:9200/_cluster/state?pretty'

image

出现以上界面,表示启动成功。重点看一下关键字为nodes的里面的信息,这就是刚刚启动的一个结点。多个结点的话,需要进行配置,下面我们配置多个结点。

多个结点

实验环境
VMware Workstation + Centos8(2台)
1. 分别上传es安装包到两台虚拟机指定目录,并解压

tar -xvf elasticsearch-7.11.1-linux-x86_64.tar.gz

2.分别赋予每个安装目录用户权限

chown -R 用户名:用户名 elasticsearch-7.11.1

3.分别配置每个结点
编辑bin目录下的elasticsearch-env,配置es依赖的java版本,具体见上面单结点配置。
配置文件位于config目录下的elasticsearch.yml。
结点1

# 设置主结点 必须加这一步 否则集群不知道哪一个是主结点
cluster.initial_master_nodes: ["es-node-1"]
#集群名称
cluster.name: my-cluster

#节点名称
node.name: "es-node-1"

#指定集群主节点 只有一台虚拟机的话 不用加 加了反而报错
# cluster.initial_master_nodes: ["es-node-1"]

#定义1为主节点
node.master: true

#定义节点2节点3为数据节点
node.data: true

#访问的IP地址,0.0.0.0表示不限制,如果是多机器部署,填本机地址,比如192.168.xx.xx
network.host: 0.0.0.0
#访问端口号
http.port: 9200

#集群通讯端口号
transport.tcp.port: 9300

#所有节点的ip地址
discovery.zen.ping.unicast.hosts: ["192.168.29.128:9300", "192.168.29.128:9301"]

结点2

# 设置主结点 必须加这一步 否则集群不知道哪个是主结点
cluster.initial_master_nodes: ["es-node-1"]

#集群名称
cluster.name: my-cluster

#节点名称
node.name: "es-node-2"

#指定集群主节点 只有一台虚拟机的话 不用加 加了反而报错
# cluster.initial_master_nodes: ["es-node-1"]

#定义1为主节点
node.master: false

#定义节点2节点3为数据节点
node.data: true

#访问的IP地址,0.0.0.0表示不限制,如果是多机器部署,填本机地址,比如192.168.xx.xx
network.host: 0.0.0.0
#访问端口号
http.port: 9201

#集群通讯端口号
transport.tcp.port: 9301

#所有节点的ip地址
discovery.zen.ping.unicast.hosts: ["192.168.29.128:9300", "192.168.29.128:9301"]

4.分别启动两个结点
进入bin目录,执行./elasticsearch。
出现问题:
max virtual memory areas vm.max_map_count[65530] is too low, increase to at least[262144]错误信息
修改系统配置:
vim /etc/sysctl.conf
添加
vm.max_map_count=655360
执行生效
sysctl -p

输入以下命令查询ElasticSearch集群,或者使用POSTMAN发送GET请求。

curl -XGET 'http://localhost:9200/_cluster/state?pretty'

出现以下信息表示集群搭建成功(看到启动了两个节点,分别是es-node-1和es-node-2)
image

kibnan安装

Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。
1. 到官网下载,下载与es对应的版本,解压

tar -xvf kibana-7.11.1-linux-x86_64.tar.gz

2. 修改文件夹的所有者
Kibana启动不能使用root用户,所以需要用其他用户

chown -R 其他用户:其他用户 kibana-7.11.1-linux-x86_64

3. 修改配置文件
vim config/kibana.yml , 修改以下配置:

# 服务端口
server.port: 5601
# 服务地址
server.host: "0.0.0.0"
# elasticsearch服务地址
elasticsearch.hosts: ["http://192.168.29.128:9200"]

启动kibana

./kibana -q

启动的过程中,由于还需要配置一些系统文件,否则会报错,报错解决参考的一些文章如下:
https://blog.csdn.net/Fmuma/article/details/82818872
https://blog.csdn.net/lizz861109/article/details/112512422
https://cloud.tencent.com/developer/article/1811815
https://blog.csdn.net/u012069313/article/details/123376778

posted @ 2024-01-03 15:02  梦醒时风  阅读(128)  评论(0)    收藏  举报