如何解决使用 logparse gork 解析模式不起作用
我有一个具有特定模式格式的日志文件,我想使用模式提取某些字段,但仍然无法检索正确的值:
这是我的日志文件的一行:
2021-02-08 09:09:38,111 INFO [stdout] (default task-26) Payload: {"rqUID":"12345678-abdcABCD-09876543-abcdefgh","addUsrIdentif":{"userId":"string","requestDate":"string","userLanguage":"string","financialInstitution":"string","products":["string"],"providerLogin":"string","providerPasswd":"string"},"customerInformation":{"customerId":"string","orgId":"string","orgDepth":12,"contractId":"string"},"merchantInformation":{"chainId":"string","merchantId":"string","posId":"string"},"agentInformation":{"oedInstitutionId":"string","branchId":"string","agentId":"string"},"caseReference":12}
我想使用这种模式提取字段 rqUID 值我得到了这个结果:
[[inputs.logparser]]
files = ["D:\\server.log"]
from_beginning = true
[inputs.logparser.grok]
measurement = "PWCAPI"
patterns = ["%{LOG_PATTERN}"]
custom_patterns = '''
LOG_PATTERN %{WORD:rqUID}
'''
结果:
{ “rqUID”:[ [ 《2021》 ] ] }
我的目的是获取:rqUID = 12345678-abdcABCD-09876543-abcdefgh
我使用以下命令测试了该模式:https://grokdebug.herokuapp.com/
有人可以帮忙吗,提前致谢:)
解决方法
您可以在此处使用带有自定义模式的命名捕获组:
"rqUID":"(?<rqUID>[^"]+)
详情:
-
"rqUID":"
- 文字子串 -
(?<rqUID>[^"]+)
- 一个命名的捕获组rqUID
,它捕获除"
字符之外的任何一个或多个字符。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。