【问题标题】:Appending csv contents to an existing logstash index将 csv 内容附加到现有的 logstash 索引
【发布时间】:2016-08-15 19:52:15
【问题描述】:

我有一个文件夹,用户将在其中不断添加 csv 文件以供 logstash 提取。用户将每天在此文件夹中添加 csv 文件。 csv 文件将具有类似yyyymmdd-dailyUsageData.csv 的名称,即文件名的前几个字符作为日期。 csv 文件的内容将再次包含此日期值和其他一些列,即日期、colA、colB、colC 等。要求是每天将 csv 文件的内容加载到 logstash/elasticSearch 中,以便在 kibana 中创建可视化。

虽然我可以对单个 csv 文件执行此操作,但我不确定如何将第二天的 csv 文件(其名称中具有不同的时间戳)的内容附加到已创建的索引中.下面是我创建的 conf 文件示例:

 input {
      file {
        path => "/etc/logstash/20160302-dailyUsageData.csv"
        type => "usageData"
        start_position => "beginning"
        sincedb_path => "/home/ec2-user/mysincedbfile"
      }
    }
    filter {
      csv {
          separator => ","
          columns => ["Date","colA", "colB"]
      }
      mutate {convert => ["colA", "integer"]}
      mutate {convert => ["colB", "float"]}
    }
    output {  
        elasticsearch {
            action => "index"
            hosts => "localhost:9200"
            index => "dailyUsage"
        workers => 1
        }
        stdout {}
    }

【问题讨论】:

    标签: elasticsearch logstash kibana-4 elastic-stack


    【解决方案1】:

    您的file 输入可以简单地使用a pattern for the path 而不是单个文件

      file {
        path => "/etc/logstash/*.csv"
        type => "usageData"
        start_position => "beginning"
        sincedb_path => "/home/ec2-user/mysincedbfile"
      }
    

    【讨论】:

    • 是的,这行得通..谢谢..但是,对现有 csv 文件的任何更改都不会反映(在 kibana 中)..只有附加,即在现有 csv 文件中插入新行才会生效。关于如何使附加工作的任何建议?
    • 这是因为 sincedb 文件跟踪哪些行已被处理。您可能希望在每次更改时重新处理所有行?
    • 是的,如果我需要处理所有行或只处理更改的行,该怎么做?
    猜你喜欢
    • 2012-01-18
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 2014-05-03
    • 2018-08-03
    相关资源
    最近更新 更多