Regex 使用logparse gork分析模式不起作用

Regex 使用logparse gork分析模式不起作用,regex,telegraf,logparser,Regex,Telegraf,Logparser,我有一个特定模式格式的日志文件,我想使用模式提取一些字段,但仍然无法检索正确的值: 这是我的日志文件的一行: 2021-02-08 09:09:38,111 INFO [stdout] (default task-26) Payload: {"rqUID":"12345678-abdcABCD-09876543-abcdefgh","addUsrIdentif":{"userId":"string&quo

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

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

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-abdcad-09876543-abcdefgh
我使用以下方法测试了该模式:


有人可以帮忙吗,提前谢谢:)

您可以在这里使用命名的捕获组,并使用自定义模式:

“rqUID”:“(?[^”]+)
详细信息

  • “rqUID”:“
    -文字子字符串
  • (?[^“]+)
    -一个命名的捕获组
    rqUID
    ,它捕获除
    字符以外的任何一个或多个字符

这是在线编辑器的工作,但当添加到我的telegraf自定义模式日志中时仍然存在问题:“(?[^”]+):rqUID}@e2rabi您没有正确地执行它,因为它不应该用
%{…}
包装,此语法用于命名模式。您只需要
日志模式“rqUID”:“(?[^”]+)
。命名的捕获组名设置字段名,您不需要在此处进行任何其他构造。谢谢,它可以工作!