ElasticSearch消失/崩溃 - 无法找到日志文件或任何其他信息

时间:2013-03-05 00:35:21

标签: amazon-ec2 elasticsearch

我在EC2服务器上运行ElasticSearch。我无法理解ElasticSearch的日志/调试。

有时候,服务在运行好几天后会消失(我希望它会崩溃)。例如:

# curl -XGET http://localhost:9200/
curl: (7) couldn't connect to host

根据this ElasticSearch page,我预计我的日志会在/var/log/elasticsearch中提供...但是......

# ls /var/data/elasticsearch
ls: /var/data/elasticsearch: No such file or directory

我没有以任何方式更改/config/logging.yml文件。 ElasticSearch以root身份运行,因此权限应该没有问题。

我错过了什么?


根据imotov的回复,我发现我的日志文件位于/root/elasticsearch/elasticsearch-0.20.5/logs ......但正如他预测的那样,它们非常无益。

我检查了我的Java版本:

java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) 64-Bit Server VM (build 14.0-b16, mixed mode)

看起来这是一个非常古老的版本,我正在努力升级它。

我还看了一下我的记忆图

enter image description here

我们可以看到在ES死亡之前有一个奇怪的尖峰。我想在这里发现消息来源。唯一的其他过程应该是节点;它们的上限分别为4Gb和1.2Gb(一旦ES死亡,只剩下节点,RAM就会下降到1.2Gb,你可以看到)。因此要么ElasticSearch超过它的4Gb,要么其他东西导致内存飙升......

FWIW,我正在使用m1.large实例(8GB RAM)。

2 个答案:

答案 0 :(得分:32)

如果您运行相对较新版本的elasticsearch,您应该能够通过运行以下命令找到日志文件的位置

curl -s "localhost:9200/_nodes/_local/settings?pretty=true" | fgrep path.logs

但是如果elasticsearch突然消失,你很可能在这些日志中找不到任何东西。如果您运行的是旧版本的java(一年或更长时间),那么您的Java进程很可能会崩溃。当它发生时,JVM通常会在您的硬盘驱动器上留下名为 hs_err_pidXXXX.log 的文件(通常在Linux上的/tmp/。请查看是否可以找到并尝试将Java升级到最新版本。

弹性研究突然消失的第二个可能原因是oom-killer。当系统内存不足时,这是一个启动并杀死最大进程(在您的情况下为elasticsearch)的进程。检查系统日志和kern.log在上次时间弹性搜索消失的时间。如果你看到这样的消息

Out of memory: Kill process 1234 (java) score 567 or sacrifice child

您可能需要减少elasticsearch堆大小,以便为操作系统留出更多内存或升级到更大的实例。

答案 1 :(得分:1)

我遇到了同样的麻烦:

  • 更新的JAVA没有帮助
  • 从openJDK迁移到oracle没有改变任何内容
  • 内存消耗终于好了
  • 任何地方都没有错误消息,只是JVM随机崩溃

我的解决方案是删除sigar lib:

cd    
sudo mv /usr/share/elasticsearch/lib/sigar .
sudo service elasticsearch restart

因为,一切顺利,唯一的影响:我失去了CPU监控。 ElasticSearch 1.5.1在带有Ubuntu 14.04(OpenVZ)的VPS上运行。

更新1:我仍然需要使用elasticsearch 1.5.2删除sigar lib

更新2:要弄清楚,在启动elasticsearch时添加这些选项:

-XX:HeapDumpPath = / java_pid.hprof

堆转储的目录或文件名的路径。管理。

-XX:-HeapDumpOnOutOfMemoryError

在抛出java.lang.OutOfMemoryError时将堆转储到文件。

将有助于调试

相关问题