我是 Logstash 新手,尝试按照“Logstash 手册”中的教程运行它。指南第 44 页建议跟踪 Logstash 进程的主日志文件 central.log。Logstash 启动约 2 分钟后,以下消息充斥在 central.log 文件中:
{:timestamp=>"2014-01-06T02:21:04.098000-0500", :message=>"Failed to flush outgoing items", :outgoing_count=>100, :exception=>org.elasticsearch.discovery.MasterNotDiscoveredException: waited for [30s], :backtrace=>
["org.elasticsearch.action.support.master.TransportMasterNodeOperationAction$3.onTimeout(TransportMasterNodeOperationAction.java:180)", "org.elasticsearch.cluster.service.InternalClusterService$NotifyTimeout.run(InternalClusterService.java:483)",
"java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)",
"java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)",
"java.lang.Thread.run(Thread.java:724)"], :level=>:warn}
此外,如果您对 Elastic Search 服务器执行 CURL 命令,您会收到以下信息:
[user@server ~]$ curl -XGET 'http://[elastic search host IP]:9200/_search?q=type:syslog&pretty=true'
{
"error" : "SearchPhaseExecutionException[Failed to execute phase [initial], No indices / shards to search on, requested indices are []]",
"status" : 503
}
关于我可能在这里配置错误的任何想法?
答案1
上周,我在按照《Logstash 手册》中概述的流程操作时遇到了这个错误。我的 Logstash 服务器日志文件中也充斥着“无法刷新传出项目”。我发现我没有下载正确版本的 ElasticSearch。独立 ElasticSearch 的版本必须与嵌入式 ElasticSearch 的版本匹配。
因为我有 1.3.3 版本的 logstash,所以我能够在这里找到 ElasticSearch 的版本号(就我而言,我必须使用 0.90.9 版本):
http://logstash.net/docs/1.3.3/outputs/elasticsearch
然后我去了 elasticsearch.org,点击了立即下载按钮,然后向下滚动,在下载和安装部分下面,在支持 Elasticsearch 按钮的左侧有一个过去版本的链接。
如果您使用的是旧版本的 Logstash,我不确定如何确定嵌入式 ElasticSearch 的版本。
总而言之,我通过更改我在 Logstash 管道中使用的独立 ElasticSearch 版本以匹配嵌入式 ElasticSearch 的版本来解决这个相同的错误。