ElasticSearch的ipv6改造
文章目录
前言
新浪科技讯 北京时间11月26日下午消息,据国外媒体报道,负责英国、欧洲、中东和部分中亚地区互联网资源分配的欧洲网络协调中心(RIPE NCC)近日宣布,全球所有43亿个IPv4地址已全部分配完毕,这意味着没有更多的IPv4地址可以分配给ISP(网络服务提供商)和其他大型网络基础设施提供商。
因此国内的服务进行ipv6改造是必然的。其中ElasticSearch的ipv6改造如文章内容所示。
一、服务器的ipv6准备工作
- 确定服务器是否分配了ipv6地址
执行ifconfig命令查网卡信息,信息中包含了global这一行的信息为ipv6地址。
ifconfig
![在这里插入图片描述](https://img-blog.csdnimg.cn/2fde18be89b144abb106a8e3d6bb21f6.png
- 如果查看没有ipv6地址需要申请并给服务器添加ipv6地址。
ipv6配置方法见连接:
https://blog.csdn.net/qq_26711103/article/details/103823918
3.在服务器的hosts文件中添加ipv6地址与主机名
主机名通过命令hostname获得
hostname
这里的ipv6不需要添加中括号。如果是elasticsearch集群,需要在这里添加其他部署elasticsearch服务器的主机名与地址
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
ipv6地址 主机名 当前主机的信息
ipv6地址 主机名 节点1的服务器信息
ipv6地址 主机名 节点2的服务器信息
ipv6地址 主机名 节点3的服务器信息
二、 修改ElasticSearch的config下的配置文件:elasticsearch.yml
cluster.name: ansible-es
node.name: node1
network.host: node01 #修改这里的network.host: 为你的主机名称
http.port: 9200
transport.tcp.port: 9300
discovery.seed_hosts: ['node01', 'node02', 'node03'] #修改这里的三个node*为你对应的elasticsearch集群对应的主机名
cluster.initial_master_nodes: ['node01', 'node02', 'node03'] #修改这里的三个node*为你对应的elasticsearch集群对应的主机名
gateway.recover_after_nodes: 1
bootstrap.memory_lock: true
bootstrap.system_call_filter : false
http.cors.enabled : true
http.cors.allow-origin : "*"
http.cors.allow-methods : OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type, Content-Length
# forbid auto create index
#path.data: /opt/ultrapower/esdata7
#indices.memory.index_buffer_size: 50%
#indices.memory.min_index_buffer_size: 96mb
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /config/certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /config/certs/elastic-certificates.p12
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: /config/certs/elastic-certificates.p12
xpack.security.http.ssl.truststore.path: /config/certs/elastic-certificates.p12
xpack.security.http.ssl.client_authentication: optional
三、验证是否ipv6启动,以及ipv6通信
代码如下(示例):
方式1
- 通过curl验证
如果开启了SSL认证和https认证需要添加密码与-K
curl http://node03:9200/_cat/nodes?v
#SSL认证与https认证
curl -u username:password 'https://node03:9200/_cat/nodes?v' -k
- 结果:
方式2
- 使用命令netstat -an|grep 9300 查看端口使用的地址
netstat -an|grep 9200
netstat -an|grep 9300
- 结果此处elasticsearch使用的端口为45070
错误总结
如果配置文件中的"network.host"配配置了::0也能达到在浏览器通过ipv6地址访问es的目的,但是在节点在加入集群时,仍然会是ipv4的地址。因此需要使用主机名进行更替。
总结
通过对服务器添加ipv6地址与修改elasticsearch的配置文件达到elasticsearch集群通过ipv6访问的目的。
ps:创作不易,多点赞,多评论,多收藏!