美文网首页程序员
解决elasticsearch+kibana+filebeat日

解决elasticsearch+kibana+filebeat日

作者: 野草_疯长 | 来源:发表于2019-04-11 16:50 被阅读0次

    以前利用elk搭建一套完整的日志分析系统,随着beat的发展,在有些地方,logstash逐渐退出人们的视野。
    因为java撰写的logstash太吃内存,所以我们用filebeat替代它的工作。

    解析日志有2种方法:

    第一:采用filebeat本身自带的module

    进入filebeat主目录下你会看到modules.d 和module两个目录,前者是filebeat所支持的module总览,后者是所用到的module的具体配置。
    在这里我选择的是nginx的日志来给大家演示。
    filebeat是6.5.4版本 nginx日志是初始的main格式

    1、在modules.d/nginx.yml.disabled添加nginx日志文件路径如下 123.png 并将名字改为nginx.yml
    2、在filebeat.yml修改如下配置
    123.png

    注意,不要重复收集同一个日志,也就是说不要再收集nginx日志,不然收割进程会发生冲突并报错。

    3、建立初始环境 112.png
    然后就可以启动filebeat了,如果成功,在kibana-discover就会产生如下图所示的效果:
    113.png

    如果在nginx.conf修改了日志文件的log_format


    222.png

    你需要在filebeat的主目录下module的nginx模块里修改
    vim module/nginx/access/ingest/default.json


    212.png
    在grok的patterns里面修改你nginx日志log_format的正则匹配,在kibana的DevToos里面可以进行grok语法测试,如果日志里有[],需要加2个转义符,但是测试的时候加一个就可以了。 11.png

    在修改完patterns之后,先把filebeat原先创建的pipeline删除,再重启filebeat。
    DELETE _ingest/pipeline/filebeat-6.5.4-nginx-access-default


    121.png
    结果我就不执行给大家看了,就是一个true。

    第二:在es中添加pipeline,并且在filebeat配置文件中指定输出到pipeline

    1、就像第一种方法一样,先在kibana的Dev Tools/Grok Debugger里把日志的匹配格式写出来


    3.png

    需要注意,匹配语法时,中括号[]和双引号""都是需要转译符\的。
    2、再在Console添加管道,如图,这里[]没使用转译符,可根据报错自行修改


    1.png
    3、添加日志测试,post的这条日志会创建一个test_pipeline的索引,可以去这个索引里面查看解析的结果,
    2.png

    此时代表成功解析日志
    4、在filebeat为我们的日志指定pipeline


    1.png
    5、配置日志输出到es中指定的pipeline
    2.png
    6、去我们默认的filebeat索引查看日志
    1.png
    到此全部结束!
    学习的道路,水滴石穿!

    相关文章

      网友评论

        本文标题:解决elasticsearch+kibana+filebeat日

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