Ошибка трассировки при запуске эластичного поиска и кибана на python - PullRequest
0 голосов
/ 07 марта 2020

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/urllib3/connection.py", line 157, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 84, in create_connection
    raise err
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/connection.py", line 74, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

У меня есть сообщение об ошибке выше. Мой python код (main.py) ниже. Я использую docker -композицию для реализации эластичного поиска и кибана. Что я должен исправить свой код? Моя проблема исходит от main.py или docker -compose.yml?

Мой main.py ниже.

from datetime import datetime
from elasticsearch import Elasticsearch


es = Elasticsearch()

doc = {
	'author': 'taqkarim',
	'text': 'Testing ElasticSearch',
	'timestamp': datetime(2012, 9, 16, 0, 0), # in the far past
}

# load a tweet into ES
res = es.index(index="test-index", doc_type='tweet', id=1, body=doc)
print(res['result'])

# query by id
res = es.get(index="test-index", doc_type='tweet', id=1)
print(res['_source'])

es.indices.refresh(index="test-index")

# search
res = es.search(index="test-index", body={"query": {"match_all":{}}})
print("Got %d Hits:" % res['hits']['total'])
for hit in res['hits']['hits']:
	print("%(timestamp)s %(author)s: %(text)s" % hit["_source"])

1 Ответ

0 голосов
/ 07 марта 2020

Вы должны явно указать хост и порт Elasticsearch следующим образом:

es = Elasticsearch([
    {'host': 'my-es-host', 'port': 9200},
])

Кроме того, убедитесь, что в вашем контейнере Elasticsearch открыт порт 9200, например,

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.6.1
    environment:
      .... some env vars
    ports:
      - 9200:9200
...