logstash:处理多个input(代码片段)

三度 三度     2022-12-23     617

关键词:

Logstash:处理多个input

Logstash的整个pipleline分为三个部分:

  • input插件:提取数据。 这可以来自日志文件,TCP或UDP侦听器,若干协议特定插件(如syslog或IRC)之一,甚至是排队系统(如Redis,AQMP或Kafka)。 此阶段使用围绕事件来源的元数据标记传入事件。
  • filter 插件:插件转换并丰富数据
  • output插件: 将已处理的事件加载到其他内容中,例如ElasticSearch或其他文档数据库,或排队系统,如Redis,AQMP或Kafka。 它还可以配置为与API通信。 也可以将像PagerDuty这样的东西连接到Logstash输出。

这里的input可以支持多个input,同时多个worker可以处理filter及output:

Logstash配置文件

Logstash的配置文件如下:

# cat multi-input.conf

    input 
      file 
        path => "/Users/liuxg/data/multi-input/apache.log"
        start_position => "beginning"
        sincedb_path => "/dev/null"
        # ignore_older => 100000
        type => "apache"
      
    
     
    input 
      file 
        path => "/Users/liuxg/data/multi-input/apache-daily-access.log"
        start_position => "beginning"
        sincedb_path => "/dev/null"
        type => "daily"
      
    
     
    filter 
        grok 
            match => 
                "message" => '%IPORHOST:clientip %USER:ident %USER:auth \[%HTTPDATE:timestamp\] "%WORD:verb %DATA:request HTTP/%NUMBER:httpversion" %NUMBER:response:int (?:-|%NUMBER:bytes:int) %QS:referrer %QS:agent'
            
        
     
        if[type] == "apache" 
            mutate 
                add_tag => ["apache"]
            
        
     
        if [type] == "daily" 
            mutate 
                add_tag => ["daily"]
            
         
    
     
     
    output 
        stdout 
            codec => rubydebug
        
     
        if "apache" in [tags] 
            elasticsearch 
                index => "apache_log"
                template => "/Users/liuxg/data/apache_template.json"
                template_name => "apache_elastic_example"
                template_overwrite => true
           
        
     
        if "daily" in [tags] 
            elasticsearch 
                index => "apache_daily"
                template => "/Users/liuxg/data/apache_template.json"
                template_name => "apache_elastic_example"
                template_overwrite => true
           
           
    

为了说明问题的方便,使用了两个input。它们分别对应不同的log文件。对于这两个input,也使用了不同的type来表示:apache和daily。尽管它们的格式是一样的,它们共同使用同样的一个grok filter,但是我们还是想分别对它们进行处理。为此,添加了一个tag。也可以添加一个field来进行区别。在output的部分,根据在filter部分设置的tag来对它们输出到不同的index里。

运行Logstash

可以通过如下的命令来运行:

./bin/logstash -f ~/data/multi-input/multi-input.conf

当运行这个例子的时候,需要根据自己存放multi-input.conf文件的位置改变而改变上面的命令。

根据显示的结果可以看出来daily的事件最早被处理及输出。接着apache的数据才开始处理。在实际的应用中,我们可能有不同的数据源,比如来自其它beats的监听某个端口的数据。

可以在Kibana中看到我们最终的index数据.

logstash:多个配置文件(conf)(代码片段)

在前面的一篇文章“Logstash:处理多个input”中,我们介绍了如何使用在同一个配置文件中处理两个input的情况。在今天这篇文章中,我们来介绍如何来处理多个配置文件的问题。对于多个配置的处理方法,有多个处理方法... 查看详情

logstash:多个配置文件(conf)(代码片段)

Logstash:多个配置文件(conf)对于多个配置的处理方法,有多个处理方法:多个pipeline一个pipleline处理多个配置文件一个pipeline含有一个逻辑的数据流,它从input接收数据,并把它们传入到队列里,经过worker的处理,最后输出到out... 查看详情

logstash:data转换,分析,提取,丰富及核心操作(代码片段)

Logstash:Data转换,分析,提取,丰富及核心操作LogstashpluginsLogstash是一个非常容易进行扩张的框架。它可以对各种的数据进行分析处理。这依赖于目前提供的超过200多个plugin。首先,我们来查看一下目前有哪些plugin:Inputplugins首... 查看详情

