首页 > 解决方案 > 如何使用 logstash 和 grok 提取时间戳?

问题描述

我正在尝试使用 TIME 从 grok in logstash 中提取时间戳,但提取不成功。

我正在使用 grok 模式,但它不匹配或返回任何内容。

2019-07-30 14:12:23 -主要- 信息 - 地铁爬虫完成运行时间:00:00:02

%{TIMESTAMP_ISO8601:timestamp}%{GREEDYDATA}-%{SPACE}%{GREEDYDATA:crawler}%{SPACE}-%{SPACE}%{LOGLEVEL:level}%{TIME:time}

我没有匹配

标签: regexlogstash-grokgrok

解决方案


您可以使用

%{TIMESTAMP_ISO8601:timestamp}%{SPACE}-%{SPACE}%{DATA:crawler}%{SPACE}-%{SPACE}%{LOGLEVEL:level}%{DATA}%{TIME:time}

查看调试输出:

{
  "timestamp": [
    [
      "2019-07-30 14:12:23"
    ]
  ],
  "crawler": [
    [
      "__main__"
    ]
  ],
  "level": [
    [
      "INFO"
    ]
  ],
  "time": [
    [
      "00:00:02"
    ]
  ]
}

推荐阅读