ElasticSearch服务启动,但无法访问,并且不进行任何日志记录

时间:2018-09-19 20:02:12

标签: elasticsearch

Linux在Azure中的Ubuntu Ubuntu 16.04.3 VM上的ElasticSearch 6.2.2。它已经启动并运行良好,然后几天前重新启动计算机后,我根本无法启动ElasticSearch服务。通过增加jvm.options文件中的堆大小,可以在以下位置共享和解决此问题:(ElasticSearch Fails to Start on Ubuntu 16.04.3 - status=1 Failure)。

现在,我正在运行ElasticSearch服务,但我无法对其执行ping操作。我试图从VM内部(作为localhost:9200)和外部ping它(类似于我对其他ES盒进行调用并成功执行此操作的方式),但是我被告知Could Not Get Any Reponse(邮递员语法)。

使得无法诊断的部分没有任何内容被写入ElasticSearch日志!几天前,最后一次在/ var / log / elasticsearch上将任何内容写入任何日志是在我重新启动计算机之前。

我已经检查了elasticsearch.yml中的设置,所有这些似乎都与在不同位置的我们的另一个盒子中的elasticsearch.yml一致,该位置运行我们的Elasticsearch实例,而没有任何问题。

编辑:每个请求-此处的框不能正常工作的elasticsearch.yml文件在这里:http://s000.tinyupload.com/index.php?file_id=72318548245343478927为了比较起见,框内的elasticsearch.yml文件是http://s000.tinyupload.com/index.php?file_id=20127693354114612595可以正常工作,请注意,一个正常工作的节点有3个节点,而一个不正常工作的节点只有一个节点,因此两个节点之间会有一些 slight 差异。因此yml文件。

3 个答案:

答案 0 :(得分:1)

  1. 检查是否在elasticsearch.yml中定义了path.logs: /var/log/elasticsearch。添加此行(如果不存在)。
  2. 检查用户是否有权写入/ var / log / elasticsearch。更改文件的权限。 sudo chmod 777 /var/log/elasticsearch/*sudo chmod 777 /var/log/elasticsearch
  3. 打开/etc/init.d/elasticsearch并检查ES_PATH_CONF是否定义为ES_PATH_CONF="/etc/elasticsearch"
  4. 您可以尝试在/ etc / elasticsearch下的log4j2.properties上注释以下行。 logger.xpack_security_audit_logfile.name = org.elasticsearch.xpack.security.audit.logfile.LoggingAuditTrail logger.xpack_security_audit_logfile.level = info logger.xpack_security_audit_logfile.appenderRef.audit_rolling.ref = audit_rolling logger.xpack_security_audit_logfile.additivity = false
  5. 使用netstat -nultp | grep 9200并检查端口是否正在监听。

答案 1 :(得分:1)

问题出在ElasticSearch.yml文件中的那行显示为

"10.5.11.6""

最后的引号引起了整个问题。

对于任何可能受益的人,ElasticSearch.yml文件在空间,标点符号和大小写方面都是极其敏感的:即使某个地方的额外空间也可能导致整个服务崩溃。对elasticsearch.yml的编辑要非常勤奋。

答案 2 :(得分:0)

有多种调试方法:

1. Check if you have ES service running on that particular host via `ps -ef | grep elastic`
2. Look on which port es is listening (or not) ? via netstat 
3. it might be a case that your es is running and but is binding not to localhost but to the instance IP . You should be getting the hint on the elasticsearch.yaml 
4. Make sure your /usr/share/elasticsearch/elasticsearch.yaml is the file that is being picked up and not the default at /etc/elasticsearch.yaml
5. Configure logging in elasticsearch.yaml to the location

希望这有帮助吗?