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