您需要更多硬件

您需要更多硬件

我有一个 Raspberry Pi 2(截至 2015 年 4 月的最新 Raspbian)设置,上周在测试网络上运行 ElasticSearch 和 Logstash(设置并不简单,但稳定运行了一周多!)。我今天重启了机器,但一直很难让它们再次运行;ES 和 LS 都可以独立运行,但当我尝试将 LS 输出推送到 ES 时,ES 实例会莫名其妙地死机。我的目标是让两者运行,并通过标准输出插件让 LS 将数据泵入 ES。

ElasticSearch [v1.5.0]

我认为这是核心问题所在。ES 可以通过 9200 端口启动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 的数据目录具有足够的空间、写入权限等。ESpath.data在加载时会在目录中创建子目录,但我不相信添加了任何内容,因为当我重新启动 ES 进程时,索引统计数据表明文档总数为零。

我现在很困惑,很失望,因为我需要的(或者至少找不到的)东西都没有被记录下来。有人知道这里可能发生了什么吗?

答案1

您需要更多硬件

您的 raspi 可能(明显)无法承担您的工作量。

我绝不是 Elasticstack 专家,但我已在多个测试场景中以及有限/轻量级生产环境中对其进行了设置。根据我的经验,虽然初始设置所需的资源相对较少,但随着索引数量的增长,系统会产生显著增加的磁盘 IO 和 CPU 负载。

在系统恢复分片时重启后,这一点尤其明显。如果您的索引不是太大,您可以考虑使用每月存储桶而不是默认的每日存储桶,这似乎在这方面有所帮助。

相关内容