我有一个Raspberry Pi 2(截至2015年4月的最新Raspbian)安装程序,上周在测试网络上同时运行ElasticSearch和Logstash(不是简单的安装程序,但稳定了一个星期!)。我今天重新启动了机器,在让事情重新运行方面一直非常困难。ES和LS都将独立运行,但是当我尝试将LS输出推入ES时,ES实例死掉了,没有任何解释。我的目标是通过标准输出插件将运行数据和LS数据都泵入ES。
ElasticSearch [v1.5.0]
我相信这是核心问题所在。ES可以通过启动service elasticsearch start
并保持运行状态,可以通过HTTP请求访问端口9200进行访问,并且一切正常的迹象似乎很正常。只要某种东西(据我所知,什么都可以)试图将数据写入索引,该进程就会死亡,并且调试日志@ / var / log / elasticsearch / *不包含任何与服务失败相关的信息。我试图通过logstash(请参见下文)以及curl插入,这两者都终止了ES进程。我正在运行的curl命令是curl -XPOST "http://localhost:9200/logstash-2015.04.05/records/" -d "{ \"type\" : \"specialRecord\" }"
。
Logstash [v1.4.2]
我目前正在使用此简单配置运行:
input {
stdin { }
}
output {
stdout { codec => rubydebug }
elasticsearch {
host => '127.0.0.1'
cluster => 'elasticsearch'
}
}
其他注意事项
我尝试过的一些事情:
我尝试将ElasticSearch的日志记录级别提高到DEBUG / TRACE,并且输出非常有趣。乐于提供日志(如果有帮助的话)。
我尝试给ES分别提供256MB和512MB的堆空间,这似乎没有任何影响。在所有这些过程中,我还观察到内存利用率,并且内存不足似乎不是问题。
我曾尝试禁用多播以尝试淘汰一些网络变量,但这似乎没有任何作用。
我已经确保ES的数据目录具有足够的空间,写入权限等。ES在
path.data
加载时会在目录中创建子目录,但是我不相信会添加任何内容,因为当我重新启动ES进程时,索引统计信息会提示:文件总数为零。
我现在很沮丧,感到失望的是我没有(或至少能够找到)什么都没有记录。关于这里可能会发生什么的任何想法?
hs_err_PID.log
)吗?ES 1.5使用名为Sigar的本地库进行监视,它可能与Raspberry的ARM有关。您可以尝试自己运行Sigar吗?我会尝试升级到不再使用Sigar的ES 1.5.2或ES 2.0。