logstash配置文件详解(代码片段)

 logstashpipeline包含两个必须的元素:input和output,和一个可选元素:filter。 从input读取事件源,(经过filter解析和处理之后),从output输出到目标存储库(elasticsearch或其他)。 在生产环境使用logstash,一般使用都将配... 查看详情

logstash(代码片段)

Logstash介绍Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。 集中、转换和存储你的数据 Logstash是一个开源的服务器端数据... 查看详情

elk之logstash学习(代码片段)

Logstash最强大的功能在于丰富的过滤器插件。此过滤器提供的并不单单是过滤的功能,还可以对进入过滤器的原始数据进行复杂的逻辑处理。甚至添加独特的事件到后续流程中。1、logstash基本语法组成logstash主要由三部分组成:in... 查看详情

elk之logstash(代码片段)

1、logstash简介?logstash是一个数据分析软件,主要目的是分析log日志。整一套软件可以当作一个MVC模型,logstash是controller层,Elasticsearch是一个model层,kibana是view层。首先将数据传给logstash,它将数据进行过滤和格式化(转成JSON格... 查看详情

elk——logstash(代码片段)

Logstash是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。官网介绍:https://www.elastic.co/cn/products/logstashhttps://www.elastic.co/downloads/logstash1、下载Logstash依赖JDK1.8... 查看详情

如何使用logstash(代码片段)

目录一、什么是Logstash二、如何安装三、快速使用四、Input输入插件五、codec编码插件六、filter过滤器插件七、output输出插件八、总结一、什么是LogstashLogstash是一个日志收集器,可以理解为一个管道,或者中间件。功能是从定义... 查看详情

logstash部署kibana部署elk组合收集多个日志(代码片段)

部署logstash主机名IPlogstash-to-es01192.168.15.28logstash环境准备及安装Logstash是一个开源的数据收集引擎,可以水平伸缩,而且logstash整个ELK当中拥有最多插件的一个组件,其可以接收来自不同来源的数据并统一输出到指定的... 查看详情

elk之logstash配置文件详解(代码片段)

  Logstash是一个开源的数据收集引擎,它具有备实时数据传输能力。它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地。它以插件的形式来组织功能,通过配置文件来描述需要插件做什么,配置文件... 查看详情

架构师成长记_第八周_22_logstash数据同步(代码片段)

文章目录1.logstash简介PS:2.logstash安装2.1(前提是安装好jdk)上传logstash,mysql驱动2.2logstash同步配置2.3启动logstashPS:1.logstash简介Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起... 查看详情

logstash:使用logshark来调试logstash及filebeatpipelines(代码片段)

我们知道Logstash及Filebeat在Elasticsearch数据摄入及清理中起到非常大的作用。它们是常用的工具用来对数据进行处理。我们可以运用Logstash丰富的过滤器来处理数据,我们也可以使用Filebeat的processors来处理数据。使用这些工具&#x... 查看详情

logstash:使用logshark来调试logstash及filebeatpipelines(代码片段)

我们知道Logstash及Filebeat在Elasticsearch数据摄入及清理中起到非常大的作用。它们是常用的工具用来对数据进行处理。我们可以运用Logstash丰富的过滤器来处理数据,我们也可以使用Filebeat的processors来处理数据。使用这些工具&#x... 查看详情

logstash:在实施之前测试logstash管道/过滤器(代码片段)

...段来说明这两种情况。在很多的情形下,我们在测试Logstash的过滤器时,并不急于把实际的input的数据接入到过滤器中来进行测试。我们首先来选择一个比较容易理解的input方式,使用一个文档来进行解析,并测试... 查看详情

logstash:在实施之前测试logstash管道/过滤器(代码片段)

...段来说明这两种情况。在很多的情形下,我们在测试Logstash的过滤器时,并不急于把实际的input的数据接入到过滤器中来进行测试。我们首先来选择一个比较容易理解的input方式,使用一个文档来进行解析,并测试... 查看详情

logstash(代码片段)

1.概述  logstash是一个日志转化系统,用户通过定义一个input,filter,和一个output配置来完成日志的收集和存储工作。2.数据类型  booldebug=>truebytes  my_bytes=>"113"#113bytes  stringhost=>"hostname"  numberport=>214  arrayma... 查看详情

elk学习笔记之logstash基本语法

Logstash基本语法: 处理输入的input处理过滤的filter处理输出的output 区域数据类型条件判断字段引用 区域:Logstash中,是用{}来定义区域区域内,可以定义插件一个区域内可以定义多个插件 数据类型:条件判断:字... 查看详情