(十二):Logstash简介

1、Logstash的概念

  Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到选择的目的地。

0

2、Logstash的特点

2.1、日志与指标

  Logstash可以处理所有类型的日志数据,轻松地摄取大量的web日志(如Apache)和应用程序日志(如Java的log4j),可以捕获许多其他日志格式,如syslog、网络和防火墙日志等;

  支持Filebeat的安全日志转发功能;

  支持通过TCP和UDP从Ganglia、colltd、NetFlow、JMX和许多其他基础设施和应用程序平台收集指标。

2.2、采集网络数据

2.2.1、将HTTP请求转换为事件

  Logstash支持使用网络服务进行数据分析,同时支持许多监视器警报用例。

2.2.2、根据需要轮询HTTP端点来创建事件

  从web应用程序接口捕获健康、性能、指标和其他类型的数据。

2.3、数据存储和数据流

  从已经拥有的数据中发现更多价值,进行数据挖掘和分析。

  数据来源可以是来自任何关系型数据库或NoSQL数据库,也可以是来自消息队列(如Apache Kafka、RabbitMQ和Amazon SQS)的不同数据流。

3、Logstash的工作组件

  Logstash事件处理管道有三个阶段:inputs → filters → outputs。inputs:生成事件;filters:修改事件;outputs:将处理后的事件输出到目的地。

  inputs 和 outputs 支持编解码器,可以再数据进入或退出管道时对其进行编码或解码,从而不需要使用单独的过滤器。即,Logstash有两个必需的元素(输入和输出)和一个可选元素(过滤器)。

 

0

 

  inputs 输入插件读取源数据,filters 过滤插件可修改数据,outputs 输出插件将数据写入目的地。

3.1、inputs

  inputs 是数据的输入,对接的是数据源,常用 inputs如下:

file
读取文件系统上的一个文件
syslog
在端口514上监听syslog消息,按照RFC3164格式进行解析
Redis
从Redis服务器读取数据,使用Redis通道和Redis列表
beats
处理Beats发送的事件

3.2、Filters

  过滤器是Logstash管道中的中间处理设备,可以设置条件,以便处理满足特定条件的事件。

gork
解析和构建任意文本,Grok目前是Logstash中将非结构化日志数据解析为结构化和可查询的内容的最佳方式
mutate
对事件字段执行转换。可以重命名、删除、替换和修改事件中的字段。
drop
删除事件
clone
创建事件的副本,可能会添加或删除字段
geoip
添加IP地址的地理位置信息

3.3、Outputs

  Outputs 是Logstash管道的最后阶段。事件可以通过多个 Outputs 传递,但是一旦完成所有 Outputs 处理,就完成了事件的执行。

  常用的Outputs如下:

elasticsearch
发送事件数据到Elasticsearch,可以高效、方便、易于查询的格式保存事件数据
file
将事件数据写入磁盘上的文件
graphite
将事件数据发送到graphite,这是一种流行的用于存储和绘制指标的开源工具
statsd
发送事件数据到statsd,statsd通过侦听UDP发送的统计信息,如计数器和计时器,并将聚合信息发送到一个或多个可插入的后端服务

3.4、Codecs

  编解码器基本上是流过滤器,可以作为输入或输出的一部分进行操作。编解码器可以轻松地将消息的传输与序列化过程分离开来。当前流行的编解码器包括json、msgpack和plain (text)。

json
对数据进行json格式的编码或解码
multiline
将多行文本事件(如Java exception和stacktrace消息)合并为单个事件
 
posted @ 2024-01-25 14:30  无虑的小猪  阅读(51)  评论(0编辑  收藏  举报