elastic stack 那些事【10】

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. 分组操作符:()

你可能感兴趣的:(java)