Logstash 数据采集框架详解

一、Logstash 介绍

logstash是一个用来管理事件和日志的工具,它的作用是收集日志,解析日志,存储日志为以后使用。

Logstash 是一个轻量级、强大的日志处理工具,可以用来分散的、多样化的日志搜收集起来、自定义过滤处理转换、存储日志数据到某个文件或者服务器。用于从文件中收集日志事件。

Logstash 也可以进行数据的转换:Logstash提供了多种输入和输出插件,可以从各种数据源读取数据,并将其发送到各种目标。对于SQL数据库,Logstash提供了一些特定的输入和输出插件,如JDBC输入插件和JDBC输出插件,可以方便地与关系型数据库进行数据交互。通过配置Logstash的输入和输出插件,你可以定义数据源和目标的连接信息、查询语句或写入操作,以实现数据迁移。

对于NoSQL数据库,Logstash也提供了一些特定的输入和输出插件,如Elasticsearch输入插件和Elasticsearch输出插件,可以与Elasticsearch进行数据交互。此外,Logstash还支持其他NoSQL数据库,如MongoDB和Cassandra,可以使用相应的插件进行数据迁移

Logstash 能够动态地采集、转换和传输数据,不受格式或复杂度的影响。利用 Grok 从非结构化数据中派生出结构,从 IP 地址解码出地理坐标,匿名化或排除敏感字段,并简化整体处理过程

logstash处理事件有三个阶段:input —> filter —> output。input产生事件,filter 对事件进行修改,output输出到其它地方。

在这里插入图片描述

  • 数据输入采集阶段:
    采集各种样式、大小和来源的数据:数据往往以各种各样的形式,或分散或集中地存在于很多系统中。Logstash 支持各种输入选择,可以同时从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。

  • 筛选
    数据从源传输到存储库的过程中,Logstash 筛选器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便进行更强大的分析和实现商业价值。
    Logstash 能够动态地转换和解析数据,不受格式或复杂度的影响:

    • 利用 Grok 从非结构化数据中派生出结构
    • 从 IP 地址破译出地理坐标
    • 将 PII 数据匿名化,完全排除敏感字段
    • 简化整体处理,不受数据源、格式或架构的影响。

    使用我们丰富的筛选器库和功能多样的 Elastic Common Schema,您可以实现无限丰富的可能。

  • 输出
    选择您的存储库,传输您的数据
    尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。
    Logstash 提供了众多输出选择,您可以将数据发送到所需的位置,并且能够灵活地解锁众多下游用例。

二、配置文件

Logstash配置文件位于Logstash安装目录下bin/logstash.conf

启动参数

启动命令:

logstash -f logstash.conf

其中我们启动的时候给Logstash脚本传入了-e的参数,但实际上,Logstash的启动参数有很多,我们来看一下各个启动参数的作用:

-e #立即启动实例,例如:./logstash -e “input {stdin {}} output {stdout {}}”
-f #指定启动实例的配置文件,例如:./logstash -f config/test.conf
-t #测试配置文件的正确性,例如:./logstash -f config/test.conf -t
-l #指定日志文件名称,例如:./logstash -f config/test.conf -l logs/test.log
-w #指定filter线程数量,不指定默认是5,例如:./logstash-f config/test.conf -w 8

配置文件介绍

文件 描述
logstash.yml 配置Logstash的yml。
pipelines.yml 包含在单个Logstash实例中运行多个管道的框架和说明。
jvm.options 配置Logstash的JVM,使用此文件设置总堆空间的初始值和最大值,此文件中的所有其他设置都被视为专家设置。
log4j2.properties 包含log4j 2库的默认设置。

logstash.yml

logstash.yml 配置 es 数据推送的地址
在这里插入图片描述

logstash.con

logstash.con 文件 主要用于定义数据处理插件配置

logstash.conf配置文件结构
input {
   
   
    #标准输入源插件
    stdin {
   
   
    }
    #普通文件源插件
    file {
   
   
        path => ["/var/log/*.log", "/var/log/message"]
       ....
    }
   ......
}
filter {
   
   
      #grok过滤插件
      grok {
   
   
            match => ["message", "%{HTTPDATE:logdate}"]
            .....
      }
     #date过滤插件
     date {
   
   
            match => ["logdate", "dd/MMM/yyyy:HH:mm:ss Z"]
           .....
    }
   .....
}
output {
   
   
     stdout {
   
   
     }
     elasticsearch {
   
   
        hosts => ["127.0.0.1:9200"]
        ....
    }
    .....
}

input 输入插件;filter 过滤器插件;output 输出插件。

配置文件结构示例

input {
   
   
  file {
   
   
    path => "/home/test/logstash/ml-25m/movies.csv"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}
filter {
   
   
  csv {
   
   
    separator => ","
    columns => ["id","content","genre"]
  }

  mutate {
   
   
    split => {
   
    "genre" => "|" }
    remove_field => ["path", "host","@timestamp","message"]
  }

  mutate {
   
   

    split => ["content", "("]
    add_field => {
   
    "title" => "%{[content][0]}"}
    add_field => {
   
    "year" => "%{[content][1]}"}
  }

  mutate {
   
   
    convert => {
   
   
      "year" => "integer"
    }

三 、插件基础

logstash功能很强大。从 logstash 1.5.0 版本开始,logstash 将所有的插件都独立拆分成 gem 包。这样每个插件都可以独立更新,不用等待 logstash 自身做整体更新的时候才能使用了。为了达到这个目标,logstash 配置了专门的 plugins 管理命令

logstash通过管道完成数据的采集与处理,管道配置中包含input、output和filter(可选)插件,input和output用来配置输入和输出数据源、filter用来对数据进行过滤或预处理,阿里云Logstash支持多管道并行运行,目前最多支持20个;
每个配置部分可以包含一个或多个插件。例如,指定多个filter插件,Logstash会按照它们在配置文件中出现的顺序进行处理。

1.Logstash插件分类

  • inputs:输入
  • codecs:解码
  • filters:过滤
  • outputs:输出

2. logstash 中支持的数据类型

Boolean,例如:ssl_enable => true
Number,例如:port => 33
String,例如:name => “Hello world”
hash,例如:options =>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值