3

Python公式APIを使用してアクセスしたい2つのelasticsearchクラスター(ノードではない)があります。

各 Elasticsearch クラスターの構成ファイルでクラスター行を変更しました。

cluster.name: elasticsearch_prod
cluster.name: elasticsearch_traf

しかし、2 番目のクラスターに接続する方法が見つかりません。両方とも (ローカルで) 実行されています。

Python で Elasticsearch クライアント コンストラクターにパラメーターを渡すことができるようです 。 http://www.elasticsearch.org/blog/unleash-the-clients-ruby-python-php-perl/

また、elasticsearch-python のドキュメントには、特定のノードまたはホストに接続する方法が説明されていますが、特定のクラスターには接続されていません: http://elasticsearch-py.readthedocs.org/en/master/api.html#elasticsearch

es = Elasticsearch(cluster='elasticsearch_traf')

につながる

In [86]: es.cluster.stats()
Out[86]: {u'cluster_name': u'elasticsearch_prod', [...]

クラスターを別のマシンに配置したいので、別のインデックスを使用したくありません。

ありがとう

編集: 希望するクラスターからノードに接続しようとしましたが、動作させることができません。私の2つの実行中のノードはこれらの名前を持っています (auto :) )

'Jean Grey-Summers' (cluster_name: elasticsearch_prod)
'Sluk' (cluster_name: elasticsearch_traf)

しかし、私がしようとすると:

es = Elasticsearch(['Jean Grey-Summers'],sniff_on_start=True)

また

es = Elasticsearch(['Sluk'], sniff_on_start=True)

それは次のように出てきます:

TransportError: TransportError(N/A, 'Enable to sniff hosts.')

N / Aは、私が正しくやっていないと思わせます...

コメントで述べたように、部族を探しているわけではないと思います.2つのクライアントがそれぞれをローカルで実行されている1つの異なるクラスターに接続したいだけです

4

1 に答える 1