2017-02-24 69 views
2

我试图运行这个命令:误差elasticsearch_http Logstash

input { 
    twitter { 
     # add your data 
     consumer_key => "shhhhh" 
     consumer_secret => "shhhhh" 
     oauth_token => "shhhhh" 
     oauth_token_secret => "shhhhh" 
     keywords => ["words"] 
     full_tweet => true 
    } 
} 
output { 
    elasticsearch_http { 
     host => "shhhhh" 
     index => "idx_ls" 
     index_type => "tweet_ls" 
    } 
} 

这是我得到的错误:

Sending Logstash's logs to /usr/local/Cellar/logstash/5.2.1/libexec/logs which is now configured via log4j2.properties 
[2017-02-24T04:48:03,060][ERROR][logstash.plugins.registry] Problems loading a plugin with {:type=>"output", :name=>"elasticsearch_http", :path=>"logstash/outputs/elasticsearch_http", :error_message=>"NameError", :error_class=>NameError, :error_backtrace=>["/usr/local/Cellar/logstash/5.2.1/libexec/logstash-core/lib/logstash/plugins/registry.rb:221:in `namespace_lookup'", "/usr/local/Cellar/logstash/5.2.1/libexec/logstash-core/lib/logstash/plugins/registry.rb:157:in `legacy_lookup'", "/usr/local/Cellar/logstash/5.2.1/libexec/logstash-core/lib/logstash/plugins/registry.rb:133:in `lookup'", "/usr/local/Cellar/logstash/5.2.1/libexec/logstash-core/lib/logstash/plugins/registry.rb:175:in `lookup_pipeline_plugin'", "/usr/local/Cellar/logstash/5.2.1/libexec/logstash-core/lib/logstash/plugin.rb:129:in `lookup'", "/usr/local/Cellar/logstash/5.2.1/libexec/logstash-core/lib/logstash/pipeline.rb:452:in `plugin'", "(eval):12:in `initialize'", "org/jruby/RubyKernel.java:1079:in `eval'", "/usr/local/Cellar/logstash/5.2.1/libexec/logstash-core/lib/logstash/pipeline.rb:98:in `initialize'", "/usr/local/Cellar/logstash/5.2.1/libexec/logstash-core/lib/logstash/agent.rb:246:in `create_pipeline'", "/usr/local/Cellar/logstash/5.2.1/libexec/logstash-core/lib/logstash/agent.rb:95:in `register_pipeline'", "/usr/local/Cellar/logstash/5.2.1/libexec/logstash-core/lib/logstash/runner.rb:264:in `execute'", "/usr/local/Cellar/logstash/5.2.1/libexec/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:67:in `run'", "/usr/local/Cellar/logstash/5.2.1/libexec/logstash-core/lib/logstash/runner.rb:183:in `run'", "/usr/local/Cellar/logstash/5.2.1/libexec/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:132:in `run'", "/usr/local/Cellar/logstash/5.2.1/libexec/lib/bootstrap/environment.rb:71:in `(root)'"]} 
[2017-02-24T04:48:03,073][ERROR][logstash.agent   ] fetched an invalid config {:config=>"input { \n twitter {\n  # add your data\n  consumer_key => \"shhhhh\"\n  consumer_secret => \"Shhhhhh\"\n  oauth_token => \"shhhh\"\n  oauth_token_secret => \"shhhhh\"\n  keywords => [\"word\"]\n  full_tweet => true\n }\n}\noutput { \n elasticsearch_http {\n  host => \"shhhhh.amazonaws.com\"\n  index => \"idx_ls\"\n  index_type => \"tweet_ls\"\n }\n}\n", :reason=>"Couldn't find any output plugin named 'elasticsearch_http'. Are you sure this is correct? Trying to load the elasticsearch_http output plugin resulted in this error: Problems loading the requested plugin named elasticsearch_http of type output. Error: NameError NameError"} 

我试过安装elasticsearch_http,但它似乎是一个包。香港专业教育学院还试图

logstash,插件安装logstash输入-elasticsearch 和 logstash-插件安装logstash - 输出 - elasticsearch

它没有安装,但得到了同样的错误。

完全新的logstash,所以这可能是非常简单的。 我想按照这个https://www.rittmanmead.com/blog/2015/08/three-easy-ways-to-stream-twitter-data-into-elasticsearch/

我试图瓦尔答案,并得到这个:

[2017-02-24T05:12:45,385][WARN ][logstash.outputs.elasticsearch] Attempted to resurrect connection to dead ES instance, but got an error. {:url=>#<URI::HTTP:0x4c2332e0 URL:http://shhhhh:9200/>, :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Elasticsearch Unreachable: [http://sshhhhhh:9200/][Manticore::ConnectTimeout] connect timed out"} 

我可以去到URL,我得到浏览器的响应,我把它设置开放权限所以我不是肯定会有什么问题。

回答

1

elasticsearch_http输出不再存在。您需要使用elasticsearch输出。

elasticsearch { 
    hosts => "localhost:9200" 
    index => "idx_ls" 
    document_type => "tweet_ls" 
} 
+0

试过了,它没有奏效。请参阅我的更新,谢谢! – Bren

+0

对不起,我复制/粘贴了错误的插件名称,请再试一次 – Val

+0

我看到了,并在我尝试时更改了它。 – Bren

0

只是一个除了@瓦尔的答案。如果你有你的hosts参数未经口岸什么:

output {   
     elasticsearch {   
      index => "idx_ls" 
      document_type => "tweet_ls" 
      hosts => "localhost"    
     } 
} 

默认ES运行在端口所以你不必明确设置它。

+0

我得到一个超时错误。 – Bren

+0

如果你没有指定端口,默认情况下会需要80个 – Val

+0

@Val哦,我认为ES通常运行在9200上。[看]在这里[https://www.elastic.co/guide/en/ elasticsearch/guide/current/_talking_to_elasticsearch.html#_restful_api_with_json_over_http) – Kulasangar