如何使用 Grok 模式跳过消息的开头?
How to skip the beginning of a message with Grok Patterns?
我正在尝试使用 Graylog 中的 Grok 模式仅提取 Linux 日志的最后一部分,但这比我想象的要难。
这是我收到的消息:
3 月 18 日 11:10:01 graylog CRON[14637]:pam_unix(cron:session):已关闭用户 root
的会话
我只想保留日期、时间和“为根用户关闭的会话”部分。
这是我试过的,没有结果:
%{GREEDYDATA} pam_unix(cron:session):
%{GREEDYDATA} session closed for user root
%{MONTH} %{BASE10NUM} %{TIME} %{GREEDYDATA}graylog CRON[18698]: pam_unix(cron:session):
也许我仍然在使用“greedydata”错误(?),任何帮助将不胜感激!
您可以使用
%{MONTH:month} %{BASE10NUM:day} %{TIME:time} %{DATA}: pam_unix\(cron:session\):\s*%{GREEDYDATA:message}
详情:
%{MONTH:month}
- 月份名称
%{BASE10NUM:day}
- 一个或多个数字
%{TIME:time}
- 时间模式
%{DATA}
- .*?
懒点正则表达式模式,匹配除换行字符以外的任何零个或多个字符,尽可能 few (请注意,您可以将其更改为 %{DATA:cron}
以在输出中获得 graylog CRON[14637]
)
: pam_unix\(cron:session\):
- 文字 : pam_unix(cron:session):
文本
\s*
- 零个或多个空格
%{GREEDYDATA:message}
- .*
匹配该行其余部分的正则表达式模式。
我正在尝试使用 Graylog 中的 Grok 模式仅提取 Linux 日志的最后一部分,但这比我想象的要难。
这是我收到的消息:
3 月 18 日 11:10:01 graylog CRON[14637]:pam_unix(cron:session):已关闭用户 root
的会话我只想保留日期、时间和“为根用户关闭的会话”部分。
这是我试过的,没有结果:
%{GREEDYDATA} pam_unix(cron:session):
%{GREEDYDATA} session closed for user root
%{MONTH} %{BASE10NUM} %{TIME} %{GREEDYDATA}graylog CRON[18698]: pam_unix(cron:session):
也许我仍然在使用“greedydata”错误(?),任何帮助将不胜感激!
您可以使用
%{MONTH:month} %{BASE10NUM:day} %{TIME:time} %{DATA}: pam_unix\(cron:session\):\s*%{GREEDYDATA:message}
详情:
%{MONTH:month}
- 月份名称%{BASE10NUM:day}
- 一个或多个数字%{TIME:time}
- 时间模式%{DATA}
-.*?
懒点正则表达式模式,匹配除换行字符以外的任何零个或多个字符,尽可能 few (请注意,您可以将其更改为%{DATA:cron}
以在输出中获得graylog CRON[14637]
): pam_unix\(cron:session\):
- 文字: pam_unix(cron:session):
文本\s*
- 零个或多个空格%{GREEDYDATA:message}
-.*
匹配该行其余部分的正则表达式模式。