elastic stack 那些事【11】

input 插件指定数据输入源 一个pipeline可以有多个input插件 主要有三 stdin file kafka
最简单的输入 从标准输入读取数据 通用配置为

  1. codec 类型为codec
  2. type类型为string 自定义该事件的类型 可用于后续判断
  3. tags类型为array 自定义该事件的tag 可用于后续判断
  4. add_field 类型为hash 为该事件添加字段

input plugin file

从文件读取数据 如日志文件 文件通常要解决几个问题

  1. 文件内容如何只被读取一次,即重启ls是,从上次位置继续读 -sincedb
  2. 如何读取到文件的新内容 定时检查文件是否更新
  3. 如何发现新文件并进行读取 定时检查文件
  4. 文件发生了归档 rotation 操作 是否影响当前的内容读取?不影响 被归档的文件内容可以继续被读取
  5. path类型 为 数据 指定读取的文件路径 基于 glob匹配语法

    1. path => ["/var/log/*/.log"]
  6. exclude 乐星为数据 排除不想监听的文件规则 基于glob匹配语法

    1. exclude => "*.gz"
  7. sincedb_path 类型为字符串 记录sincedb文件路径
  8. start_position类型为字符串 beginning or end 是否从头读取文件
  9. stat_interval 类型为数值 单位秒 定时检查文件是否更新
  10. discover_interval 类型为数据 单位秒 定时检查是否有新文件待读取,默认15秒
  11. ignore_older 类型为数据 单位秒 扫描文件列表时 如果该文件上次更改事件超过设定时长,则不做处理,但依然会监控是否有新内容
  12. close_older类型为数值 单位秒 如果监听的文件超过该设定事件内没有新内容 会变为关闭文件句柄 释放资源 但依然会监控是否有新内容 默认3600秒 即一个小时

codec plugin

codec plugin 作用域input和output plugin 负责将数据在原始与logstash event 之间做转换 常见的有

  1. plain 读取原始内容
  2. dots 将内容简化为点进行输出
  3. rubydebug 将logstash events 按照ruby格式输出 方便调试
  4. line 处理带有换行符的内容
  5. json处理json格式内容
  6. multiline处理多行数据

codec plugin multiline

  1. pattern 设置行匹配的正则表达式 可以使用grok
  2. what previous|next 如果匹配成功 那么匹配行是归属上一个事件还是下一个事件
  3. negate true or false是否对pattern的结果取反

filter plugin

filter是ls功能强大的主要原因 可以对logstashevent 进行风服的处理 例如 解析数据 删除字段 类型转换等 常见如下

  1. date 日期解析
  2. grok 正则匹配解析
  3. dissect 分隔符解析
  4. mutate 对字段处理 例如 重命名 删除 替换
  5. json 按照 json解析字段内容到指定字段
  6. geoip 增加地理位置数据
  7. ruby 利用ruby代码动态修改logstash event

date

  1. match 类型为数组 用于指定日期匹配格式 可一次指定多种日期格式

    1. match => ["logdate", "MMM dd yyyy HH:mm:ss","MMM d yyyy HH:mm:sss","ISO8601"]
    2. target 类型为字符串 用于指定赋值的字段名 默认是@timestamp
    3. timezone 类型为字符串 用于指定时区

你可能感兴趣的:(java)