LogStash事件处理管道具有三个阶段:input->filter->output。input生成事件,filter修改它们,output将它们发送到其他地方。input和output支持编解码器,能够在数据进入或退出管道时对其进行编码或解码,而无需使用单独的过滤器
1.input
input插件的官方文档
使用输入将数据输入LogStash,一些常用的输入包括:
-
file
:从文件系统上的文件中读取 -
syslog
:在514端口上监听syslog消息并根据RFC3164格式进行解析 -
beats
:处理Beats发送的事件
2.filter
filter是LogStash管道中的中间处理设备。如果事件符合特定条件,可以将过滤器与条件结合起来对事件执行操作。一些常用的过滤器包括:
-
grok
:解析和构造任意文本。Grok目前是LogStash中将非结构化日志数据解析为结构化和可查询的最佳方式 -
mutate
:对事件字段执行一般转换。可以重命名、删除、替换和修改事件中的字段 -
drop
:完全删除事件,例如调试事件 -
clone
:复制一个事件,可能添加或删除字段 -
geoip
:添加有关IP地址地理位置的信息系
3.output
output是LogStash的最后阶段。一个事件可以通过多个输出,但是一旦所有输出处理完成,事件就完成了它的执行。一些常用的输出包括:
-
elasticsearch
:将事件数据发送到ElasticSearch。 -
file
:将事件数据写入磁盘上的文件 -
graphite
:将事件数据发送到Graphite,用于存储和绘制指标 -
statsd
:将事件数据发送到statsd,这是一项“监听统计信息,如计数器和计时器,通过UDP发送并将聚合发送到一个或多个可插入后端服务”的服务
4.codec
codec是基础的流过滤器,可以作为输入或输出的一部分进行操作。编码器能够将消息的传输与序列化过程分开。
-
json
:以JSON格式编码或解码数据 -
multiline
:将多行文本事件合并为单个事件