[Mon Jan 04 08:36:12 2021] 的 Grok 模式

Posted

技术标签:

【中文标题】[Mon Jan 04 08:36:12 2021] 的 Grok 模式【英文标题】:Grok pattern for [Mon Jan 04 08:36:12 2021] 【发布时间】:2021-04-12 03:21:03 【问题描述】:

我正在使用 logstash 将一些日志发送到 elasticsearch。我无法弄清楚 [Mon Jan 04 08:36:12 2021] 的 grok 模式。格式为 Day Month Date Time Year 欢迎提供帮助和建议。

日志 - [Mon Jan 04 08:36:12 2021] Grok 我试过了 - \[%DAY:day %MONTH:month %TIME:time %YEAR:year] 预期结果 - Day:Mon Month:Jan Date:04 Hour:08 Minute:36 Second:12 Year:2021

【问题讨论】:

你试过default Grok patterns吗? @WiktorStribiżew 很好,我尝试了这样的事情 - %DAY MONTH DATE TIME YEAR:mytimestamp 但它没有用。这就是原因,我把它贴在这里。 请在问题中添加您尝试过的内容,并说明您观察到的行为以及预期的行为。 @WiktorStribiżew 添加了! 您好像忘记了%MONTHDAY,使用\[%DAY:day %MONTH:month %MONTHDAY %TIME:time %YEAR:year] 【参考方案1】:

您忘记在月份和时间变量之间指定%MONTHDAY

你可以使用

\[%DAY:day %MONTH:month %MONTHDAY %TIME:time %YEAR:year]

Grok pattern 使用列表:

DAY (?:Mon(?:day)?|Tue(?:sday)?|Wed(?:nesday)?|Thu(?:rsday)?|Fri(?:day)?|Sat(?:urday)?|Sun(?:day)?) MONTH \b(?:[Jj]an(?:uary|uar)?|[Ff]eb(?:ruary|ruar)?|[Mm](?:a|ä)?r(?:ch|z)?|[Aa]pr(?:il)?|[Mm]a(?:y|i)?|[Jj]un(?:e|i)?|[Jj]ul(?:y|i)?|[Aa]ug(?:ust)?|[Ss]ep(?:tember)?|[Oo](?:c|k)?t(?:ober)?|[Nn]ov(?:ember)?|[Dd]e(?:c|z)(?:ember)?)\b MONTHDAY (?:(?:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9]) TIME (?!<[0-9])%HOUR:%MINUTE(?::%SECOND)(?![0-9]) HOUR (?:2[0123]|[01]?[0-9]) MINUTE (?:[0-5][0-9]) SECOND (?:(?:[0-5]?[0-9]|60)(?:[:.,][0-9]+)?) YEAR (?>\d\d)1,2

【讨论】:

以上是关于[Mon Jan 04 08:36:12 2021] 的 Grok 模式的主要内容,如果未能解决你的问题,请参考以下文章

python中的RFC 1123

每月提供利润的代理的 SQL 计数

Oracle 日期格式 [重复]

SQL:添加缺失的日期和值

Oracle DateTime 在 Where 子句中?

bzoj2021[Usaco2010 Jan]Cheese Towers*