Logstash csv 过滤器根据时间戳创建索引名称
Logstash csv filter create index name based on timestamp
我想根据日志文件中匹配的日期创建 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,但是,我希望将索引创建为 testlog-2016.02.21 和 testlog-2016.02.22,因为 YYYY.mm.dd 是索引日期的 logstash 首选格式。我已经用 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 版本
感谢任何意见
您需要在过滤器中指定@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}"
}
}
我想根据日志文件中匹配的日期创建 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,但是,我希望将索引创建为 testlog-2016.02.21 和 testlog-2016.02.22,因为 YYYY.mm.dd 是索引日期的 logstash 首选格式。我已经用 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 版本
感谢任何意见
您需要在过滤器中指定@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}"
}
}