Elasticsearch 摄取管道以将日志级别提取为 Field:Value

Elasticsearch ingest pipelines to extract log level as Field:Value

来自消息字段的源日志示例:

{"log":"2022/02/15 22:47:07 insert into public.logs (time, level, message, hostname, loggerUID, appmodule) values ('2022-02-15 22:47:07.494330952','ERROR','GetRequestsByUserv2 :pq: column \"rr.requestdate\" must appear in the GROUP BY clause or be used in an aggregate function','ef005e6da6f6','ba282127-6ef6-4238-9287-d7127a8d1996','eReturn')\n","stream":"stderr","time":"2022-02-15T14:47:07.495133571Z"}

尝试使用 Elastic 中的摄取管道从上面的日志中提取“级别:错误”作为单独的字段,以便可以根据错误、警告、信息等日志级别将其隔离

尝试使用拆分处理器,但无法获得所需的输出。任何帮助将不胜感激。

您可以使用 grok processor using its syntax 作为正则表达式:

%{DATA:preerror} values \('%{DATA:date}','%{DATA:error}'%{GREEDYDATA:posterror}

然后您可以删除不需要的字段preerror, date, posterror