input 插件指定数据输入源 一个pipeline可以有多个input插件 主要有三 stdin file kafka
最简单的输入 从标准输入读取数据 通用配置为
- codec 类型为codec
- type类型为string 自定义该事件的类型 可用于后续判断
- tags类型为array 自定义该事件的tag 可用于后续判断
- add_field 类型为hash 为该事件添加字段
input plugin file
从文件读取数据 如日志文件 文件通常要解决几个问题
- 文件内容如何只被读取一次,即重启ls是,从上次位置继续读 -sincedb
- 如何读取到文件的新内容 定时检查文件是否更新
- 如何发现新文件并进行读取 定时检查文件
- 文件发生了归档 rotation 操作 是否影响当前的内容读取?不影响 被归档的文件内容可以继续被读取
path类型 为 数据 指定读取的文件路径 基于 glob匹配语法
- path => ["/var/log/*/.log"]
exclude 乐星为数据 排除不想监听的文件规则 基于glob匹配语法
- exclude => "*.gz"
- sincedb_path 类型为字符串 记录sincedb文件路径
- start_position类型为字符串 beginning or end 是否从头读取文件
- stat_interval 类型为数值 单位秒 定时检查文件是否更新
- discover_interval 类型为数据 单位秒 定时检查是否有新文件待读取,默认15秒
- ignore_older 类型为数据 单位秒 扫描文件列表时 如果该文件上次更改事件超过设定时长,则不做处理,但依然会监控是否有新内容
- close_older类型为数值 单位秒 如果监听的文件超过该设定事件内没有新内容 会变为关闭文件句柄 释放资源 但依然会监控是否有新内容 默认3600秒 即一个小时
codec plugin
codec plugin 作用域input和output plugin 负责将数据在原始与logstash event 之间做转换 常见的有
- plain 读取原始内容
- dots 将内容简化为点进行输出
- rubydebug 将logstash events 按照ruby格式输出 方便调试
- line 处理带有换行符的内容
- json处理json格式内容
- multiline处理多行数据
codec plugin multiline
- pattern 设置行匹配的正则表达式 可以使用grok
- what previous|next 如果匹配成功 那么匹配行是归属上一个事件还是下一个事件
- negate true or false是否对pattern的结果取反
filter plugin
filter是ls功能强大的主要原因 可以对logstashevent 进行风服的处理 例如 解析数据 删除字段 类型转换等 常见如下
- date 日期解析
- grok 正则匹配解析
- dissect 分隔符解析
- mutate 对字段处理 例如 重命名 删除 替换
- json 按照 json解析字段内容到指定字段
- geoip 增加地理位置数据
- ruby 利用ruby代码动态修改logstash event
date
match 类型为数组 用于指定日期匹配格式 可一次指定多种日期格式
- match => ["logdate", "MMM dd yyyy HH:mm:ss","MMM d yyyy HH:mm:sss","ISO8601"]
- target 类型为字符串 用于指定赋值的字段名 默认是@timestamp
- timezone 类型为字符串 用于指定时区
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。