2017-06-14 2 views
1

:GROKフィルタを使用してCSV elasticsearch - logstash日付を使用して、インポートCSVは日時型のとして解析されていない私は、私は二つの方法使用して試してみましたlogstash を使用してelasticsearchにcsvファイルをインポートしようとしています

  • を使用して

    1. input { 
          file { 
          path => "path_to_my_csv.csv" 
          start_position => "beginning" 
          sincedb_path => "/dev/null" 
          } 
      } 
      filter { 
          csv { 
           separator => "," 
           columns => ["col1","col2_datetime"] 
          } 
          mutate {convert => [ "col1", "float" ]} 
          date { 
           locale => "en" 
           match => ["col2_datetime", "ISO8601"] // tried this one also - match => ["col2_datetime", "yyyy-MM-dd HH:mm:ss"] 
           timezone => "Asia/Kolkata" 
           target => "@timestamp" // tried this one also - target => "col2_datetime" 
          } 
      } 
      output { 
          elasticsearch { 
          hosts => "http://localhost:9200" 
          index => "my_collection" 
      
          } 
          stdout {} 
      } 
      
      :CSV用

    1)は、以下の私のlogstashファイルですGROKフィルタ使用

    2):私は、個々のファイルの両方を実行したときに

    だから、私はできる午前:以下GROKフィルタについて

    は私のlogstashファイルが問題

    input { 
        file { 
        path => "path_to_my_csv.csv" 
        start_position => "beginning" 
        sincedb_path => "/dev/null" 
        } 
    } 
    filter { 
        grok { 
        match => { "message" => "(?<col1>(?:%{BASE10NUM})),(%{TIMESTAMP_ISO8601:col2_datetime})"} 
        remove_field => [ "message" ] 
        } 
        date { 
         match => ["col2_datetime", "yyyy-MM-dd HH:mm:ss"] 
        } 
    } 
    output { 
        elasticsearch { 
        hosts => "http://localhost:9200" 
        index => "my_collection_grok" 
    
        } 
        stdout {} 
    } 
    

    ですelasticsearchでデータをインポートします。しかし、私の日付フィールドはdatetime型として解析されず、文字列として保存されているため、日付フィルタを実行することができません。

    誰かが、なぜそれが起こっているのか把握するのを助けることができます。 私のelasticsearchバージョンは5.4.1です。

    ありがとうございます。

  • +0

    あなたのCSVファイルからのew行? – shantanuo

    +0

    この 1234365,2016-12-02 19時00分52秒 1234368,2016-12-02 15時02分02秒 1234369,2016-12-02夜3時02分07秒 – pravindot17

    答えて

    0

    設定ファイルに加えた2つの変更点があります。

    1)は、列名col2_datetimeに

    2をunder_scoreを削除)ここで、目標

    を追加ここにあるどのように私のconfigファイルのルックのような...

    vi logstash.conf 
    
    input { 
        file { 
        path => "/config-dir/path_to_my_csv.csv" 
        start_position => "beginning" 
        sincedb_path => "/dev/null" 
        } 
    } 
    filter { 
        csv { 
         separator => "," 
         columns => ["col1","col2"] 
        } 
        mutate {convert => [ "col1", "float" ]} 
        date { 
         locale => "en" 
         match => ["col2", "yyyy-MM-dd HH:mm:ss"] 
         target => "col2" 
        } 
    } 
    output { 
        elasticsearch { 
        hosts => "http://172.17.0.1:9200" 
        index => "my_collection" 
    
        } 
        stdout {} 
    } 
    

    ですデータファイル:

    vi path_to_my_csv.csv 
    
    1234365,2016-12-02 19:00:52 
    1234368,2016-12-02 15:02:02 
    1234369,2016-12-02 15:02:07 
    
    +0

    を確認してくださいそれがまだとして挿入されます文字列 – pravindot17

    +0

    Logstashバージョン? 5.4バージョンでテストしました。 – shantanuo

    +0

    鉱山も同じです – pravindot17

    関連する問題