1、Logstash 篇之入门与运行机制
文章目录
Logstash简述
简介
处理流程
处理流程–Input和Output配置
处理流程–Filter配置
- Grok
- 基于正则表达式提供了丰富可重用的模式(pattern)
- 基于此可以将非结构化数据作结构化处理
- Date
- 将字符串类型的时间字段转换为时间戳类型,方便后续数据处理
- Mutate
- 进行增加、修改、删除、替换等字段相关的处理
处理流程–Filter配置Grok示例
运行logstic
入门及架构简介
- Pipeline
- input-filter-output的3阶段处理流程
- 队列管理
- 插件生命周期管理
- Logstash Event
- 内部流转的数据表现形式
- 原始数据在input被转换为Event ,在output event被转换为目标格式数据
- 在配置文件中可以对Event中的属性进行增删改查
Codec-Input Decoding
Codec-Output Encoding
测试
Life_of_an_Event
具体流程
queue简介
In Memory
- 无法处理进程Crash、机器宕机等情况,会导致数据丢失
Persistent Queue In Disk
- 可处理进程Crash等情况,保证数据不丢失
- 保证数据至少消费一次
- 充当缓冲区,可以替代Kafka等消息队列的作用
Persistent Queue
持久队列工作机制:
数据流向Data-1-2-3-4(红色)
disk备份后PQ告诉input收到数据
然后 数据Data从PQ1-2-3(蓝色)
filter/output会处理Data
2发送ack到PQ 3是把disk的备份数据删掉。处理到此结束。
disk作用是解决数据容灾的问题
一般情况下打开persisted queue
queue.type.persisted
- 默认是memory
queue.max_bytes:4gb
- 队列存储最大数据量
其他的配置
https://www.elastic.co/guide/en/logstash/current/persistent-queues.html
线程简介
相关配置
- pipeline.workers |-w
- pipeline线程数,即filter-output的处理线程数,默认是cpu核数.
- pipeline.batch.size l-b.
- Batcher一次批量获取的待处理文档数,默认125 ,可以根据输出进行调整,越大会占用越多的heap空间,可以通过jvm.options调整
- pipeline.batch.delay |-u
- Batcher等待的时长,单位为ms
GC 分配 线程的一些情况可以下载VisualVM来监控到。
修改thread一个worker
配置简介
logstash配置文件:
logstash设置相关的配置文件(在conf文件夹中, setting files )
- logstash.yml logstash相关的配置,比如node.name, path.data, pipeline.workers, queue.type等,这其中的配置可以被命令行参数中的相关参数覆盖
- jvm.options修改jvm的相关参数,比如修改heap size等
pipeline配置文件定义数据处理流程的文件,以.conf结尾
logstash.yml:
logstash.yml常用配置项
- 节点名,便于识别
path.data
- 持久化存储数据的文件夹,默认是logstash home目录下的data
path.config
- 设定pipeline配置文件的目录
path.log
- 设定pipeline日志文件的目录
pipeline.workers
- 设定pipeline的线程数(filter+output) ,优化的常用项
pipeline.batch.size/delay
- 设定批量处理数据的数目和延迟
queue.type
- 设定队列类型,默认是memory
queue.max_bytes
- 队列总容量,默认是1g
logstash命令行配置项
--node.name
-f --path.config pipeline路径,可以是文件或者文件夹
--path.settings logstash配置文件夹路径,其中要包含logstash.yml
-e --config.string指明pipeline内容,多用于测试使用
-w --pipeline.workers
-b --pipeline.batch.size
--path.data
--debug.
-t --confia.test and exit
正确示例
错误示例
详细日志输出 –debug
两种配置使用场合
·线上环境推荐采用配置文件的方式来设定logstash的相关配置,这样可以减少犯错的机会,而且文件便于进行版本化管理
·命令行形式多用来进行快速的配置测试、验证、检查等
多实例运行
logstash多实例运行方式
先修改instance1/config的配置
默认加载config目录
pipeline配置简介
pipeline配置语法
例子