Logstash

简介


Logstash也是一个数据收据的工具,但是它会比beats占用更多的资源,同时更能也更强大。

Logstash会对数据进行提取、转换和输出。

官方定义是:一个数据处理流,能够同时从多个源提取、转换、发送数据。

处理流程


Input

支持从file,redis,beats,kafka等读取数据。

Filter

这一环是远强于Beats的地方,它支持:
- grok:基于正则可以将非格式化的数据转化成格式化数据的语法
- mutate:对于结构化的数据字段进行增删改查
- drop
- date

Output

支持向标准输出、es、redis、kafka等输出

Logstash Filter、Input和Output配置


Input

input {file{path => "/tmp/abc.log"}}

它的格式不是yml语法,这里指定了输入的是文件类型,并且说明了文件的位置。

Output

output {stdout{codec => rubydebug}}

指定了项标准输出输出,并且使用rubydebug进行编码

Filter

Grok

这个是基于正则表达式,提供了丰富可重用的模式的语法。基于此可以将非结构化的数据转化成结构化数据进行处理。

假设有一个nginx日志的内容如下:

1.1.1.1 GET /index.html 1000 0.05

分别表示请求ip,请求方式,请求内容,文件大小,响应时间

使用Grok处理的方式如下:

%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}

%指明这是一个Grok,IP这种大写的表示Grok内置的正则表达式,只需要指定这种名称就可以调用内置正则了。后面小写的如method表示结构化后的字段名。

Date

可以将字符串类型的字段转换成时间戳类型,方便后续的处理。

Mutate

进行增删改查等字段相关处理。

Logstash收集Nginx log


下载logstash

可以使用命令下载:

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.4.tar.gz

解压并设置属主

tar zxf logstash-5.6.4.tar.gz
mv logstash-5.6.4 /usr/local/
chown -R elastic:elastic /usr/local/logstash-5.6.4/

设置配置文件

input {
  stdin { }
}

filter {
  grok {
    match => {
      "message" => '%{IPORHOST:remote_ip} - %{DATA:user_name} \[%{HTTPDATE:time}\] "%{WORD:request_action} %{DATA:request} HTTP/%{NUMBER:http_version}" %{NUMBER:response} %{NUMBER:bytes} "%{DATA:referrer}" "%{DATA:agent}"'
    }
  }

  date {
    match => [ "time", "dd/MM/YYYY:HH:mm:ss Z" ]
    locale => en
  }

  geoip {
    source => "remote_ip"
    target => "geoip"
  }

  useragent {
    source => "agent"
    target => "user_agent"
  }
}

output {
stdout {
  codec => rubydebug
}
}

配置文件中通过grok将log文件的一行转化成为了结构化数据,date将字符串时间转化为时间戳。

运行

head -3 /var/log/nginx/access.log | bin/logstash -f nginx_logstash.conf

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值