Logstash工作原理

Logstash事件处理有三个阶段:inputs → filters → outputs,如下图所说。是一个接收,处理,转发日志的工具。支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型。
在这里插入图片描述

Input(输入)

输入数据到logstash。

一些常用的输入为:

  • file:从文件系统的文件中读取,类似于tial -f命令

  • syslog:在514端口上监听系统日志消息,并根据RFC3164标准进行解析

  • redis:从redis service中读取

  • beats:从filebeat中读取

Filters(过滤器)

数据中间处理,对数据进行操作。

一些常用的过滤器为:

  • grok:解析任意文本数据,Grok 是 Logstash 最重要的插件。它的主要作用就是将文本格式的字符串,转换成为具体的结构化的数据,配合正则表达式使用。内置120多个解析语法。

官方提供的grok表达式:https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns
grok在线调试:https://grokdebug.herokuapp.com/

  • mutate:对字段进行转换。例如对字段进行删除、替换、修改、重命名等。

  • drop:丢弃一部分events不进行处理。

  • clone:拷贝 event,这个过程中也可以添加或移除字段。

  • geoip:添加地理信息(为前台kibana图形化展示使用)

Outputs(输出)

outputs是logstash处理管道的最末端组件。一个event可以在处理过程中经过多重输出,但是一旦所有的outputs都执行结束,这个event也就完成生命周期。

一些常见的outputs为:

  • elasticsearch:可以高效的保存数据,并且能够方便和简单的进行查询。

  • file:将event数据保存到文件中。

  • graphite:将event数据发送到图形化组件中,一个很流行的开源存储图形化展示的组件。

  • statsd:将事件数据发送到statsd,这是一种“侦听统计信息,如计数器和定时器,通过UDP发送并将聚合发送到一个或多个可插入后端”的服务。

编解码器codecs

codecs 是基于数据流的过滤器,它可以作为input,output的一部分配置。Codecs可以帮助你轻松的分割发送过来已经被序列化的数据。

一些常见的codecs:

json:使用json格式对数据进行编码/解码。

multiline:将汇多个事件中数据汇总为一个单一的行。比如:java异常信息和堆栈信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值