iptables 中的 ElasticSearch 端口

iptables 中的 ElasticSearch 端口

我已经设置了一个弹性搜索集群,其中包含两个数据节点、一个主节点和一个客户端节点kibana。我iptables在每个节点上禁用它来运行它。

现在我需要启用iptables,并且想知道需要在每个节点上打开哪些端口(9200、9300)以及在哪个方向(传入或传出或两者)。

我还需要知道需要在哪个节点上进行身份验证,只有客户端节点?

答案1

Elasticsearch 使用以下端口范围:

  • 9200-9300:Web API 连接。
  • 9300-9400:基础设施/节点通信

Elasticsearch 集群节点之间:

iptables -A INPUT -p tcp -s <source> --dport 9300:9400 -j ACCEPT

Master 和 Kibana 之间(客户端 > 服务器):

iptables -A INPUT -p tcp -s <source> --dport 9200 -j ACCEPT

Elasticsearch 默认使用 UDP 多播来发现网络上的其他节点以形成集群。您可以使用以下规则来启用

iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT

或者

或者,更好的选择(较大的集群从中受益更多)是通过切换到单播来最大限度地减少多播的干扰(请注意,某些云提供商不允许单播)

或者,您也可以使用以下命令定义自己的端口绑定配置运输

transport.profiles.default.port: 9300-9400
transport.profiles.default.bind_host: 10.0.0.1
transport.profiles.client.port: 9500-9600
transport.profiles.client.bind_host: 192.168.0.1
transport.profiles.dmz.port: 9700-9800
transport.profiles.dmz.bind_host: 172.16.1.2

相关内容