【问题标题】:using logstash to transport csv file to server使用 logstash 将 csv 文件传输到服务器
【发布时间】:2020-03-04 17:24:22
【问题描述】:

我目前正在学习使用大数据, 客户端:Windows 10 服务器端:CentOS7 elasticsearch、logstash 和 kibana 已安装在服务器端, 作为客户端,我可以通过http://10.64.2.246:5601/ 访问 kibana,一切都很酷。现在我想了解如何将数据从我的电脑传输到服务器端的 elasticsearch。我已经在客户端下载了logstash。

我已经从 kaggle 中准备了 2 列的数据。 我已经制作了我的conf文件

配置文件

input   {
    file    {
        path => "C:\Users\Charles\Desktop\DATA"
        start_position => "beginning"
        sincedb_path=>"/dev/null"
    }
}
filter  {
    csv     {
        separator=>","
        columns=>["Date","Price"]
    }
    mutate {convert =>["Price","float"]}
}
output{
    elasticsearch{
        host => "10.64.2.246"
        index=>"oil"
        document_type=>"minyaks"
    }
    stdout{}
}

这是我在客户端执行的 conf 文件的代码。

bin/logstash -f /Users/Charles/Desktop/DATA/logstash_oil.conf

这是显示的错误

Thread.exclusive is deprecated, use Thread::Mutex
Sending Logstash logs to C:/Users/Charles/Desktop/DATA/logstash-7.4.2/logs which is now configured via log4j2.properties
[2019-11-07T20:33:11,077][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2019-11-07T20:33:11,090][INFO ][logstash.runner          ] Starting Logstash {"logstash.version"=>"7.4.2"}
[2019-11-07T20:33:12,416][INFO ][org.reflections.Reflections] Reflections took 29 ms to scan 1 urls, producing 20 keys and 40 values
[2019-11-07T20:33:12,917][ERROR][logstash.outputs.elasticsearch] Unknown setting 'host' for elasticsearch
[2019-11-07T20:33:12,925][ERROR][logstash.agent           ] Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"Java::JavaLang::IllegalStateException", :message=>"Unable to configure plugins: (ConfigurationError) Something is wrong with your configuration.", :backtrace=>["org.logstash.config.ir.CompiledPipeline.<init>(CompiledPipeline.java:100)", "org.logstash.execution.JavaBasePipelineExt.initialize(JavaBasePipelineExt.java:60)", "org.logstash.execution.JavaBasePipelineExt$INVOKER$i$1$0$initialize.call(JavaBasePipelineExt$INVOKER$i$1$0$initialize.gen)", "org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:837)", "org.jruby.ir.runtime.IRRuntimeHelpers.instanceSuper(IRRuntimeHelpers.java:1156)", "org.jruby.ir.runtime.IRRuntimeHelpers.instanceSuperSplatArgs(IRRuntimeHelpers.java:1143)", "org.jruby.ir.targets.InstanceSuperInvokeSite.invoke(InstanceSuperInvokeSite.java:39)", "C_3a_.Users.Charles.Desktop.DATA.logstash_minus_7_dot_4_dot_2.logstash_minus_core.lib.logstash.java_pipeline.RUBY$method$initialize$0(C:/Users/Charles/Desktop/DATA/logstash-7.4.2/logstash-core/lib/logstash/java_pipeline.rb:26)", "org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:91)", "org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:90)", "org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:332)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:86)", "org.jruby.RubyClass.newInstance(RubyClass.java:915)", "org.jruby.RubyClass$INVOKER$i$newInstance.call(RubyClass$INVOKER$i$newInstance.gen)", "org.jruby.ir.targets.InvokeSite.invoke(InvokeSite.java:183)", "C_3a_.Users.Charles.Desktop.DATA.logstash_minus_7_dot_4_dot_2.logstash_minus_core.lib.logstash.pipeline_action.create.RUBY$method$execute$0(C:/Users/Charles/Desktop/DATA/logstash-7.4.2/logstash-core/lib/logstash/pipeline_action/create.rb:36)", "C_3a_.Users.Charles.Desktop.DATA.logstash_minus_7_dot_4_dot_2.logstash_minus_core.lib.logstash.pipeline_action.create.RUBY$method$execute$0$__VARARGS__(C:/Users/Charles/Desktop/DATA/logstash-7.4.2/logstash-core/lib/logstash/pipeline_action/create.rb)", "org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:91)", "org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:90)", "org.jruby.ir.targets.InvokeSite.invoke(InvokeSite.java:183)", "C_3a_.Users.Charles.Desktop.DATA.logstash_minus_7_dot_4_dot_2.logstash_minus_core.lib.logstash.agent.RUBY$block$converge_state$2(C:/Users/Charles/Desktop/DATA/logstash-7.4.2/logstash-core/lib/logstash/agent.rb:326)", "org.jruby.runtime.CompiledIRBlockBody.callDirect(CompiledIRBlockBody.java:136)", "org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:77)", "org.jruby.runtime.Block.call(Block.java:129)", "org.jruby.RubyProc.call(RubyProc.java:295)", "org.jruby.RubyProc.call(RubyProc.java:274)", "org.jruby.RubyProc.call(RubyProc.java:270)", "org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:105)", "java.lang.Thread.run(Unknown Source)"]}
warning: thread "Converge PipelineAction::Create<main>" terminated with exception (report_on_exception is true):
LogStash::Error: Don't know how to handle `Java::JavaLang::IllegalStateException` for `PipelineAction::Create<main>`
          create at org/logstash/execution/ConvergeResultExt.java:109
             add at org/logstash/execution/ConvergeResultExt.java:37
  converge_state at C:/Users/Charles/Desktop/DATA/logstash-7.4.2/logstash-core/lib/logstash/agent.rb:339
