前置条件:Linux Logstash 5.5.0(其余版本请查阅一下文档)json
使用logstash把日志从文件输出到文件,根据输入文件的路径,肯定输出文件的文件名。配置以下:app
input {
stdin{}
file {
path => "/tmp/app1/instance1/access.log"
start_position => "beginning"
}
}
filter {
grok {
match => {
"path" => "(?<app_name>app\d?)"
}
}
grok {
match => {
"path" => "(?<app_instance>instance\d?)"
}
}
grok {
match => {
"message" => "^(?<request_time>\d{4}-\d{2}-\d{2})\t"
}
}
}
output {
stdout {
codec => "json"
}
file {
codec => "json"
path => "/tmp/%{app_name}_%{app_instance}_%{request_time}.olog"
}
}日志
若是不想用多个grok,能够配置一个grok,而后将属性break_on_match设置为false。code
grok {文档
break_on_match => false
match => {
"path" => "(?<app_name>app\d?)"input
"path" => "(?<app_instance>instance\d?)"it
"message" => "^(?<request_time>\d{4}-\d{2}-\d{2})\t"
}
}io