代码之家  ›  专栏  ›  技术社区  ›  Kizer

使用Logstash grok模式匹配带有前缀和后缀的字符串

  •  0
  • Kizer  · 技术社区  · 7 年前

    我有一个麋鹿集群来保存下面的日志,我想使用logstash grok提取日志中的一些字段。

    [info ][170703 10:34:38.998686/832]acct ok,deal_time=122ms;ACCESS_PORT=216179383538692472&ACCESS_TYPE=2&ACCOUNT=07592111916&Acct-Status-Type=3;
    

    这是我的grok模式。

    %{SYSLOG5424SD}\[%{DATA:[@metadata][timestamp]}\/%{NUMBER}\]%{WORD:type}\ %{WORD:status}\,%{GREEDYDATA}%{NUMBER:dealtime}ms\;%{GREEDYDATA}(?<acct>(?<=ACCOUNT=).*)
    

    我想提取一些字段的值,并将其赋给事件变量。 例如:账户=0759211916

    我使用(?<=帐户=)*&$)要提取价值,但不起作用,我的问题在哪里?

    http://grokdebug.herokuapp.com

    1 回复  |  直到 7 年前
        1
  •  1
  •   Кирилл Полищук    7 年前

    (?<acct>(?<=ACCOUNT=)[^&]+)