我们在实际的场景中,经常是多个网站或者服务端在一台服务器上,但是如果这些应用全部
记录到一台logstash服务器,大家日志都混在一起不好区分。
有人说,我可以在日志中打项目名,但是这样并不方便。
其实,我们可以在索引上做文章。
配置如下:
input {
file {
path => ["/Users/KG/Documents/logs/app-a/*.log"]
type => "app-a"
}
file {
path => ["/Users/KG/Documents/logs/app-b/*.log"]
type => "app-b"
}
} output {
stdout {
codec => rubydebug
}
if [type] == "app-a" {
elasticsearch {
hosts => "你的elastic服务器地址:9200"
index => "app-a-%{+YYYY.MM.dd}"
document_type => "log4j_type"
}
}
else if [type] == "app-b" {
elasticsearch {
hosts => "你的elastic服务器地址:9200"
index => "app-b-%{+YYYY.MM.dd}"
document_type => "log4j_type"
}
}
}
从上面的代码可以看出,我们配置了2个索引app-a表示应用A, 而app-b表示应用B。
我们利用了type和path属性,然后对不同路径的日志进行监控,将输入定向到不同的索引。