gpt4 book ai didi

elasticsearch - grok 不读带连字符的单词

转载 作者:行者123 更新时间:2023-12-04 06:17:35 27 4
gpt4 key购买 nike

这是我的 grok 模式

2017-09-25 08:58:17,861 p=14774 u=ec2-user | 14774 1506329897.86160:检查 any_errors_fatal

我正在尝试阅读用户,但它只给出 ec2 ,它没有给出完整的词

对不起,我是 grok 过滤器的新手

我目前的模式:

%{TIMESTAMP_ISO8601:timestamp} p=%{WORD:process_id} u=%{WORD:user_id}

电流输出:

...
...
...
"process_id": [
[
"14774"
]
],
"user_id": [
[
"ec2"
]
]
}

最佳答案

WORD 定义为 "\b\w+\b"
https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns

  • \b 是单词边界
  • \w 匹配单个字母数字字符(字母字符或十进制数字)或“_”
  • + 表示任意数量的前一个字符。所以\w+ 表示任意数量的字符

  • 请注意,\w 不匹配 -

    所以为了让它工作而不是 WORD 使用
    (?<user_id>\b[\w\-]+\b)

    这不使用预定义的 grok 模式,而是使用“原始”正则表达式
  • 使用 (?.....) 而不是 %{ 因为它是“原始”正则表达式
  • \-表示文字 - 符号
  • [ ] 表示字符类。所以 [\w-] 将匹配\w 所做的所有事情 - 以及
  • 关于elasticsearch - grok 不读带连字符的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46402027/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com