【问题标题】:Logstash Pipeline abortedLogstash 管道中止
【发布时间】:2017-02-18 02:31:07
【问题描述】:

我不断收到此错误。我正在尝试解析 csv。文件。 我想知道我是否缺少图书馆或其他东西。

我在 windows 命令行中使用 logstash.bat -f logstash.conf 命令来运行它并得到这个输出。

我正在尝试使用 ruby​​debug 编解码器输出

21:19:03.781 [main] INFO  logstash.setting.writabledirectory - Creating directory {:setting=>"path.queue", :path=>"C:/Users/Public/logstash-5.2.1/data/queue"}

21:19:03.787 [LogStash::Runner] INFO  logstash.agent - No persistent UUID file found. Generating new UUID {:uuid=>"0546332b-dc4d-4916-b5c6-7900d1fdd8a4", :path=>"C:/Users/Public/logstash-5.2.1/data/uuid"}

21:19:04.138 [[main]-pipeline-manager] ERROR logstash.agent - Pipeline aborted due to error {:exception=>#<LogStash::ConfigurationError: translation missing: en.logstash.agent.configuration.invalid_plugin_register>, :backtrace=>["C:/Users/Public/logstash-5.2.1/vendor/bundle/jruby/1.9/gems/logstash-filter-mutate-3.1.3/lib/logstash/filters/mutate.rb:178:in `register'", "org/jruby/RubyHash.java:1342:in `each'", "C:/Users/Public/logstash-5.2.1/vendor/bundle/jruby/1.9/gems/logstash-filter-mutate-3.1.3/lib/logstash/filters/mutate.rb:172:in `register'", "C:/Users/Public/logstash-5.2.1/logstash-core/lib/logstash/pipeline.rb:235:in `start_workers'", "org/jruby/RubyArray.java:1613:in `each'", "C:/Users/Public/logstash-5.2.1/logstash-core/lib/logstash/pipeline.rb:235:in `start_workers'", "C:/Users/Public/logstash-5.2.1/logstash-core/lib/logstash/pipeline.rb:188:in `run'", "C:/Users/Public/logstash-5.2.1/logstash-core/lib/logstash/agent.rb:302:in `start_pipeline'"]}

日志中的单行:

80,17-02-2017 18:28:31,56.000,45.000,0.000,2.000,0.000,44.000,55.000,57.000,50.000

日志中的几行。

80,17-02-2017 18:28:31,56.000,45.000,0.000,2.000,0.000,44.000,55.000,57.000,50.000

80,17-02-2017 18:28:32,53.000,45.000,0.000,3.000,0.000,54.000,43.000,54.000,43.000

80,17-02-2017 18:28:33,56.000,45.000,0.000,2.000,0.000,45.000,51.000,43.000,50.000

80,17-02-2017 18:28:34,53.000,45.000,0.000,1.000,0.000,42.000,47.000,48.000,48.000

80,17-02-2017 18:28:35,59.000,45.000,0.000,2.000,0.000,45.000,59.000,39.000,48.000

80,17-02-2017 18:28:36,56.000,45.000,0.000,3.000,0.000,44.000,49.000,50.000,50.000

我的过滤器

filter {
     csv {
         columns => ["port", "timestamp", "tempcpuavg", "gputemp", "fanspeed", "gpuusage", "framerate", "tempcpu1", "tempcpu2", "tempcpu3", "tempcpu4"]
                     #80,   17-02-2017 18:28:31,56.000,    45.000,     0.000,      2.000,        0.000,     44.000,      55.000,   57.000,       50.000
         separator => ","
         skip_empty_columns => "true"
         remove_field => ["message"]
     }
     mutate {
         convert => ["port", "integer"]
         convert => ["tempcpuavg", "double"]
         convert => ["gputemp", "double"]
         convert => ["fanspeed", "double"]
         convert => ["gpuusage", "double"]
         convert => ["framerate", "double"]
         convert => ["tempcpu1", "double"]
         convert => ["tempcpu2", "double"]
         convert => ["tempcpu3", "double"]
         convert => ["tempcpu4", "double"]
     }

     date {
         match => [@timestamp", "MM-dd-YYYY HH:mm:ss"]
     }
 }

【问题讨论】:

  • 使用过滤器解析日志文件时发生错误。你能粘贴几行日志和你配置的过滤器吗?
  • 嘿,我添加了一行,然后一次添加了几行。此外,为清楚起见,我在日志行之间添加了额外的行。
  • 我还添加了过滤器。谢谢。

标签: csv elasticsearch logstash ruby-debug


【解决方案1】:

您的mutate/convert 过滤器使用了不受支持的数据类型,即doublemutate 过滤器的 documentation 声明

有效的转换目标是:整数、浮点数、字符串和布尔值。

所以您只需将所有double 更改为float

 mutate {
     convert => ["port", "integer"]
     convert => ["tempcpuavg", "float"]
     convert => ["gputemp", "float"]
     convert => ["fanspeed", "float"]
     convert => ["gpuusage", "float"]
     convert => ["framerate", "float"]
     convert => ["tempcpu1", "float"]
     convert => ["tempcpu2", "float"]
     convert => ["tempcpu3", "float"]
     convert => ["tempcpu4", "float"]
 }

【讨论】:

  • 嘿,仍然出现同样的错误。我还没有安装logst。在我的 Windows 电脑上。我只使用 logstash -f logstash.yml 在控制台中运行它。我想知道是否需要安装任何东西..
  • 嘿。我发现我的错误......我的数据中有 15 列,我试图摄取 16.. 抱歉浪费你的时间。但是在修复之后,我仍然没有看到任何输出......
  • 嘿,我创建了一个新帖子。 stackoverflow.com/questions/42336205/…
  • 在继续之前,我们应该关闭这个帖子吗?
  • 是的,我试图删除它,但它没有让我这样做,因为它附有正确的答案。谢谢。
猜你喜欢
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多