【问题标题】:Logstash CSV is not workingLogstash CSV 不工作
【发布时间】:2014-04-24 12:48:08
【问题描述】:

我正在尝试读取 logstash 中的 CSV 数据,但有些原因,logstash 无法将字符串视为 csv 来拆分

logstash 配置

input {
    file {
        path => [ "/root/logstash/temp.csv" ]
        start_position => "beginning"
    }
}
filter {
    csv {
        columns => ['A','B','C','D','E']
    }
}

output {
    stdout { }
}

测试 CSV 文件

p,q,r,s,t

p,q,r,s,t

p,q,r,s,t

p,q,r,s,t

p,q,r,s,t

p,q,r,s,t

logstash 的输出

2014-04-23T13:26:53.415+0000 0.0.0.0 p,q,r,s,t

2014-04-23T13:26:53.416+0000 0.0.0.0 p,q,r,s,t

2014-04-23T13:26:53.416+0000 0.0.0.0 p,q,r,s,t

2014-04-23T13:26:53.417+0000 0.0.0.0 p,q,r,s,t

2014-04-23T13:26:53.417+0000 0.0.0.0 p,q,r,s,t

2014-04-23T13:26:53.418+0000 0.0.0.0 p,q,r,s,t

有人可以帮我解决这个问题吗?

1) 我尝试在列中用双引号替换单引号

2) 我尝试了不同的数据

我期待此链接https://blog.trifork.com/2014/01/28/using-logstash-elasticsearch-and-kibana-to-monitor-your-video-card-a-tutorial/中提到的列输出

【问题讨论】:

标签: csv logstash


【解决方案1】:

在输出中您需要指定编解码器。

例如,使用您的配置,

input {
   file {
       path => [ "/root/logstash/temp.csv" ]
       start_position => "beginning"
   }
}
filter {
    csv {
        columns => ['A','B','C','D','E']
    }
}

output {
    stdout { 
        codec => rubydebug
    }
}

添加编解码器,然后你就可以得到你想要的了。

{
   "message" => [
    [0] "p,q,r,s,t"
],
  "@version" => "1",
"@timestamp" => "2014-04-24T02:57:37.099Z",
         "A" => "p",
         "B" => "q",
         "C" => "r",
         "D" => "s",
         "E" => "t"
}

【讨论】:

  • 成功了。根据提到的链接,我期望标准输出也有柱状 o/p。谢谢。
  • @Ben,我也只是在发现 logstash,并且正在遵循相同的教程,我注意到在文件内容更改/更新之前,logstash 不会在控制台上打印任何内容。那么这是它必须工作的方式还是我错过了什么? - 我在 logstash 版本 1.4.2
  • Logstash 文件过滤器的默认设置将从末尾开始解析。您必须具体设置。仅供参考stackoverflow.com/questions/19546900/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-11
  • 1970-01-01
相关资源
最近更新 更多