Logstash配置——变量的使用

前置条件: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

相关文章
相关标签/搜索