前言
配置集群只需要修改elasticsearch.yaml里面的集群相关的配置,然后将安装包按照相同的方式部署多个节点,就构建成集群了。
# 集群名称(所有节点相同)
cluster.name: my-application
# 节点名称(每个节点自己的名字)
node.name: node-1
#集群包含的节点,可以使用IP地址、可以使用主机名(必须可以解析)。
discovery.zen.ping.unicast.hosts: ["192.168.60.201", "192.168.60.202","192.168.60.203"]
# 设置在集群中的所有节点名称,这个节点名称就是之前所修改的,当然你也可以采用默认的也行(单机,放入一个节点即可)。
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
# 为了避免脑裂,集群节点数最少为 半数+1
discovery.zen.minimum_master_nodes: 2
部署完之后,通过下面的连接检查是否安装成功,成功会显示节点信息
[http://172.27.104.24:9200/_cat/nodes](http://172.27.104.24:9200/_cat/nodes)
1、下载
https://www.elastic.co/guide/en/elasticsearch/reference/7.8/install-elasticsearch.html
2、解压
解压elasticsearch-7.8.0-linux-x86_64.tar.gz到/usr/local/目录:
# tar -zxvf elasticsearch-7.8.0.tar.gz -C /usr/local/
3、创建es用户
如果使用root用户启动elasticsearch,会报 can not run elasticsearch as root,故创建es用户及用户组来运行elasticsearch
# groupadd es #新建一个es的用户组
# useradd -g es es #在es用户组下面建立一个es的用户
# passwd es #修改用户密码
在es用户目录/home/es下创建data,logs文件夹,用于存放es数据和es日志
4、配置elasticsearch.yml
# vim /usr/local/elasticsearch7.8.0/config/elasticsearch.yml
# 数据和日志的存储目录,个人觉得放在es用户目录下较好,其实可以随便放在哪
path.data: /home/es/elasticsearch-7.8.0/data
path.logs: /home/es/elasticsearch-7.8.0/logs
# 设置绑定的ip,设置为0.0.0.0以后就可以让任何计算机节点访问到了
network.host: 0.0.0.0
# 端口
http.port: 9200
# 支持跨域,跨域配置是为了kibana,head连接
http.cors.enabled: true
http.cors.allow-origin: "*"
# 设置为true锁住内存,当服务混合部署了多个组件及服务时,应开启此操作,允许es占用足够多的内存。
bootstrap.memory_lock: false
# es优化,是否支持过滤掉系统调用
bootstrap.system_call_filter: false
#集群配置中最重要的两项是node.name与network.host,每个节点都必须不同。其中node.name是节点名称主要是在Elasticsearch自己的日志加以区分每一个节点信息。
# 集群名称
cluster.name: my-application
# 节点名称
node.name: node-1
#discovery.zen.ping.unicast.hosts是集群中的节点信息,可以使用IP地址、可以使用主机名(必须可以解析)。
discovery.zen.ping.unicast.hosts: ["192.168.60.201", "192.168.60.202","192.168.60.203"]
# 设置在集群中的所有节点名称,这个节点名称就是之前所修改的,当然你也可以采用默认的也行(单机,放入一个节点即可)。
cluster.initial_master_nodes: ["node-1","node-2","node-3"]
# 为了避免脑裂,集群节点数最少为 半数+1
discovery.zen.minimum_master_nodes: 2
--------------------------elasticsearch.yml配置完成------------------------------------
5、配置jvm.options
elasticsearch使用java的jvm默认是使用1G的内存的,如果你机器的内存过小,启动可能会报错或者直接killed(es进程直接被杀),在jvm.options中将es使用内存调低即可,由于我实在太穷,买不起大内存服务器,所以索性调到128m,你如果有钱可以设置高点
-Xms128m
-Xmx128m
6、配置sysctl.conf
elasticsearch最小需要max_map_count为262144,而虚拟机默认只有65536。
加大vm.max_map_count(进程可以拥有的VMA(虚拟内存区域)的数量,虚拟内存区域是一个连续的虚拟地址空间区域)
# vim /etc/sysctl.conf
在sysctl.conf中添加
vm.max_map_count=262144
# sysctl -p #重启生效
--------------------------------sysctl.conf配置完毕-------------------------
配置原因:
1、资源问题:每个打开的文件都需要消耗内存来管理,而内存是有限的。
2、安全问题:如果不限制的话,有不怀好心的人启动一个进程来无限的创建和打开新的文件,会让服务器崩溃。
3、bootstrap.memory_lock: false;bootstrap.system_call_filter: false配置必须
限制资源使用的配置文件是 /etc/security/limits.conf,和/etc/security/limits.d/目录,/etc/security/limits.d/里面配置会覆盖/etc/security/limits.conf的配置
# vim /etc/security/limits.conf
es soft nproc 65536:单个用户可用的最大进程数量(超过会警告);
es hard nproc 65536:单个用户可用的最大进程数量(超过会报错);
es soft nofile 4096:可打开的文件描述符的最大数(超过会警告);
es hard nofile 4096:可打开的文件描述符的最大数(超过会报错);
# vim /etc/security/limits.d/20-nproc.conf
es soft nproc 4096
安装问题:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量
ulimit -Hn
ulimit -Sn
修改/etc/security/limits.conf文件,增加配置,用户退出后重新登录生效
* soft nofile 65536
* hard nofile 65536
7、启动
elasticsearch是不能用root启动,那我们切换es用户启动即可
(1)、先改elasticsearch7.8.0文件夹所属为es
# chown -R es:es /usr/local/elasticsearch-7.8.0/
(2)、切换es用户
# su es
(3)、启动elasticsearch
# cd /usr/local/elasticsearch-7.8.0
# ./elasticsearch -d # 加-d为后台启动
8、访问服务
访问地址服务http://xx.xx.xx.xx:9200/
{
"name" : "node-1",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "wWnUb6BFQWKNJXkQ_vgDIA",
"version" : {
"number" : "7.8.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
"build_date" : "2020-06-14T19:35:50.234439Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
9、安装kibana
(1)、下载kibana7.8.0到linux,解压
# tar -zxvf kibana-7.8.0-linux-x86_64.tar.gz -C /usr/local/kibana-7.8.0
(2)、配置kibana.yml
# vim /usr/local/kibana-7.8.0/config/kibana.yml
server.port: 5601 # kibana服务端口
server.host: "0.0.0.0" # 任何ip皆可访问
elasticsearch.url: "http://elasticsearch的ip:9201" # 连接elasticsearch
i18n.locale: "zh-CN" # 汉化
(3)、启动(/usr/local/kibana-7.8.0/bin)
# ./kibana
# 后台启动
# nohup ./kibana &
9、安装ik
下载ik的zip包,解压后放在/usr/local/elasticsearch/plugins/ik/下,重启elasticsearch即可
10、验证kibana与elasticsearch
PUT /book/1
{
"name":"《射雕英雄转》",
"type":"金庸武侠小说",
"price":35.8
}
GET _analyze
{
"analyzer": "ik_max_word",
"text": "中华人民共和国"
}
还有一个head插件,请读者自行安装,就是个前端项目,下载下来改下配置启动下就好了