LogStash使用笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LogStash使用笔记相关的知识,希望对你有一定的参考价值。

参考技术A Logstash

这东西就是正则表达式匹配,不过由于日志太大了,如果你这个正则从头写到尾估计写一半人就没了,所以人家预定义好了许多的正则表达式,那些%xxx本质上就是那些正则,一样的替代一下。

内置的那些预定义好的正则表达式,在github上的地址:
https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns

这里直接粘过来省的去找

不过grok这东西神烦,不能自定义提取,放两个案例。
成功案例:
\[%TIMESTAMP_ISO8601:timestamp\]\s+(GatewayMessage:\s+)(\|)%DATA:url(\|)%DATA:methodvalue(\|)%DATA:queryParams(\|)%DATA:remote(\|)%DATA:statusCode(\|)%DATA:time(\|)%DATA:response

魔改案例:
\[%TIMESTAMP_ISO8601:timestamp\]\s+(GatewayMessage:\s+)(\|)(.*?)(\|)%DATA:methodvalue(\|)%DATA:queryParams(\|)%DATA:remote(\|)%DATA:statusCode(\|)%DATA:time(\|)%DATA:response

魔改案例里面,把第一个DATA改成了 .*? ,这样的确可以起到占位符的作用,直接把这一个跳过去,不过如果想把自定义的这些正则表达式匹配的值,输入到一个键值对里输出出来,那是不成的。
如果要输出出来,只能把自己定义的正则表达式命好名字,然后输入到一个文件里面,然后把这个文件告诉给Logstash,这样才能用自定义输出json键值对。

最开始的写法是%DATA:response,用一个DATA指代后面GatewayMessage那一部分,这个在Kibana调试的时候没任何问题,不过在docker里面一跑就是json解析出错。
改成%GREEDYDATA:response之后就没问题了。
DATA对应的是 .*?
GREEDYDATA对应 .*

总结就是:DATA出错的地方改成GREEDYDATA。

这也就是filebeat的日志结构

在没写出gork正则的前提下,先别到docker里面去改配置文件调试,那样有够慢的,先在kibana下面调试一下,这个比较方便。

大的正则表达式已经写完了,剩下一点小语法修修改改的,就可以去docker里面改配置文件去调试了。

顺便记另一个,tail看文件

首先split可以保证这个不出错,因为有几个|这个都可以商量。
不过上场就用grok的话,如果|对不上,就解析错误了。
幸运的是logstash解析错误不报bug,只是那条日志的输出会带上logstash错误这样的标签,所以尽情grok吧。

最终的logstash配置

输出到es的索引,是按照天来更改的,所以在es里面就每天建立一个索引,方便删除往期的数据,以及这样可以保证一个索引不会太大,能提高一点搜索效率。

https://www.cnblogs.com/FengGeBlog/p/10305318.html

https://www.cnblogs.com/dyh004/p/9699813.html

https://blog.csdn.net/wfs1994/article/details/80862952

ELK 学习笔记之 Logstash安装

Logstash安装:

 

https://www.elastic.co/downloads/logstash

下载解压:

tar –zxvf logstash-5.6.1.tar.gz

在/usr/local/logstash-5.6.1/bin下编辑conf:(因为配置了输出到es和console上,所以必须先启动es。)

vi logstash-simple.conf

input { stdin { } }

output {

  elasticsearch { hosts => ["localhost:9200"] }

  stdout { codec => rubydebug }

}

启动Logstash:

logstash -f logstash-simple.conf

启动成功!

输入Hello World

输入CSLDW

 

ES head上看下:

 

发现数据直接进入了es,可见两者集成得非常方便。

 

以上是关于LogStash使用笔记的主要内容,如果未能解决你的问题,请参考以下文章

Logstash笔记 ----input插件

Logstash笔记 ----input插件

ELK 学习笔记之 Logstash之inputs配置

从秒级查询提升到了毫秒级-财务平台logstash同步ES实战笔记

我的ELK搭建笔记(以服务方式运行Logstash)

logstash笔记——redis&es