logstash架构

  1. pipeline

    1. input-filter-output 3阶段解决流程
    2. 队列治理
    3. 插件生命周期治理
  2. logstash event

    1. 外部流转的数据表现性时
    2. 原始数据在input被转换为event 在output event被转换为指标格局数据
    3. 在配置文件中可对event中的属性进行增删改查

queue

  1. in memory 无奈解决 crash 宕机等状况 导致数据失落
  2. persistent queue in disk

    1. 可解决crash 等状况 数据不会失落
    2. 保证数据至多生产一次
    3. 充当缓冲区 代替kafka等音讯队列
  3. queue.type:persisted (default memory)
  4. queue.max_bytes:4gb 队列存储最大数据量

线程配置

  1. pipeline.workers|-w pipeline线程数即filter_output解决线程数 默认是cpu核数
  2. pipeline.batch.size|-b batcher 一次批量获取待处理文档数 默认125 能够依据输入进行调整 越大 占用的heap空间 能够通过jvm.options调整
  3. pipeline.batch.delay|-u Batcher期待的时长 单位为ms

配置

  1. logstash 设置配置文件

    1. logstash.yml logstash配置 例如 node.name path.data pipeline.workers queue.type
    2. jvm.options 批改jvm参数 例如 heap size
  2. pipeline 定义数据处理流程文件以conf结尾

多实例运行

  1. bin/logstash --path.settings instance1/2
  2. 不同的instance中批改logstash.yml 自定义path.data 确保其不雷同

pipeline 配置

用于配置 input filter output 插件
input{}
filter{}
output{}

次要的数值类型

  1. boolean : isFailed => true
  2. 数值类型 Number port=>33
  3. 字符串类型 String name=>"hello world"
  4. 数组

    1. users => [{id=>1, name=>bob},{id=>2, name=> lili}]
    2. path => ["/var/log/messages","/var/log/*.log"]
  5. hash
    match=>{

     "filed1" => "value1" "field2" => "value2"

    }

  6. 正文 #
  7. 在配置中能够援用logstash event 的属性 次要有两种形式

    1. 间接援用字符串

      1. 世界援用字段值 应用[]即可 例如 [request] ua
    2. 在字符串中以sprintf形式援用

      1. 应用%{}来实现 例如 req => "request is %{request}"
  8. 反对条件判断语法 if expression {} else if expression {} else {}
  9. 表达式蕴含的操作符

    1. 比拟:== != <> <= >=
    2. 正则是否匹配:=~ !~
    3. 蕴含(字符串或者数组): in、 not in
    4. 布尔操作符: and or nand xor !
    5. 分组操作符:()