elasticsearch多个nic绑定网络接口

时间:2015-04-27 10:15:44

标签: configuration elasticsearch network-programming nic

介绍

配置elasticsearch时遇到了绑定问题 听取界面。 不知何故,文档没有提供如何设置多个网络接口(network defbind def

问题描述

我的目的是将network.bind_host设置为_eth1:ipv4__local_

即使尝试仅将bind_host设置为_local_,  弹性搜索端口9200仍然只能通过eth1访问(当然我已经重新启动了服务器)

解决方案尝试

我已经通过设置netcat服务器测试了防火墙配置,这个服务器完全适用于该端口

所以这导致2个问题:

  1. 如何配置多个网卡? (记数法是什么?)
  2. 我需要更改network.publish_host吗?
    • 还有其他指示吗?

    当前配置:

    network.bind_host:    _eth1:ipv4_
    network.publish_host: _eth1:ipv4_
    network.host:         _eth1:ipv4_
    

    还测试了配置:

    network.bind_host:    _local_
    network.publish_host: _eth1:ipv4_
    network.host:         _local_
    

    PS: afaik,publish_host是服务器间通信的网站

1 个答案:

答案 0 :(得分:5)

  1. 使用YAML list获取所需的属性:

    network.bind_host:
      - _local_
      - _en0:ipv4_
    
  2. 如果我正确理解this answerpublish_host应为_eth1:ipv4_。您的publish_host必须是弹性搜索通过bind_host属性绑定的接口之一。

  3. 以上链接的答案实际上很棒,所以我必须在这里引用它:

      

    " bind_host" 是Elasticsearch节点在套接字中使用的主机   启动网络时绑定调用。由于套接字编程模型,   你可以"绑定"到一个地址。通过引用"地址",套接字   允许访问一个或所有底层网络设备。有   具有预定义语义的几个地址,例如, 0.0.0.0是保留的   for"绑定到所有网络设备"。所以" bind_host"地址没有   必然反映一个唯一的地址。

         

    " publish_host" 必须是唯一的唯一网络地址。它用于   连接其他节点的调用,而不是节点的套接字绑定调用   本身。通过使用" publish_host"所有节点和客户端都可以确定它们   可以连接到此节点。将此唯一地址声明为   外部可以解释为"发布",所以它被称为   " publish_host"

         

    你不能设置" bind_host"和" publish_host"任意值,   值必须遵循底层套接字模型。