Logstash Grok获取数字字段

时间:2016-11-24 22:26:08

标签: logstash elastic-stack logstash-grok grok

我在Logstash中使用Grok过滤器将一条长消息分成几个字段。

示例消息:http://localhost:8080/MRLService/api/v1/reportNotes 11-24-2016 10:59:49 8ms country = AUS杀虫剂= ABA3000

filter:filter {     grok {match => {“log4j2_message”=> “%{URIPATH:url}%{DATESTAMP:startTime}%{NUMBER:timeTaken} ms%{GREEDYDATA:parameters}”}} }

它正常工作,除了timetaken(8)是字符串类型而不是我想要的数字类型

mapping list

有人可以告诉我们如何在Logstash中将timetaken字段设为数字吗?

谢谢, 肖恩

1 个答案:

答案 0 :(得分:1)

最后一个是类型

{NUMBER:timeTaken:int}

或者只是将字段转换为int或float(不建议因为这会降低性能然后第一种方法)

mutate {
   convert => [ "[geoip][coordinates]", "float"]
}