过滤器以使用grok从多行提取数据

巴维亚

我是Logstash的新手,我尝试找到从此日志消息中提取数据的模式,在此我启用filebeat.yml中的模式以从日期读取到下一次出现日期。

2018-05-21 14:49:12
Mode:Managed  Frequency:2.457 GHz  Access Point: 88:D7:F6:68:C1:78   
Bit Rate=144.4 Mb/s   Tx-Power=22 dBm   
Retry short limit:7   RTS thr:off   Fragment thr:off
Power Management:on
link Quality=65/70  Signal level=-45 dBm  
Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
Tx excessive retries:0  Invalid misc:217   Missed beacon:0





    grok{
 timeout_millis => 60000
match=>["message", "%{TIMESTAMP_ISO8601:mytimestamp}%{SPACE:ip}%{GREEDYDATA:val}%{SPACE:ip}%{GREEDYDATA:val}%{SPACE:ip}%{GREEDYDATA:val}%{SPACE:ip}%{GREEDYDATA:val}%{SPACE:ip}%{GREEDYDATA:val}%{SPACE:ip}%{GREEDYDATA:val}(?<powerlevel>(?<=Signal level\=).*?(\s))"]
}

这给了_groktimeout

filter {
    grok {
    match => ["message", "%{TIMESTAMP_ISO8601:mytimestamp}",
       "message", "(?<powerlevel>(?<=Signal level\=).*?(\s))"]

    }

这仅提供时间戳,请有人可以帮助我从此日志中获取时间戳和信号电平

Sufiyan Ghori |

您还需要在日期和信号级别之间匹配数据。这可以使用GREEDYDATA模式来完成此外,您还需要匹配所有空格和\n字符。

看看以下内容,

%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{TIME}(?m)%{GREEDYDATA:irrelevant_data}Signal level=%{NUMBER:Signal level}

它将匹配日期和Signal level

输出,

{
  "YEAR": [
    [
      "2018"
    ]
  ],
  "MONTHNUM": [
    [
      "05"
    ]
  ],
  "MONTHDAY": [
    [
      "21"
    ]
  ],
  "TIME": [
    [
      "14:49:12"
    ]
  ],
  "HOUR": [
    [
      "14"
    ]
  ],
  "MINUTE": [
    [
      "49"
    ]
  ],
  "SECOND": [
    [
      "12"
    ]
  ],
  "irrelevant_data": [
    [
      "\nMode:Managed  Frequency:2.457 GHz  Access Point: 88:D7:F6:68:C1:78   \nBit Rate=144.4 Mb/s   Tx-Power=22 dBm   \nRetry short limit:7   RTS thr:off   Fragment thr:off\nPower Management:on\nlink Quality=65/70  "
    ]
  ],
  "Signal": [
    [
      "-45"
    ]
  ],
  "BASE10NUM": [
    [
      "-45"
    ]
  ]
}

您的grok筛选器将变为

filter {
    grok {
    match => ["message", "%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{TIME}(?m)%{GREEDYDATA:irrelevant_data}Signal level=%{NUMBER:Signal level}"]
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在logstash上使用grok过滤器解析数据

jQuery使用过滤器提取数据

使用grok过滤器插件跳过前几行日志

Logstash Grok过滤器配置,用于php monolog多行(stacktrace)日志

在logstash过滤器中使用多行是否可以打印出数据?

基于多行数据的SQL过滤器

链接logtash的grok过滤器模式

让grok过滤器创建嵌套字段

logstash未能匹配grok过滤器

启动logstash的grok过滤器错误

Logstash从grok过滤器添加字段

Logstash grok 过滤器错误“_grokparsefailure”

尝试添加过滤器以使用VBA进行数据透视

grok过滤器(regex)提取方括号内的字符串

grok过滤器从两个特定的单词中提取一些消息

如何使用Ansible将多个过滤器分成多行?

如何从过滤器的词典列表中提取数据

阵列过滤器与核心数据提取性能

vscode-python - 我可以使用数据查看器的过滤器同时应用“大于”和“小于”过滤器吗?

我们可以使用angular js中的自定义过滤器过滤嵌套的json数据吗

是否可以使用多个谓词实现过滤器?

如何使用多个过滤器提取记录到数组

如何使用过滤器提取列

使用AngularJS过滤器过滤数据。如何遍历对象?

数组过滤器,使用键过滤数据

活动管理员的自定义过滤器以在索引页面上提取多行

在Java8中使用过滤器和映射提取数据库列数据

使用预定义的grok过滤器将单词连接到电子邮件

logstash grok,使用json过滤器解析一行