这是logstash.err的错误:
连接失败:在/opt/logstash/vendor/bundle/jruby/1.9/gems/Faraday-0.9.0/lib/Faraday/adapter/net_http调用文件结束。rb:44 build_response at/opt/logstash/vendor/bundle/jruby/1.9/gems/faraday-0.9.0/lib/faraday/rack_builder。rb:139 run_请求位于/opt/logstash/vendor/bundle/jruby/1.9/gems/faraday-0.9.0/lib/faraday/connection。rb:377在/opt/logstash/vendor/bundle/jruby/1.9/gems/elasticsearch-transport-1.0.1/lib/elasticsearch/transport/transport/http/faraday执行_请求。rb:24拨打org/jruby/RubyProc。java:271在/opt/logstash/vendor/bundle/jruby/1.9/gems/elasticsearch-transport-1.0.1/lib/elasticsearch/transport/transport/base执行_请求。rb:187在/opt/logstash/vendor/bundle/jruby/1.9/gems/elasticsearch-transport-1.0.1/lib/elasticsearch/transport/transport/http/faraday执行_请求。rb:20在/opt/logstash/vendor/bundle/jruby/1.9/gems/elasticsearch-transport-1.0.1/lib/elasticsearch/transport/client执行_请求。rb:102在/opt/logstash/vendor/bundle/jruby/1.9/gems/elasticsearch-api-1.0.1/lib/elasticsearch/api/namespace/common执行_请求。rb:21 get_模板位于/opt/logstash/vendor/bundle/jruby/1.9/gems/elasticsearch-api-1.0.1/lib/elasticsearch/api/actions/index/get_模板。rb:24个模板_存在吗?at/opt/logstash/lib/logstash/outputs/elasticsearch/protocol。rb:132模板安装在/opt/logstash/lib/logstash/outputs/elasticsearch/protocol。rb:21寄存器位于/opt/logstash/lib/logstash/outputs/elasticsearch。rb:259分别位于org/jruby/RubyArray。java:1613 outputworker位于/opt/logstash/lib/logstash/pipeline。rb:220个start_输出位于/opt/logstash/lib/logstash/pipeline。rb:152
这是我的输出配置:
output {
elasticsearch {
host => "X.X.X.X"
port => "9300"
protocol => "http"
cluster => "elasticsearch_david"
}
}
没有连接问题,有什么想法吗?
tcpdump的进一步调查得出:
GET /_template/logstash HTTP/1.1
User-Agent: Faraday v0.9.0
Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept: */*
Connection: close
这是由于糟糕的配置:通过删除协议和端口来解决
output {
elasticsearch {
host => "X.X.X.X"
cluster => "elasticsearch_david"
}
问题在于端口和协议不匹配:
output {
elasticsearch {
host => "X.X.X.X"
port => "9300"
protocol => "http"
cluster => "elasticsearch_david"
}
}
您将协议设置为“http”,这将需要端口9200(ES用于http请求的默认端口),但将端口设置为9300,这是用于集群间通信的端口,通常与“节点”协议一起使用。
不幸的是,关于协议的默认设置,文档中存在矛盾:
协议
Value can be any of: "node", "transport", "http"
There is no default value for this setting.
选择用于与Elasticsearch对话的协议。
“节点”协议将作为普通的Elasticsearch节点连接到集群(但不会存储数据)。这允许您使用多播发现等东西。如果您使用节点协议,则必须允许在端口9300(或您配置的任何端口)上进行双向通信。
“传输”协议将连接到您指定的主机,并且不会在Elasticsearch集群中显示为“节点”。这在无法允许从Elasticsearch集群向外连接到此Logstash服务器的情况下非常有用。
“http”协议将使用Elasticsearch REST/http接口与Elasticsearch对话。
所有协议在与Elasticsearch交谈时都将使用批量请求。
java/jruby下的默认协议设置是“节点”。非java rubies上的默认协议是“http”
你最好的选择是根据你想做的事情将协议设置为“节点”、“http”或“传输”之一,并让logstash为你设置合适的端口:
output {
elasticsearch {
host => "X.X.X.X"
protocol => "http"
cluster => "elasticsearch_david"
}
看见http://logstash.net/docs/1.4.1/outputs/elasticsearch#protocol
我无法用logstash将数据加载到localhost上的弹性搜索节点...我想让logstash读取csv文件并将这些数据加载到弹性搜索。但是什么都不起作用,我只能读取我手动添加到弹性搜索中的数据,看起来logstash什么都不做。 我的logstash配置是: 我的csv文件是: “MyIndex”索引上没有新的内容出现!但我不知道为什么... 将logstash配置文件从不获取文件的“*.c
我试图使用docker容器创建一个弹性搜索安装。我只使用Elastic.io提供者的映像。 我不知道为什么,但logstash告诉我,他无法连接到带有此错误消息的ElasticSearch实例: 如果logstash真的得到了我的设置,有人能告诉我为什么他使用了一个坏的主机事件吗?
我想将json文件数据导入弹性搜索。这是我的logstash配置文件- 输入{file{type= 输出{stdout{codec= 这是我的json文件--- {"水果":"苹果","大小":"小","颜色":"红色" }, { "水果":"木瓜","大小":"大","颜色":"黄色"测试":"甜"} 我使用这个命令执行了上面的配置文件---- 但我在弹性搜索索引中得到了如下数据-- 请帮我获得
我开始构建一些非常简单的应用程序,我想我已经掌握了如何在android Studio中创建基础知识。我一辈子都搞不清楚的是为什么我不能把数据发送到我的firebase实时数据库。 这是一个非常简单的应用程序,我试图让它目前的工作(因为我不能在更丰富的一个)--只需要一个按钮,应该发送“你好,世界!”
我也有同样的问题: Logstash无法连接到弹性搜索 My/conf.d/logstash。形态: 错误: error_type= logstash在哪里选择这个ip地址?“本地主机:9200”
在elasticsearch和kibana中启用ssl通信工作良好,但logstash无法连接elasticsearch,但我可以卷曲elasticsearch urlhttps://localhost:9200也没有防火墙阻止,我已经生成了打开的ssl证书和密钥文件并保存在elasticsearch中 弹性搜索配置文件 logstash日志文件