Logstash grok匹配时间戳
常见时间戳类型
表达式 | 名称 | 匹配例子 |
---|---|---|
DATE_US | 美国时间 | 10-01-1892、10/01/1892/ |
DATE_EU | 欧洲日期格式 | 01-10-1892、01/10/1882、01.10.1892 |
ISO8601_TIMEZONE | ISO8601时间格式 | +10:23、-1023 |
TIMESTAMP_ISO8601 | ISO8601时间戳格式 | 2016-07-03T00:34:06+08:00 |
DATE | 日期 | 美国日期%{DATE_US}或者欧洲日期%{DATE_EU} |
DATESTAMP | 完整日期+时间 | 07-03-2016 00:34:06 |
HTTPDATE | http默认日期格式 | 03/Jul/2016:00:36:53 +0800 |
虽然grok会能够匹配常见的时间戳类型,但是各种类型的设备出现的时间戳真的是奇奇怪怪
时间戳1
#日志时间戳字段
time="1647480801"
#grok匹配时间戳
time=\"%{NUMBER:LogTime}\"
#时间戳格式化输出
date {
match => ["time","yyyy/MM/dd HH:mm:ss Z","UNIX"]
target => "LogTime"
}
#输出格式
"LogTime"="2022-03-17T02:09:44.000Z"
时间戳2
#日志时间戳字段
Mar 17 13:12:03
#grok匹配时间戳
(?<LogTime>(?<Date>%{MONTH}%{SPACE}%{MONTHDAY})%{SPACE}(?<Time>%{TIME}))
```python
#输出格式
"LogTime"="Mar 17 13:12:03"
时间戳3
#日志时间戳字段
2022-03-17 10:21:55
#grok匹配时间戳
(?<LogTime>(?<Date>%{YEAR}-%{MONTHNUM}-%{MONTHDAY})%{SPACE}(?<Time>%{TIME}))
#输出格式
"LogTime"="2022-03-17 10:21:55"
时间戳4
#日志时间戳字段
Mar 17 2022 02:28:05
#grok匹配时间戳
(?<LogTime>(?<Date>%{MONTH}%{SPACE}%{MONTHDAY}%{SPACE}%{YEAR})%{SPACE}(?<Time>%{TIME}))
#时间戳格式化输出
#输出格式
"Mar 17 2022 02:28:05"
时间戳5
#日志时间戳字段
Mar 16 16:49:03
#grok匹配时间戳
(?<LogTime>(?<Date>%{MONTH}%{SPACE}%{MONTHDAY})%{SPACE}(?<Time>%{TIME}))
#输出格式
"LogTime"="Mar 16 16:49:03"
时间戳6
#日志时间戳字段
2022-03-17 10:21
#grok匹配时间戳
(?<LogTime>(?<Date>%{YEAR}-%{MONTHNUM}-%{MONTHDAY})%{SPACE}(?<Time>%{HOUR}:%{MINUTE}))
#输出格式
"LogTime"="2022-03-17 10:21"
时间戳7
#日志时间戳字段
2022-03-17 11:01:05.16
#grok匹配时间戳
(?<LogTime>(?<Date>%{YEAR}-%{MONTHNUM}-%{MONTHDAY})%{SPACE}(?<Time>%{HOUR}:%{MINUTE}:%{SECOND}.%{SECOND}))
#输出格式
"2022-03-17 11:01:05.16"
时间戳8
#日志时间戳字段
March 17th 2022 10:58:37.000
#grok匹配时间戳
(?<LogTime>(?<Date>%{MONTH}%{SPACE}%{MONTHDAY}th%{SPACE}%{YEAR})%{SPACE}(?<Time>%{HOUR}:%{MINUTE}:%{SECOND}.%{SECOND}))
#输出格式
"March 17th 2022 10:58:37.00"
参考:
https://www.thinbug.com/q/53532657
https://www.cnblogs.com/zhangan/p/11395056.html