[2019-11-07T20:33:12,932][ERROR][logstash.agent           ] An exception happened when converging configuration {:exception=>LogStash::Error, :message=>"Don't know how to handle `Java::JavaLang::IllegalStateException` for `PipelineAction::Create<main>`", :backtrace=>["org/logstash/execution/ConvergeResultExt.java:109:in `create'", "org/logstash/execution/ConvergeResultExt.java:37:in `add'", "C:/Users/Charles/Desktop/DATA/logstash-7.4.2/logstash-core/lib/logstash/agent.rb:339:in `block in converge_state'"]}
[2019-11-07T20:33:12,954][FATAL][logstash.runner          ] An unexpected error occurred! {:error=>#<LogStash::Error: Don't know how to handle `Java::JavaLang::IllegalStateException` for `PipelineAction::Create<main>`>, :backtrace=>["org/logstash/execution/ConvergeResultExt.java:109:in `create'", "org/logstash/execution/ConvergeResultExt.java:37:in `add'", "C:/Users/Charles/Desktop/DATA/logstash-7.4.2/logstash-core/lib/logstash/agent.rb:339:in `block in converge_state'"]}
[2019-11-07T20:33:13,004][ERROR][org.logstash.Logstash    ] java.lang.IllegalStateException: Logstash stopped processing because of an error: (SystemExit) exit

需要有人向我解释一下。我按照 youtube 的说明进行操作,但讲师在本地进行。

谢谢。

【问题讨论】:

    标签: csv elasticsearch logstash logstash-configuration


    【解决方案1】:

    问题出在这一行:

    [2019-11-07T20:33:12,917][ERROR][logstash.outputs.elasticsearch] Unknown setting 'host' for elasticsearch
    

    所以你需要改变

        host => "10.64.2.246"
    

        hosts => "10.64.2.246"
    

    此外,由于您似乎使用的是 ES 7.4.2,因此您可以删除以下行为 document/mapping types are deprecated

    document_type=>"minyaks"
    

    【讨论】:

    • 感谢您的回复!!我现在得到不同的以下错误,[WARN][logstash.outputs.elasticsearch][main] Attempted to resurrect connection to dead ES instance,但出现错误。 {:url=>"10.64.2.246:9200", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Elasticsearch Unreachable: [10.64.2.246:9200/][Manticore::ConnectTimeout] connect timed out"}
    • 是的,这是因为 10.x IP 地址是私有 IP,您无法从 VPC 外部访问它们。您需要使用公共 IP 地址或通过堡垒主机访问您的 VPC。
    • 酷,很高兴它有帮助!
    • 客户端不需要logstash来推送日志,可以使用Filebeat,资源少,配置更简单。
    • 确实,从 Filebeat 7,2 开始,现在可以使用新的 decode_csv_fields processormutate/convert 过滤器可以通过 ingest convert processor 来实现
    猜你喜欢
    • 2013-05-01
    • 1970-01-01
    • 2014-01-12
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2013-10-05
    相关资源
    最近更新 更多