使用 logparse gork 的解析模式不起作用

parsing pattern using logparse gork not working

我有一个具有特定模式格式的日志文件,我想使用一种模式提取一些字段,但仍然无法检索到正确的值:

这是我的日志文件的一行:

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,它捕获 " 字符以外的任何一个或多个字符。