600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 阿里云 腾讯云不同服务商不同机房配置elasticsearch集群

阿里云 腾讯云不同服务商不同机房配置elasticsearch集群

时间:2024-05-11 13:35:01

相关推荐

阿里云 腾讯云不同服务商不同机房配置elasticsearch集群

当初为了省钱双十一新用户优惠活动,搞了一台2核4g[阿里云](https://l.gushuji.site/aliyun),一台2核4g[腾讯云](https://l.gushuji.site/tencent)打算自己搭建微服务、分布式的项目,谁知道这是噩梦的开始.....学习es的使用之后,正好自己也有两台云服务器,那就开始es集群吧,因为是不同的运营商、不同的机房,只能通过外网进行es集群的互相访问,但是一直搭不起来,这个问题困扰了我三天,最后,瞎猫撞死耗子,es集群终于起来了tip:正常es的集群是同一厂商,同一机房,在解决这个问题时,我尝试买了一台一周的2核4g的[阿里云](https://l.gushuji.site/aliyun)和我的另一台[阿里云](https://l.gushuji.site/aliyun)做es集群,同样的配置,分分钟起来...好了,步入正题,下面开始分享一下我的es集群搭建及配置文件第一步: 毋庸置疑的是把服务器的端口号开放,在这一步时我在[腾讯云](https://l.gushuji.site/tencent)遇到了一个问题,最后发现就是因为这个问题导致我的集群一直搭建不起来,我的[腾讯云](https://l.gushuji.site/tencent)访问端口把es的开放了,但是防火墙没有打开,[腾讯云](https://l.gushuji.site/tencent)需要把防火墙打开,并且在防火墙把端口开放,下面是centos7开放端口的命令firewall-cmd --permanent --zone=public --add-port=9200-9200/tcpfirewall-cmd --permanent --zone=public --add-port=9300-9300/tcpfirewall-cmd --reload 第二步配置es的elasticsearch.yml文件第一个节点配置:#集群名称cluster.name: my-application##节点名称node.name: node-1#是不是有资格主节点node.master: true#是否存储数据node.data: true#最⼤集群节点数node.max_local_storage_nodes: 3#⽹关地址#network.host: 0.0.0.0##设置绑定的ip地址,**这里使用****内网ip******network.bind_host: 0.0.0.0#设置其它节点和该节点交互的ip地址,**把他设置为外网IP**network.publish_host: 139.196.228.177#端⼝http.port: 9200#内部节点之间沟通端⼝transport.tcp.port: 9300#es7.x 之后新增的配置,写⼊候选主节点的设备地址,在开启服务后可以被选为主节点discovery.seed_hosts: ["139.196.228.177:9300","122.152.193.118:9300"]#es7.x 之后新增的配置,初始化⼀个新的集群时需要此配置来选举mastercluster.initial_master_nodes: ["node-1","node-2"]

第二个节点配置信息:

cluster.name: my-application#节点名称node.name: node-2#是不是有资格主节点node.master: true#是否存储数据node.data: true#最⼤集群节点数node.max_local_storage_nodes: 3#⽹关地址#network.host: 0.0.0.0#设置绑定的ip地址,**这里使用****内网ip******network.bind_host: 0.0.0.0#设置其它节点和该节点交互的ip地址,**把他设置为外网IP**network.publish_host: 122.152.193.118#端⼝http.port: 9200#内部节点之间沟通端⼝transport.tcp.port: 9300#es7.x 之后新增的配置,写⼊候选主节点的设备地址,在开启服务后可以被选为主节点discovery.seed_hosts: ["139.196.228.177:9300","122.152.193.118:9300"]#es7.x 之后新增的配置,初始化⼀个新的集群时需要此配置来选举mastercluster.initial_master_nodes: ["node-1","node-2"]

第三个节点配置信息:

cluster.name: my-application#节点名称node.name: node-3#是不是有资格主节点node.master: false#是否存储数据node.data: true#最⼤集群节点数node.max_local_storage_nodes: 3#⽹关地址#network.host: 0.0.0.0#设置绑定的ip地址,**这里使用****内网ip******network.bind_host: 0.0.0.0#设置其它节点和该节点交互的ip地址,**把他设置为外网IP**network.publish_host: 122.51.51.246#端⼝http.port: 9200#内部节点之间沟通端⼝transport.tcp.port: 9300#es7.x 之后新增的配置,写⼊候选主节点的设备地址,在开启服务后可以被选为主节点discovery.seed_hosts: ["139.196.228.177:9300","122.152.193.118:9300"]#es7.x 之后新增的配置,初始化⼀个新的集群时需要此配置来选举mastercluster.initial_master_nodes: ["node-1","node-2"]

当然了,如果想管理方便的话需要kibana,下面我把kibana的配置也展示一下,配置文件kibana.yml的最下边加入

server.port: 5601server.host: "0.0.0.0"elasticsearch.hosts: ["http://139.196.228.177:9200"]kibana.index: ".kibana"

ok,配置好了马上要启动es了,到es的bin目录中, -d 表示后台运行

./elasticsearch -d

这个时候你的es是起不来的,我当时遇到了两个错误,第一个错误如下:

[-11-29T13:25:53,827][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-1] uncaught exception in thread [main]org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-7.2.0.jar:7.2.0]at org.mand.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-7.2.0.jar:7.2.0]at org.mand.main(Command.java:90) ~[elasticsearch-cli-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-7.2.0.jar:7.2.0]Caused by: java.lang.RuntimeException: can not run elasticsearch as rootat org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:172) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:349) ~[elasticsearch-7.2.0.jar:7.2.0]at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-7.2.0.jar:7.2.0]... 6 more

是你用root起的es,你需要在linux创建一个用户,并且分配目录权限

useradd testuser 创建用户testuserpasswd testuser 给已创建的用户testuser设置密码chown -R root:root /tmp 修改tmp目录所属用户为root,用户组为rootchown [-R]账户名 文件名 或者 chown [-R] 账户名:组名 文件名chmod -R 777 /tmp 修改 tmp 目录为可写权限这两个配置权限根据自己的情况选择吧

那第二个问题就是

ERROR: [2] bootstrap checks failed

解决方法:

编辑 /etc/security/limits.conf,追加以下内容;* soft nofile 65536* hard nofile 65536此文件修改后需要重新登录用户,才会生效编辑 /etc/sysctl.conf,追加以下内容:vm.max_map_count=655360保存后,执行:sysctl -p

接下来进入到kibana的bin目录中执行后台运行,这里执行完命令后输入exit,否则后台运行失败

nohup ../bin/kibana &

好了,至此es的集群搭建完成,本人也是小白,还希望有大神指教,谢谢

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。