当前位置: 首页 > Linux

ElasticSearch6.4.0集群搭建

时间:2023-04-06 21:23:21 Linux

最近在学习ES相关的内容。为了方便自己使用,我在本地虚拟机上搭建了一个3节点的ES集群。搭建过程中遇到了很多坑,网上的资料也比较零散,所以把施工过程详细梳理出来发给大家参考。在搭建过程中,由于有两台虚拟机,所以有一种非常快速的方式,搭建一台,然后克隆虚拟机,然后修改即可快速完成。不过为了更熟悉整个过程,这个过程是针对每一个虚拟机一一进行的。操作。微信搜索公众号:“菜鸟风神记”,定期分享一线厂商常用的干货。1.软件及环境准备服务器环境CentOS6.9_64两个es-master:192.168.0.11es-slave:192.168.0.12注意:如果内存允许,给内存大一点,否则启动失败,本地测试可以be使用1.5-2G内存,es-master上要搭建两个节点,所以内存最好给2G以上。ES软件最新版ElasticSearch6.4.0下载地址:https://artifacts.elastic.co/...JDK软件jdk-8u161-linux-x64.tar.gz下载地址:http://download.oracle.com/ot...环境规划es-master包括两个节点:elasticesearch-node1,elasticesearch-node3es-slave包括一个节点:elasticesearch-node2修改服务器主机名,方便后续操作(1)在服务器192.168.0.11上运行:[root@localhost~]#hostnamees-master[root@localhost~]#vim/etc/sysconfig/network#修改以下内容:HOSTNAME=es-master#退出重新登录[root@localhost~]#logout(2)在服务器192.168.0.12上运行:[root@localhost~]#hostnamees-slave[root@localhost~]#vim/etc/sysconfig/network#修改以下内容:HOSTNAME=es-slave#退出重新登录[root@localhost~]#logout(3)为了后续操作方便,分别关闭es-master和es-slave服务器的防火墙[root@es-master~]#serviceiptablesstop[root@es-slave~]#serviceiptablesstop注意:生产环境不能直接关闭防火墙,可以添加防火墙规则,使EStcp端口对远程指定主机开放。2.JDK安装配置,在宿主机上下载es-master,解压到指定目录下[root@es-master~]#mkdir-pv/home/software[root@es-master~]#cd/home/software/[root@es-mastersoftware]#wgethttp://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz注意:如果没有网络,可以手动下载然后上传。[root@es-master软件]#mkdir-pv/usr/local/java[root@es-master软件]#tarxfjdk-8u181-linux-x64.tar.gz-C/usr/local/javahostes在-slave上的操作同上,略。配置环境变量,在es-master和es-slave上的配置过程是一样的,如下[root@es-mastersoftware]#vim/etc/profile#最后添加如下内容:JAVA_HOME=/usr/local/java/jdk1.8.0_181exportPATH=$PATH:$JAVA_HOME/bin#环境变量生效[root@es-master~]#source/etc/profile测试是否安装完成[root@es-master~]#java-versionjavaversion"1.8.0_161"#输出版本号,表示配置成功。3、ElasticSearch安装配置在es-master上的操作如下:下载并解压ElasticSearch6.4.0[root@es-master~]#cd/home/software/[root@es-master~]#wgethttps:///artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz[root@es-master软件]#tarxfelasticsearch-6.2.4.tar.gz-C/usr/local/[root@es-masterlocal]#mvelasticsearch-6.4.0elasticsearch-node1/#复制一份作为第二个es节点[root@es-masterlocal]#cp-relasticsearch-node1/elasticsearch-node3创建elk用户,并授权elasticsearch-node1和elasticsearch-node3toelk注意:由于elasticsearch在启动时不能直接以root用户启动,所以需要创建创建普通用户[root@es-masterlocal]#useraddelk[root@es-masterlocal]#chown-Relk:elkelasticsearch-node1/elasticsearch-node3/分别创建两个elasticsearch节点数据目录和日志目录[root@es-masterlocal]#mkdir-pv/data/{elasticsearch1,elasticsearch3}/{data,logs}[root@es-masterlocal]#chown-Relk:elk/data/{elasticsearch1,elasticsearch3}修改操作系统的内核配置文件sysctl.conf[root@es-masterlocal]#vim/etc/sysctl.conf#在配置文件末尾添加如下内容。NumberofownedVMAs(VirtualMemoryAreas)虚拟内存区域是虚拟地址空间的连续区域。在进程的生命周期中,只要程序试图映射内存中的文件、链接到共享内存段或分配堆空间,就会创建这些区域。当进程在线达到VMA但只能释放少量内存供其他内核进程使用时,操作系统会抛出内存不足错误。#使修改后的配置文件生效[root@es-masterlocal]#sysctl-p修改limits.conf文件#limits.conf:用于保护系统资源访问,类似于sysctl.conf,但limits.conf是Forusers,sysctl.conf是操作系统的。[root@es-masterlocal]#vim/etc/security/limits.conf#在文件末尾添加如下内容:elksoftnofile65536elkhardnofile131072elksoftnproc4096elkhardnproc4096修改elasticsearch-node1节点的配置文件jvm.options[root@es-masterlocal]#cdelasticsearch-node1/config/[root@es-masterconfig]#vimjvm.options修改下面两个options:-Xms512m#elasticsearch启动时jvm分配的初始堆内存大小-Xmx512m#elasticsearch启动后jvm允许的最大堆内存大小,生产环境可能需要增加。elasticsearch-node1节点的配置文件elasticsearch.yml[root@es-masterlocal]#vimelasticsearch-node1/config/elasticsearch.yml#修改以下几项#表示集群ID,同一集群多个节点使用相同IDcluster.name:elasticsearch#节点名node.name:"es-node1"#数据存放目录path.data:/data/elasticsearch1/data#log目录path.logs:/data/elasticsearch1/logs#nodeboundIP地址,节点会通知集群中的其他节点network.host:192.168.0.11#绑定网络接口监听,监听传入的请求,可以设置为IP地址或主机名network.bind_host:192.168。0.11#释放处地址,用于通知集群中的其他节点,以及与其他节点进行通信。如果不设置,可以默认自动设置。必须是已有的IP地址network.publish_host:192.168.0.11#对外提供服务的http端口,默认为9200http.port:9200#集群中master节点的初始列表,当master节点启动时,会使用这个列表来监控非主节点discovery.zen.ping.unicast.hosts:["192.168.0.11","192.168.0.12"]#below这个参数控制一个节点需要看到的主节点资格的最小数量才能在集群中运行。官方推荐值为(N/2)+1;#其中N是有master资格的节点数(在我们的例子中是3个,所以这个参数设置为2)#However:但是对于只有2个节点的情况,设置为2的话会有一些问题。一个节点宕机后,肯定连不上2台服务器。这点需要注意。但是Centos6不支持SecComp功能,启动时会报错,所以需要设置为falsebootstrap.memory_lock:falsebootstrap.system_call_filter:false修改elasticsearch-node3节点的配置文件jvm.options[root@es-masterlocal]#cdelasticsearch-node3/config/[root@es-masterconfig]#vimjvm.options修改以下两个选项:-Xms512m-Xmx512m修改配置文件elasticsearch-node3nodeelasticsearch.yml[root@es-masterlocal]#vimelasticsearch-node3/config/elasticsearch.yml#修改如下项cluster.name:elasticsearchnode.name:"es-node3"path.data:/data/elasticsearch3/datapath.logs:/data/elasticsearch3/logsnetwork.host:192.168.0.11网络。bind_host:192.168.0.11network.publish_host:192.168.0.11http.port:9201discovery.zen.ping.unicast.hosts:["192.168.0.11","192.168.0.12"]discovery.zen.minimum_master_nodes:2bootstrap:falselock_boot.system_call_filter:false至此,es-master上的配置操作就完成了。在es-slave上的操作如下:上传elasticsearch的安装包,然后解压重命名,就可以直接从es-master远程拉取了[root@es-slave~]#cd/home/software/[root@es-slave软件]#scp192.168.0.11:/home/software/elasticsearch-6.4.0.tar.gz./[root@es-slave软件]#tarxfelasticsearch-6.4.0.tar.gz-C/usr/local/创建elk用户并授权elasticsearch-node2给elk[root@es-slavelocal]#useraddelk[root@es-slavelocal]#chown-Relk:elkelkelasticsearch-node2创建数据目录并将目录的Changetheowner和group分配给elk用户,elkgroup[root@es-slavelocal]#mkdir-pv/data/elasticsearch2/{data,logs}[root@es-slavelocal]#chown-Relk:elk/data/elasticsearch2修改操作系统内核配置文件sysctl.conf[root@es-slavelocal]#vim/etc/sysctl.conf#在配置文件最后添加如下内容vm.max_map_count=655360[root@es-slavelocal]#sysctl-p修改limits.conf文件,可以直接从es-master配置中复制过来[root@es-masterlocal]#vim/etc/security/limits.conf#在文件末尾添加以下内容:elksoftnofile65536elkhardnofile131072elksoftnproc4096elkhardnproc4096修改配置文件jvm.options[root@es-slavelocal]#cdelasticsearch-node2/config/[root@es-slaveconfig]#vimjvm.options修改以下两个选项:-Xms512m-Xmx512m修改配置文件elasticsearch-node2nodeelasticsearch.yml[root@es-slavelocal]#vimelasticsearch-node2/config/elasticsearch.yml#修改如下项cluster.name:elasticsearchnode.name:"es-node2"path.data:/data/elasticsearch2/datapath.logs:/data/elasticsearch2/logsnetwork.host:192.168.0.12network.bind_host:192.168.0.12network.publish_host:192.168.0.12discovery.zen.ping.unicast.hosts:["192.168.0.11","192.168.0.12"]discovery.zen.minimum_master_nodes:2bootstrap.memory_lock:falsebootstrap.system_call_filteres-false配置服务器上的elasticsearch节点完成。4.启动ES集群。首先切换成elk用户,在es-slave服务器上启动elasticsearch-node2节点[root@es-slavelocal]#su-elk[elk@es-slave~]$cd/usr/local/elasticsearch-node2/bin/[elk@es-slavebin]$./elasticsearch-d注意:-d参数表示以后台进程启动,默认会在控制台输出日志。查看是否启动成功,可以通过查看进程和端口来判断是否启动成功。如果启动失败,可以查看日志找出原因[elk@es-slavebin]$ps-ef|grepelasticsearch[elk@es-slavebin]$lsof-i:9200注:在elasticsearch.yml配置文件指定的目录下测试日志文件是否可以访问[elk@es-slave~]$curl192.168.0.12:9200如果返回类似下面的结果,说明已经启动Normal:{"name":"es-node2","cluster_name":"elasticsearch","cluster_uuid":"gczyFNKrTe2YbEQmlg7-nw","version":{...},"tagline":"YouKnow,forSearch"}切换到es-master服务器,然后切换到elk身份,分别启动elasticSearch-node1节点和elasticsearch-node3节点[root@es-master~]#su-elk[elk@es-master~]$cd/usr/local/elasticsearch-node1/bin/[elk@es-masterbin]$./elasticsearch-d[elk@es-masterbin]$cd/usr/local/elasticsearch-node3/bin/[elk@es-masterbin]$./elasticsearch-d查看进程和端口判断是否启动成功#查看进程,可以看到具有两个节点的进程[elk@es-masterbin]$ps-ef|grepelasticsearch[elk@es-masterbin]$lsof-i:9200[elk@es-masterbin]$lsof-i:9300使用curl测试节点是否可以正常访问,方法同上,您需要验证elasticsearch-node1和elasticsearch-node3节点[elk@es-masterbin]$lsof-i:9300es-master~]$curl192.168.0.11:9200[elk@es-master~]$curl192.168.0.11:9300验证完成后启动ES集群。5、安装配置ES前端图形化操作工具。下载kibana并上传到es-master服务器。下载地址:https://artifacts。elastic.co/downloads/kibana/kibana-6.4.0-linux-x86_64.tar.gz解压,重命名[root@es-mastersoftware]#wgethttps://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-linux-x86_64.tar.gz[root@es-master软件]#tarxfkibana-6.4.0-linux-x86_64.tar.gz-C/usr/local[root@es-master软件]#cd/usr/local[root@es-masterlocal]#mvkibana-6.4.0-linux-x86_64kibana-6.4.0修改kibana配置文件kibana.yml[root@es-masterlocal]#cdkibana-6.4。0/config[root@es-masterconfig]#vimkibana.yml#修改以下内容:#对外服务监听端口server.port:5601#绑定可以访问5601端口服务的IP地址,0.0.0.0表示任意的地址可以不受防火墙限制访问。生产环境不要这样设置,不安全。server.host:"0.0.0.0"#默认值为主机名,表示kibana实例绑定的主机,可以是IP地址或主机名。server.name:"es-master"#服务用于处理ES请求的URLElasticsearch.url:"http://192.168.0.11:9200"#用于控制证书认证,可选值为full、none、certificate。由于这里没有证书,所以设置为null,否则启动时会提示错误。elasticsearch.ssl.verificationMode:none启动kibana[root@es-masterconfig]#cd/usr/local/kibana-6.4.0/bin#later平台进程启动,kibana默认以console模式启动,Ctrl+C退出[root@es-masterbin]#nohup./kibana&#查看日志是否正常启动[root@es-masterbin]#tail-f如果nohup.out正常启动,在浏览器端访问http://192.168.0.11:5601,可以看到图形化运行工具。至此,就可以愉快的开始ES的语法学习之旅了。ES语法学习可以参考:https://www.elastic.co/guide/...。6、停止ElasticSearch和kibana目前es和kibana的bin目录下没有停止ES服务和kibana服务的脚本。您可以使用kill-9pid来停止服务。停止ES服务[root@es-masterbin]#ps-ef|grep弹性搜索|grep-vgrep|awk'{print$2}'[root@es-masterbin]#kill-9pid[上一步输出的pid]stopKibanaservice[root@es-masterbin]#ps-ef|grep节点|grep-vgrep|grep-v弹性搜索|awk'{print$2}'[root@es-masterbin]#kill-9pid[上一步输出的pid]至此所有内容整理完毕,欢迎评论转发!以后更多文章会在个人网站更新,欢迎查看。另外还提??供了一些优秀的IT视频资料,可以免费下载!如有需要,请查看https://www.592xuexi.com