关于java:elastic-stack-那些事10

32次阅读

共计 1232 个字符,预计需要花费 4 分钟才能阅读完成。

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

正文完
 0