Splunk中的时代时间场提取

问题描述

我们如何为以下日志编写正则表达式或字段提取?字段是开始和结束,其中值采用纪元格式,我想以人类可读的格式更改它。.

cs7=45.45 cs7Label=latitude cs8=28.05 cs8Label=longitude Customer=Romania-UPC start=1604484735041 request=scoala.bibliotecapemobil.ro/download.PHP ref=https://scoala.bibliotecapemobil.ro/893/borgia requestMethod=GET qstr=book_id\=893&user_id\=&download\=pdf cn1=200 app=HTTPS act=REQ_PASSED deviceExternalId=37982221230540227 sip=195.191.47.151 spt=443 in=45 xff=82.208.137.89 cpt=62542 src=82.208.137.89 ver=TLSv1.3 TLS_AES_128_GCM_SHA256 end=1604484735097

解决方法

可以使用extract命令在搜索时提取字段。

... | extract pairdelim=" " kvdelim="=" | ...

使用strptime()转换时间字段。

... | eval start=strptime(start,"%s%3N")

索引时间字段提取应该是自动的,但是请尝试使用props.conf的这些设置进行提取和时间处理。

[mysourcetype]
TIME_PREFIX = start=
TIME_FORMAT = %s%3N
MAX_TIMESTAMP_LOOKAHEAD = 13
SHOULD_LINEMERGE = false
LINE_BREAKER = ([\r\n]+)
KV_MODE = auto