大家好,又见面了,我是你们的朋友全栈君。
安装包
自己自行准备,或者用我百度网盘的安装包,
ElasticSearch Logstash Kibana FileBeat :
链接: https://pan.baidu.com/s/1_Iv2R8pmYaHkoaOk_m8OuQ 提取码: 5ezt 复制这段内容 : 后打开百度网盘手机App,操作更方便哦
创建普通用户
ES不能使用root用户来启动,必须使用普通用户来安装启动。这里我们创建一个普通用户以及定义一些常规目录用于存放我们的数据文件以及安装包等。 创建一个es专门的用户(必须)
使用root用户在服务器执行以下命令:
代码语言:javascript复制先创建组, 再创建用户:
1)创建 elasticsearch 用户组
[[root@zjj102 ~]# groupadd elasticsearch
2)创建用户 zjj 并设置密码
[root@zjj102 ~]# useradd zjj
[root@zjj102 ~]# passwd zjj
3)# 创建es文件夹,
并修改owner为zjj用户
[root@zjj102 ~]# mkdir -p /usr/local/es
[root@zjj102 ~]# mkdir -p /usr/local/es/elasticsearch-7.6.1
4)用户es 添加到 elasticsearch 用户组
[root@zjj102 ~]# usermod -G elasticsearch zjj
#注意,如果没有elasticsearch-7.6.1文件夹就先创建一个
[root@zjj102 ~]# chown -R zjj /usr/local/es/elasticsearch-7.6.1
5)设置sudo权限
#为了让普通用户有更大的操作权限,我们一般都会给普通用户设置sudo权限,方便普通用户的操作
#三台机器使用root用户执行visudo命令然后为es用户添加权限
[root@zjj102 ~]# visudo
#在root ALL=(ALL) ALL 一行下面
#添加tlbaiqi用户 如下:
zjj ALL=(ALL) ALL
#添加成功保存后切换到tlbaiqi用户操作
[root@zjj102 ~]# su zjj
[zjj@zjj102 root]$
上传压缩包并解压
将es的安装包下载并上传到服务器的/usr/local/es 路径下,然后进行解压
使用zjj用户来执行以下操作,将es安装包上传到指定服务器,并使用es用户执行以下命令解压。
代码语言:javascript复制# 解压Elasticsearch
# 用zjj账号操作
su zjj
cd /usr/local/es
# 解压 /usr/local/es下的ElasticSearch安装包
tar -zvxf elasticsearch-7.6.1-linux-x86_64.tar.gz -C /usr/local/es/
修改配置文件
修改elasticsearch.yml
进入服务器使用zjj用户来修改配置文件
代码语言:javascript复制 cd /usr/local/es/elasticsearch-7.6.1/config
mkdir -p /usr/local/es/elasticsearch-7.6.1/log
mkdir -p /usr/local/es/elasticsearch-7.6.1/data
rm -rf elasticsearch.yml
vim elasticsearch.yml
其中 elasticsearch.yml 的内容是
注意 node.name 配置, 每个机器的配置不能是一样的.
代码语言:javascript复制# 配置集群名称,保证每个节点的名称相同,如此就能都处于一个集群之内了
cluster.name: zjj-es
# 每一个节点的名称,必须不一样
node.name: node1
path.data: /usr/local/es/elasticsearch-7.6.1/data
path.logs: /usr/local/es/elasticsearch-7.6.1/log
network.host: 0.0.0.0
# http端口(使用默认即可)
http.port: 9200
# 集群列表,你es集群的ip地址列表
discovery.seed_hosts: ["zjj101", "zjj102", "zjj103"]
# 启动的时候使用一个master节点
cluster.initial_master_nodes: ["node1"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
修改jvm.option
修改jvm.option配置文件,调整jvm堆内存大小
使用zjj用户执行以下命令调整jvm堆内存大小,每个人根据自己服务器的内存大小来进行调整。
当然也可以不调整
代码语言:javascript复制cd /usr/local/es/elasticsearch-7.6.1/config
vim jvm.options
-Xms2g
-Xmx2g
修改系统配置,解决启动时候的问题
由于现在使用普通用户来安装es服务,且es服务对服务器的资源要求比较多,包括内存大小,线程数等。所以我们需要给普通用户解开资源的束缚
普通用户打开文件的最大数限制
问题错误信息描述:
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错
三台机器使用root用户执行以下命令解除打开文件数据的限制,如果你用zjj用户访问的话可能没有权限.
su root 进入 root用户
sudo vi /etc/security/limits.conf
在最下面添加如下内容: 注意*不要去掉了
代码语言:javascript复制* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
此文件修改后需要重新登录用户,才会生效 ,
普通用户启动线程数限制
问题错误信息描述
max number of threads [1024] for user [es] likely too low, increase to at least [4096]
修改普通用户可以创建的最大线程数
max number of threads [1024] for user [es] likely too low, increase to at least [4096]原因:无法创建本地线程问题,用户最大可创建线程数太小解决方案:修改90-nproc.conf 配置文件。
三台机器使用root用户执行以下命令修改配置文件
代码语言:javascript复制如果是Centos6,执行下面的命令
sudo vi /etc/security/limits.d/90-nproc.conf
如果是Centos7,执行下面的命令
sudo vi /etc/security/limits.d/20-nproc.conf
找到如下内容:
代码语言:javascript复制* soft nproc 1024#修改为
* soft nproc 4096
操作完了再从root用户切换到zjj用户上
普通用户调大虚拟内存
错误信息描述:
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
调大系统的虚拟内存
原因:最大虚拟内存太小
每次启动机器都手动执行下。
三台机器执行以下命令
编辑 vim /etc/sysctl.conf,最后一行添加以下内容:vm.max_map_count=262144 保存后,执行:sysctl -p
代码语言:javascript复制vm.max_map_count=262144
执行完了 sysctl -p 之后看到 下面的输出和你配置的一样,说明配置成功了.
代码语言:javascript复制[root@zjj103 config]# sysctl -p
vm.max_map_count = 262144
启动ES服务
三台机器使用zjj用户执行以下命令启动es服务
先切换到 zjj用户,
代码语言:javascript复制# 切换用户
su zjj
# 后台启动es
nohup /usr/local/es/elasticsearch-7.6.1/bin/elasticsearch 2>&1 &
执行完了之后, 再执行 tail -f nohup.out 查看日志,如果没有错误日志的话, 几乎说明启动成功了.
或者使用 进入ElasticSearch安装的 bin目录 ,执行 ./elasticsearch -d , 这个命令也是后台启动的命令,执行完成之后需要去ElasticSearch的log目录下去看 日志
启动成功之后 即可看到es的服务进程,并且访问页面
代码语言:javascript复制[zjj@zjj101 log]$ jps -l
45733 org.elasticsearch.bootstrap.Elasticsearch
46744 sun.tools.jps.Jps
浏览器访问
代码语言:javascript复制http://zjj101:9200/?pretty
然后浏览器就会显示
代码语言:javascript复制{
"name" : "node1",
"cluster_name" : "zjj-es",
"cluster_uuid" : "UJHVhECxRye0OxsAbShzRg",
"version" : {
"number" : "7.6.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
"build_date" : "2020-02-29T00:15:25.529771Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
浏览器访问二号机器: http://zjj102:9200/?pretty 后浏览器显示内容
代码语言:javascript复制{
"name" : "node2",
"cluster_name" : "zjj-es",
"cluster_uuid" : "UJHVhECxRye0OxsAbShzRg",
"version" : {
"number" : "7.6.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
"build_date" : "2020-02-29T00:15:25.529771Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
浏览器访问 http://zjj103:9200/?pretty 之后,浏览器显示的结果
代码语言:javascript复制{
"name" : "node3",
"cluster_name" : "zjj-es",
"cluster_uuid" : "UJHVhECxRye0OxsAbShzRg",
"version" : {
"number" : "7.6.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
"build_date" : "2020-02-29T00:15:25.529771Z",
"build_snapshot" : false,
"lucene_version" : "8.4.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
如果启动失败了看日志
能够看到es启动之后的一些信息
注意:如果哪一台机器服务启动失败,那么就到哪一台机器的
代码语言:javascript复制/usr/local/es/elasticsearch-7.6.1/log
看 xxx-es.log 里面的内容
这个路径下面去查看错误日志
关闭Linux防火墙
永久性生效,重启后不会复原 开启: chkconfig iptables on 关闭: chkconfig iptables off 即时生效,重启后复原 开启: service iptables start 关闭: service iptables stop
注意:启动ES的时候出现 Permission denied
原因:当前的用户没有对XX文件或目录的操作权限
搭建使用Kibana查看ElasticSearch的状况
https://zjj1994.blog.csdn.net/article/details/121065281
搭建成功之后,在 Dev Tools 执行 GET _cat/health?v 查看集群情况
代码语言:javascript复制epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1635667141 07:59:01 zjj-es green 3 3 6 3 0 0 0 0 - 100.0%
说明 :
集群的状态(status):red红表示集群不可用,有故障。yellow黄表示集群不可靠但可用,一般单节点时就是此状态。green正常状态,表示集群一切正常。
节点数(node.total):节点数,这里是2,表示该集群有两个节点。
数据节点数(node.data):存储数据的节点数,这里是2。数据节点在Elasticsearch概念介绍有。
分片数(shards):这是12,表示我们把数据分成多少块存储。
主分片数(pri):primary shards,这里是6,实际上是分片数的两倍,因为有一个副本,如果有两个副本,这里的数量应该是分片数的三倍,这个会跟后面的索引分片数对应起来,这里只是个总数。
激活的分片百分比(active_shards_percent):这里可以理解为加载的数据分片数,只有加载所有的分片数,集群才算正常启动,在启动的过程中,如果我们不断刷新这个页面,我们会发现这个百分比会不断加大。
集群的状态(status):red红表示集群不可用,有故障。yellow黄表示集群不可靠但可用,一般单节点时就是此状态。green正常状态,表示集群一切正常。
节点数(node.total):节点数,这里是2,表示该集群有两个节点。
数据节点数(node.data):存储数据的节点数,这里是2。数据节点在Elasticsearch概念介绍有。
分片数(shards):这是12,表示我们把数据分成多少块存储。
主分片数(pri):primary shards,这里是6,实际上是分片数的两倍,因为有一个副本,如果有两个副本,这里的数量应该是分片数的三倍,这个会跟后面的索引分片数对应起来,这里只是个总数。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182435.html原文链接:https://javaforall.cn