外网配置elasticsearch集群

最近在学习elasticsearch,准备在之前的三台云服务器上搭建elasticsearch集群,可是集群直接连接总是连接不通

org.elasticsearch.transport.ConnectTransportException: [node-1][172.21.0.8:9300] connect_timeout[30s]
	at org.elasticsearch.transport.TcpChannel.awaitConnected(TcpChannel.java:163) ~[elasticsearch-6.1.1.jar:6.1.1]
	at org.elasticsearch.transport.TcpTransport.openConnection(TcpTransport.java:615) ~[elasticsearch-6.1.1.jar:6.1.1]
	at org.elasticsearch.transport.TcpTransport.connectToNode(TcpTransport.java:513) ~[elasticsearch-6.1.1.jar:6.1.1]
	at org.elasticsearch.transport.TransportService.connectToNode(TransportService.java:327) ~[elasticsearch-6.1.1.jar:6.1.1]
	at org.elasticsearch.transport.TransportService.connectToNode(TransportService.java:314) ~[elasticsearch-6.1.1.jar:6.1.1]
	at org.elasticsearch.discovery.zen.ZenDiscovery.joinElectedMaster(ZenDiscovery.java:515) [elasticsearch-6.1.1.jar:6.1.1]
	at org.elasticsearch.discovery.zen.ZenDiscovery.innerJoinCluster(ZenDiscovery.java:483) [elasticsearch-6.1.1.jar:6.1.1]
	at org.elasticsearch.discovery.zen.ZenDiscovery.access$2500(ZenDiscovery.java:90) [elasticsearch-6.1.1.jar:6.1.1]
	at org.elasticsearch.discovery.zen.ZenDiscovery$JoinThreadControl$1.run(ZenDiscovery.java:1253) [elasticsearch-6.1.1.jar:6.1.1]
	at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:568) [elasticsearch-6.1.1.jar:6.1.1]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_102]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_102]
	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_102]

可以看到从节点连接主节点时用的是内网IP,要是能改为外网IP应该就好了,可我在网上怎么也找不到如何配置。
后来查找elasticsearch配置文档终于找到了解决方法。
之前配置ip时使用的是
network.host: 192.168.1.102
这样设置不会区分机器连接自己和同其他节点交互的IP地址
改为使用
network.bind_host: 192.168.1.111 #设置绑定的ip地址,这里使用内网ip
network.publish_host: 131.132.157.121 #设置其它节点和该节点交互的ip地址,把他设置为外网IP

完整配置方法:

  • 主节点:修改配置文件/opt/module/elasticsearch-5.2.2/config/elasticsearch.yml

[itstar@bigdata101 config]$ pwd
/opt/module/elasticsearch-5.6.1/config
[itstar@bigdata101 config]$ vi elasticsearch.yml

# ---------------------------------- Cluster -------------------------------------
#集群名称,可以随便起,但需要集群中所有机器的集群名称相同
cluster.name: my-application					
# ------------------------------------ Node --------------------------------------
#节点别名,用于在日志中区分机器,也可以随便起,只要和集群这其他节点名字不同即可
node.name: node-102
node.master: true
node.data: true
# ----------------------------------- Paths ---------------------------------------
#数据存储目录
path.data: /opt/module/elasticsearch-5.6.1/data
#日志存储目录
path.logs: /opt/module/elasticsearch-5.6.1/logs
# ----------------------------------- Memory -----------------------------------
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
# ---------------------------------- Network ------------------------------------
#设置绑定的ip地址,**这里使用****内网ip******
network.bind_host: 192.168.1.111 					
 #设置其它节点和该节点交互的ip地址,**把他设置为外网IP**
network.publish_host: 131.132.157.121        

# --------------------------------- Discovery ------------------------------------
#定义集群去哪里找
discovery.zen.ping.unicast.hosts: ["bigdata101"]

(1)cluster.name
如果要配置集群需要两个节点上的elasticsearch配置的cluster.name相同,都启动可以自动组成集群,这里如果不改cluster.name则默认是cluster.name=my-application,
(2)nodename随意取但是集群内的各节点不能相同
(3)修改后的每行前面不能有空格,修改后的“:”后面必须有一个空格

  • 配置linux系统环境
	(1)编辑limits.conf 添加类似如下内容
[itstar@hadoop102 elasticsearch-5.6.1]$ sudo vi /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
	(2)进入limits.d目录下修改配置文件。
[itstar@hadoop102 elasticsearch-5.6.1]$ sudo vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc 1024
#修改为
* soft nproc 4096
	(3)修改配置sysctl.conf
[itstar@hadoop102 elasticsearch-5.6.1]$ sudo vi /etc/sysctl.conf 
添加下面配置:
vm.max_map_count=655360
并执行命令:
[itstar@hadoop102 elasticsearch-5.6.1]$ sudo sysctl -p
然后,重新启动elasticsearch,即可启动成功。(注意:不能在root用户下启动!!)
  • 其他机器
    将主节点配置好的elasticsearch通过scp复制到其他节点
    (1)修改Elasticsearch配置信息
    修改几个配置:
    node.name: node-102
    node.master: false
    node.data: true

    network.bind_host: 192.168.1.112
    network.publish_host: 131.132.157.191
    (2)修改Linux相关配置信息(同主节点)

使用$ curl http://bigdata102:9200 命令查看启动是否成功

发布了9 篇原创文章 · 获赞 4 · 访问量 4003
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览