1、Filter
- 功能
- groke
- 正则匹配,用法格式
- vim usercase/filter-groke.json
input {stdin{}}
filter {
grok {
match => {
"message" => "(?<date>\d+\.\d+)\s+"
}
}
}
output {stdout{codec => rubydebug}}
- 实现输入【数字.数字 】,就会将这个符合正则的数据变成date字段
- 应用场景:日志搜索引擎
- 问题:采集到的日志是作为一个整体存储在ES中,还是切分成每个字段存储
- 需求:将需要查询的条件作为字段
- 日志:
- #一条日志
- INFO 20200101 this is a file
- 需求:想查询所有WARN级别的日志
- 不将日志级别单独作为一列,只能做整体的模糊匹配
- 即将日志级别作为单独的一列,只做精准匹配
- 日志级别
- 日志
- INFO 20200101 this is a file
- WARN 20202010 this is another file
2、Output
vim usercase/output-file.json
input {stdin{}}
output {
file {
path => "/export/servers/es/logstash-6.0.0/usercase/datas/%{+YYYY-MM-dd}-%{host}.txt"
codec => line {
format => "%{message}"
}
flush_interval => 0
}
}
vim usercase/output-es.json
input {stdin{}}
output {
elasticsearch {
hosts => ["node-01:9200"]
index => "logstash-%{+YYYY.MM.dd}"
}
}