【问题标题】:Logastash CSV Filter|ConvertLogstash CSV 过滤器|转换
【发布时间】:2016-04-27 18:54:55
【问题描述】:

面临从 csv 转换某些值的问题。 如果我只声明 one 转换例如 'id'=>'integer' 它工作正常。 如果我在下面的配置中添加另一个转换,它会崩溃....

    input {
        tcp {
            port => 5000
        }
        file {
              path => '/tmp/logstash/databases/1.csv'
              type => 'test'
              start_position => 'beginning'
          }
    }

    filter {
        csv {
            columns => ['Id','ElapsedRealTimeNanos','Accuracy','Altitude','Bearing','CreatedOn','Latitude','Longitude','Provider','Speed','Time']
            separator => ','
            convert => {'Accuracy' => 'float','id'=>'integer'}
        }
    }

    output {
        elasticsearch {
                hosts => 'elasticsearch:9200'
        }
        stdout{

        }
    }

错误:

{:timestamp=>"2016-04-27T18:49:51.881000+0000", 
:message=>"fetched an invalid config", 
:config=>"input {\n\ttcp {\n\t\tport => 5000\n\t}\n\tfile {\n 
path => '/tmp/logstash/databases/1.csv'\n          
type => 'test'\n          start_position => 'beginning'\n 
}\n}\n\nfilter {\n    csv {\n        
columns => ['Id','ElapsedRealTimeNanos','Accuracy','Altitude','Bearing','CreatedOn','Latitude','Longitude','Provider','Speed','Time']\n        
separator => ','\n\t\t\t\tconvert => {'Accuracy' => 'float','id'=>'integer'}\n    }\n}\n\noutput {\n\telasticsearch {\n\t\t\thosts => 'elasticsearch:9200'\n\t}\n\tstdout{\n\n\t}\n}\n\n", 
:reason=>"Expected one of #, {, } at line 16, column 38 (byte 391) after filter {\n    csv {\n       
columns => ['Id','ElapsedRealTimeNanos','Accuracy','Altitude','Bearing','CreatedOn','Latitude','Longitude','Provider','Speed','Time']\n        
separator => ','\n\t\t\t\tconvert => {'Accuracy' => 'float'", :level=>:error}

【问题讨论】:

  • 更新:使用 mutate 进行转换!

标签: csv logstash elastic-stack


【解决方案1】:

您可以将其用作:

...
convert => {
    'Accuracy' => 'float'
    'Id' => 'integer'
}
...

转换之间没有逗号。

您也可以使用 ----configtest 选项来检查您的配置文件是否有错误:

λ bin/logstash -f example.conf --configtest

【讨论】:

  • 感谢 alpert - 不再出错。但不幸的是,字符串没有被转换:/准确性保存为例如30.0
  • 更清楚一点:在 kibana 中,它显示“字符串”作为准确的类型
  • 删除logstash创建的索引和索引模板。删除标题表单 csv。它会创建数字格式异常。重新索引您的数据。这对我有用。另外id 必须是Id
猜你喜欢
  • 2021-03-15
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多