Logstash工作原理介绍

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-09-11 06:39 被阅读0次

    上一篇 <<<ELK分布式日志收集原理
    下一篇 >>>Kafka可填补ELK日志收集的缺陷


    核心:inputs(输入) → filters(过滤) → outputs(输出)

    1.输入类型

    本地文件、kafka、数据库、mongdb、redis

    file:从文件系统的文件中读取,类似于tial -f命令
    syslog:在514端口上监听系统日志消息,并根据RFC3164标准进行解析
    redis:从redis service中读取
    beats:从filebeat中读取

    2.常用过滤器

    grok:解析任意文本数据,Grok 是 Logstash 最重要的插件。它的主要作用就是将文本格式的字符串,转换成为具体的结构化的数据,配合正则表达式使用。内置120多个解析语法。
    mutate:对字段进行转换。例如对字段进行删除、替换、修改、重命名等。
    drop:丢弃一部分events不进行处理。
    clone:拷贝 event,这个过程中也可以添加或移除字段。
    geoip:添加地理信息(为前台kibana图形化展示使用)
    Outputs:outputs是logstash处理管道的最末端组件。一个event可以在处理过程中经过多重输出,但是一旦所有的outputs都执行结束,这个event也就完成生命周期。

    3.常用输出

    elasticsearch:可以高效的保存数据,并且能够方便和简单的进行查询。
    file:将event数据保存到文件中。
    graphite:将event数据发送到图形化组件中,一个很流行的开源存储图形化展示的组件。
    Codecs:codecs 是基于数据流的过滤器,它可以作为input,output的一部分配置。Codecs可以帮助你轻松的分割发送过来已经被序列化的数据。
    一些常见的codecs:
    json:使用json格式对数据进行编码/解码。
    multiline:将汇多个事件中数据汇总为一个单一的行。比如:java异常信息和堆栈信息。

    4.demo

    input {
        # 从文件读取日志信息 输送到控制台
        file {
            path => "/usr/local/elasticsearch-6.4.3/logs/myes.log"
            codec => "json" ## 以JSON格式读取日志
            type => "elasticsearch"
            start_position => "beginning"
        }
    }
    
    # filter {
    #
    # }
    
    output {
        # 标准输出 
        # stdout {}
        # 输出进行格式化,采用Ruby库来解析日志   
         stdout { codec => rubydebug }
         elasticsearch {
            hosts => ["192.168.212.180:9200"]
            index => "es-%{+YYYY.MM.dd}"
        }    
    }
    

    推荐阅读:
    <<<ELK分布式日志收集系统介绍
    <<<ELK分布式日志收集原理
    <<<Kafka可填补ELK日志收集的缺陷
    <<<Logstash环境搭建
    <<<Kibana环境安装及常用命令

    相关文章

      网友评论

        本文标题:Logstash工作原理介绍

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