Pipeline
- input-filter-output 的3阶段处理流程
- 队列管理
- 插件生命周期管理
Logstash Event
- 内部流转的数据表现形式
- 原始数据在input 被转换为 Event,在output event 被转换为目标格式数据
-在配置文件中可以对 ?Event 中的属性进行增删改查
In Memory
无法处理进程 Crash、机器宕机等情况,会导致数据丢失
Persistent Queue In Disk
可处理进程Crash等情况,保证数据不丢失
保证数据至少消费一次
充当缓冲区,可以替代Kafka等消息队列的作用
queuetype:persisted
默认是memory
queue.max_bytes:4gb
队列存储最大数据量
pipeline.workers-w
- pipeline 线程数,即filter_output的处理线程数,默认是cpu 核数
-pipeline.batch.size | -b
Batcher 一次批量获取的待处理文档数,默认125,可以根据输出进行调整,越大会占用越多的 heap空间,可以通过jvm.options 调整
-pipeline.batch.delay | -u
Batcher等待的时长,单位为 ms
Codec Plugin 作用于input 和 output plugin,负责将数据在原始与 LogstashEvent 之间转换,常见的 codec有:
-plain 读取原始内容
-dots 将内容简化为点进行输出
- rubydebug 将Logstash Events 按照ruby 格式输出,方便调试
- line处理带有换行符的内容
-json处理json格式的内容
-multiline处理多行数据的内容
·Filter 是Logstash 功能强大的主要原因,它可以对 Logstash Event 进行丰富的处理,比如解析数据、删除字段、类型转换等等,常见的有如下几个
-date日期解析
-grok正则匹配解析
-dissect 分割符解析
- mutate 对字段作处理,比如重命名、删除、替换等json 按照json 解析字段内容到指定字段中
-geoip 增加地理位置数据
-ruby利用ruby代码来动态修改 Logstash Event