logstash架构
pipeline
- input-filter-output 3阶段解决流程
- 队列治理
- 插件生命周期治理
logstash event
- 外部流转的数据表现性时
- 原始数据在input被转换为event 在output event被转换为指标格局数据
- 在配置文件中可对event中的属性进行增删改查
queue
- in memory 无奈解决 crash 宕机等状况 导致数据失落
persistent queue in disk
- 可解决crash 等状况 数据不会失落
- 保证数据至多生产一次
- 充当缓冲区 代替kafka等音讯队列
- queue.type:persisted (default 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
配置
logstash 设置配置文件
- logstash.yml logstash配置 例如 node.name path.data pipeline.workers queue.type
- jvm.options 批改jvm参数 例如 heap size
- pipeline 定义数据处理流程文件以conf结尾
多实例运行
- bin/logstash --path.settings instance1/2
- 不同的instance中批改logstash.yml 自定义path.data 确保其不雷同
pipeline 配置
用于配置 input filter output 插件
input{}
filter{}
output{}
次要的数值类型
- boolean : isFailed => true
- 数值类型 Number port=>33
- 字符串类型 String name=>"hello world"
数组
- users => [{id=>1, name=>bob},{id=>2, name=> lili}]
- path => ["/var/log/messages","/var/log/*.log"]
hash
match=>{"filed1" => "value1" "field2" => "value2"
}
- 正文 #
在配置中能够援用logstash event 的属性 次要有两种形式
间接援用字符串
- 世界援用字段值 应用[]即可 例如 [request] ua
在字符串中以sprintf形式援用
- 应用%{}来实现 例如 req => "request is %{request}"
- 反对条件判断语法 if expression {} else if expression {} else {}
表达式蕴含的操作符
- 比拟:== != <> <= >=
- 正则是否匹配:=~ !~
- 蕴含(字符串或者数组): in、 not in
- 布尔操作符: and or nand xor !
- 分组操作符:()