elasticsearch7外网访问与503错误解决方案

笔者安装的是elasticsearch7版本的,安装环境为centos7,配置的java为jdk11。

一、elasticsearch外网访问

这个问题困扰笔者许久,查阅相关资料才发现那人正在灯火阑珊处

解决方案如下:

  1. 相关配置文件的修改
    修改安装的elasticsearch文件下的config/elasticsearch.yml文件。添加:
network.http: 0.0.0.0                          #任意的IP地址均可以访问本机es
&
network.http: 196.128.31.133                   #仅输入本机的IP地址访问本机es
  1. centos防火墙设置
  • 方案一:外网访问es需要关闭es所在机子的防火墙。
    centos7 防火墙状态查看、关闭、打开命令:
firewall-cmd --state                                         #防火墙状态查看
systemctl stop firewalld.service                             #防火墙关闭
systemctl start firewalld.service                            #打开防火墙
  • 方案二:开启9200端口
# 查询9200端口是否开放
firewall-cmd --query-port=9200/tcp
# 开放9200端口
firewall-cmd --permanent --add-port=9200/tcp
# 移除9200端口
firewall-cmd --permanent --remove-port=9200/tcp
# 重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

二、ElasticSearch频繁报503错误

我报503错误的地方有两处:

  1. elasticsearch head连接不上elasticsearch;
  2. python的elasticsearch模块连接elasticsearch会报503错误。

这些问题的源头主要体现在config/elasticsearch.yml文件的配置问题。

解决方案如下:

  1. es配置文件添加
# 开启跨域访问支持,默认为false
http.cors.enabled: true
# 跨域访问允许的域名地址
http.cors.allow-origin: "*"
# 通过为 cluster.initial_master_nodes 参数设置符合主节点条件的节点的 IP 地址来引导启动集群
cluster.initial_master_nodes: ["node-1"]

备注:重点是node.namecluster.initial_master_nodes

  1. 笔者的config/elasticsearch.yml配置文件

笔者的认定master机子的IP地址不在下列discovery.zen.ping.unicast.hosts配置中。

cluster.name: supermarket   
node.name: node-main
http.port: 9200 
node.master: true
node.data: true
path.data: /home/software/elasticsearch/data
path.logs: /home/software/elasticsearch/logs
# discovery.zen.minimum_master_nodes: 2
# discovery.zen.ping_timeout: 3000s
# discovery.zen.ping.unicast.hosts: ["192.168.31.137","192.168.31.138"]
cluster.initial_master_nodes: ["node-main"]
transport.tcp.port: 9300 
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

你可能感兴趣的:(elasticsearch7外网访问与503错误解决方案)