介绍
Filebeat 在应用中往往会采集不同的日志,业务上会对不同的日志进行不同的存储。Logstash 如何判断两个日志,需要在 Filebeat 加入一字段用来区别,Logstash 使用区别字段来区分。
案例
1. filebeat 配置文件
添加 type 字段,并赋值
filebeat.inputs:
- type: log
tail_files: true
backoff: "1s"
paths:
- /var/logs/applog/*.txt
fields:
type: apptxt
fields_under_root: true
- type: log
tail_files: true
backoff: "1s"
paths:
- /var/logs/appjson/*.json
fields:
type: appjson
fields_under_root: true
output:
logstash:
hosts: ["192.168.200.165:5044"]
type: appjson 、type: apptxt :自定义字段,logstash 接收信息,根据次字段走不同 Pipeline。
2. logstash 配置文件
通过 filebeat 定义的 type 字段做判断
input {
beats {
port => "5044"
type => "port"
}
}
filter {
if [type] == "appjson" {
json {
source => "message"
remove_field => ["message","@version","path","beat","input","log","offset","prospector","source","tags"]
}
}
}
output {
if [type] == "apptxt" {
stdout {
codec => rubydebug
}
}
else if [type] == "appjson" {
stdout {
codec => rubydebug
}
}
}
3. 启动 filebeat logstash
参照其他博客,本篇不做讲解