问题重现
Elasticsearch版本:Elasticsearch6.2.2
Python版本:python2.7
报错详情:
2019-09-30 10:26:33 [ERROR] NotFoundError:
Traceback:
"/home/wedo/screen_api/__init__.py" line 113, in _process
self.process(*args, **kwargs)
"/home/wedo/screen_api/__init__.py" line 454, in wrapper
return func(handler, *args, **kwargs)
"/home/wedo/handlers/v1/demo_query.py" line 112, in process
queryResult = query.execute()
"/home/wedo/es_engine.py" line 242, in execute
es_out = es.search(",".join(self.indexs), body=query)
"/usr/local/lib/python2.7/dist-packages/elasticsearch/client/utils.py" line 76, in _wrapped
return func(*args, params=params, **kwargs)
"/usr/local/lib/python2.7/dist-packages/elasticsearch/client/__init__.py" line 636, in search
doc_type, '_search'), params=params, body=body)
"/usr/local/lib/python2.7/dist-packages/elasticsearch/transport.py" line 314, in perform_request
status, headers_response, data = connection.perform_request(method, url, params, body, headers=headers, ignore=ignore, timeout=timeout)
"/usr/local/lib/python2.7/dist-packages/elasticsearch/connection/http_urllib3.py" line 163, in perform_request
self._raise_error(response.status, raw_data)
"/usr/local/lib/python2.7/dist-packages/elasticsearch/connection/base.py" line 125, in _raise_error
raise HTTP_EXCEPTIONS.get(status_code, TransportError)(status_code, error_message, additional_info)
2019-09-30 10:26:33 [INFO] [HTTP] 500 GET /v1/demo_query?table=district&filter=pol%3D%E6%9C%88%E6%B5%A6%E9%95%87 (192.168.1.137) 196758.32ms ARGS:filter=['pol=\xe6\x9c\x88\xe6\xb5\xa6\xe9\x95\x87'], table=['district']
2019-09-30 10:26:33 [ERROR] [WEB-PLUGIN] [UNHANDLED-EXCEPTION] HTTPOutputError: Tried to write 2969 bytes less than Content-Length
Traceback:
"/home/wedo/python/tornado/web.py" line 1401, in _stack_context_handle_exception
raise_exc_info((type, value, traceback))
"/home/wedo/python/tornado/stack_context.py" line 314, in wrapped
ret = fn(*args, **kwargs)
"/home/wedo/screen_api/__init__.py" line 122, in _process
self.send_error(500, reason=msg)
"/home/wedo/python/tornado/web.py" line 978, in send_error
self.finish()
"/home/wedo/python/tornado/web.py" line 933, in finish
self.request.finish()
"/home/wedo/python/tornado/httputil.py" line 393, in finish
self.connection.finish()
"/home/wedo/python/tornado/http1connection.py" line 440, in finish
self._expected_content_remaining)
搞了好久,这里记录一下以供参考
解决问题
第一步
把生成的RESTfull语句复制到Kibana
里发现是可以的,
第二步
把要查询的索引库复制到Kibana
发现也是可以的,
第三步
最后调试发现是连接Elasticsearch
的IP地址和端口号变了,
总结
一开始的时候看到NotFoundError
还以为是因为索引库没有找到的原因呢,后来又try/catch
了一下发现还有一个报错,HTTPOutputError: Tried to write bytes less than Content-Length
因为我请求的内容和返回结果会非常非常长,看到这个错误的时候还以为自己的请求参数设置得不对呢,整了一晚上,最后发现是因为Elasticsearch的IP地址和端口号不对,
我这才想起来前天的时候同事说Elasticsearch
的配置变了,当时也没有当回事,结果今天的时候就出现了这么一档子事儿,
唉,粗心大意,不当回事啊!今天搞这么久就是这沉重的代价