美文网首页
logstash7.5如何自定义编写grok

logstash7.5如何自定义编写grok

作者: 随便写点什么就好 | 来源:发表于2020-04-16 16:44 被阅读0次

说明

在logstash中,已经集成了很多定义好的正则,也定义了很多模板我们只要用合适的值自己调整一下顺序就行了.

https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns

在logstash目录下中可以看到定义好的正则和相关应用模板,
/usr/local/logstash-7.5.0/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns

image.png

调试技巧

我们可以直接在kibana的Dev Tools 的Grok Debuger进行编写

image.png

我们直接在上面写入要切割的日志, 下面就用模板里面的值逐个匹配就行了

比如一个apache日志

日志格式是:

LogFormat "%t %{X-Forwarded-For}i %h %l %u \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T %D" combined

生成的日志是:

[16/Apr/2020:00:00:36 +0800] - 10.10.1.117 - - "GET /index.php?module=customer_service_center&submod=workbench&method=checkTicketReply&tid=109481954821&is_reply=2&r=0.18905934667593716 HTTP/1.1" 200 43 "http://ccc.baidu.cn/in
dex.php?module=customer_service_center&submod=workbench&method=replyList&tid=109481954821&hasO=&editor=ck&cha=old" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safa
ri/537.36" 0 37070

匹配出的是grok是:

\[%{HTTPDATE:http_timestamp}\] %{DATA:X-Forwarded-For} %{IP:remote_addr} %{DATA:identd} %{DATA:remote_user} "(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" %{NUMBER:status} %{NUMBER:bytes} %{QS:referrer} %{QS:agent} %{NUMBER:response} %{NUMBER:request_time:float}

异常的情况

一般这样对大部分的情况都是使用的,但是同样的格式日志有有一些是这样的

[16/Apr/2020:17:14:50 +0800] 192.168.200.201 192.168.10.97 - - "GET /index.php?method=login_action&mode=update HTTP/1.0" 200 - "http://ccc.baidu.cn/index.php?method=top&section_id=marketing&main_url=" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/81.0.4044.92 Safari/537.36" 0 36419

其中一个bytes竟然是获取不到 -, 这样我们的正则匹配不到了
%{NUMBER:bytes}

这种情况下,我们可以添加自定义参数NUMBEROR (%{NUMBER}|-)然后用 %{NUMBEROR:bytes}来匹配就可以了

相关文章

  • logstash7.5如何自定义编写grok

    说明 在logstash中,已经集成了很多定义好的正则,也定义了很多模板我们只要用合适的值自己调整一下顺序就行了....

  • LogStash如何编写自定义grok正则式

    网上关于Logstash的介绍性文章还不少,写的不错的几篇如:《Logstash介绍》、《一文快速上手Logsta...

  • Logstash_过滤插件

    参考文档 1、Grok正则插件 Grok 是 Logstash 最重要的插件。你可以在 grok 里预定义好命名正...

  • logstash神器之grok

    1.grok表达式 Grok 是 Logstash 最重要的插件。你可以在 grok 里直接使用或应用预定义的表达...

  • Logstash-Filter插件配置

    Date grok

  • Logstash GROK过滤器插件

    grok官网地址 grok中文版地址 Grok是将非结构化日志数据解析为结构化和可查询内容的好方法。 该工具非常适...

  • python3 定义函数

    定义函数 Python 有很多有用的内置函数, 但还是不能满足程序员的需求, 所以需要自定义函数。 如何编写自定义...

  • springboot之自定义starter

    自定义starter starter:这个场景需要使用到的依赖是什么?如何编写自动配置@Configuration...

  • SceneKit杂谈 - 如何使用Metal Shader自定义

    前言 本篇文章主要记录如何使用SCNMaterial + Metal Shader实现自定义材质效果 编写一个基本...

  • Logstash踩过的坑

    grok解析中不能包含@ grok中的表达式中不能包含@,否则正则解析错误。例如:不能写@timestamp,必须...

网友评论

      本文标题:logstash7.5如何自定义编写grok

      本文链接:https://www.haomeiwen.com/subject/frqdvhtx.html