【问题标题】:Logstash csv filter create index name based on timestampLogstash csv 过滤器根据时间戳创建索引名称
【发布时间】:2016-06-28 00:14:48
【问题描述】:

我想根据日志文件中匹配的日期创建 ES 索引。我正在使用 logstash CSV 过滤器来处理日志。例如,日志数据如下所示

2016-02-21 00:02:32.238,123.abc.com,data
2016-02-22 00:04:40.145,345.abc.com,data

下面是logstash配置文件。显然,索引将创建为 testlog,但是,鉴于 YYYY.mm.dd 是索引日期的 logstash 首选格式,我希望将索引创建为 testlog-2016.02.21 和 testlog-2016.02.22。我已经用 grok 过滤器做到了这一点,我正在尝试用 csv 实现同样的效果,但这似乎不起作用。

filter {
 csv {
    columns => [ "timestamp", "host", "data" ]
    separator => ","
    remove_field => ["message"]
    }
}
output {
    elasticsearch {
            hosts => ["localhost:9200"]
            index => "testlog"
    }
}

我们正在使用 Logstash 2.1.0、ES 2.1.0 和 Kibana 4.3.0 版本

任何意见表示赞赏

【问题讨论】:

    标签: logstash logstash-configuration logstash-file


    【解决方案1】:

    您需要在过滤器中指定@timestamp 字段,您还需要指定您的索引名称,如下所示:

    filter {
      csv {
        columns => [ "timestamp", "host", "data" ]
        separator => ","
        remove_field => ["message"]
      }
    
      date {
        match => [ "timestamp", "ISO8601" ] #specify timestamp format
        timezone => "UTC" #specify timezone
        target => "@timestamp"
      }
    }
    
    output {
      elasticsearch 
        hosts => ["localhost:9200"]
        index => "testlog-%{+YYYY.MM.dd}"
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2018-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      相关资源
      最近更新 更多