Filter 在Logstatsh中过滤数据

Filter 在Logstatsh中过滤数据,filter,config,logstash,Filter,Config,Logstash,我当前正在日志存储设置中使用以下过滤器: filter { if [type] == "can_robbery" { csv { columns => ["Date","Time","Transit","Region","Address","City","Province","Postal Code","Country","Robbery Type","Amt Stolen","Recovery Amt","Net Loss","Dye Pac","GPS Give

我当前正在日志存储设置中使用以下过滤器:

filter {
  if [type] == "can_robbery" {
    csv {
      columns => ["Date","Time","Transit","Region","Address","City","Province","Postal Code","Country","Robbery Type","Amt Stolen","Recovery Amt","Net Loss","Dye Pac","GPS Given?","Dye Pack Success (Arrest/Stained Money)","Decoy","Weapon Displayed","Follow Robbery Guidelines","Guard/Greeter","Cash Platform Analysis","Aggressive","Arrest Info (from donna)","# of Suspects","# Rob in 2 yrs","Crime Risk","Multi-Robbery with same suspect","Disguise","Employee Related","AMIS","Weapon Used? [Y/N]","Decoy (Given Count)","DyePac (Given Count)","GPS Given","Ancillary used?","Notes"]
      separator => ","
    }

    mutate {
      replace => [ "date" , "%{Date} %{Time}" ]
    }
  }
}
我得到的是:

“@timestamp”:“2014-11-18T16:32:48.807Z”

“类型”:“can_抢劫”

“主持人”:“digitalevidence-ThinkCentre-M58p”

“路径”:“/home/digitalevidence/temp/canada/robloth.csv”

“日期”:“2014年9月29日”

“时间”:“17:50:00”

我想要的是:

“@时间戳”:“2014-09-29T17:50:00.000Z”

“类型”:“can_抢劫”

“主持人”:“digitalevidence-ThinkCentre-M58p”

“路径”:“/home/digitalevidence/temp/canada/robloth.csv”

“日期”:“2014年9月29日”

“时间”:“17:50:00”


我需要在过滤器配置文件中进行哪些更改?

最简单的方法是将日期和时间字段合并为一个字段,就像您正在做的那样。我会使用add_字段,并使用更独特的字段名:

mutate {
  add_field => [ "myDateTime" , "%{Date} %{Time}" ]
}
该字段将显示为:9/29/2014 17:50:00

然后,可以使用日期过滤器将@timestamp字段替换为新值

date {
  match => [ "myDateTime", "mm/dd/YYYY HH:mm:ss" ]
}
(我不是100%同意这个模式,但很接近)


如果在此之后不需要myDateTime,可以将其删除。

是否可以将其中一个输入字符串放入日志消息?调试它会很有帮助。此外,如果您想更改时间戳值上的时间,您需要使用日志存储中的
date
过滤器。我有一个csv文件,行条目包括(例如):11/30/2013,10:31:001198,GTA,80 FRONT ST E,Toronto,on,M5E,Canada,Verbal,200,0200,N/G,,No Opportunity,N,None,Yes-可以做得更好,None,SD-CDU,,Y,1,0,Medium,,Y,Y,N,0,0,0,0,“此处有说明和注释”我想使用前两列中的日期和时间作为日志存储中的@timestamp