一,Logstash正则匹配redis日志及时间戳

一,Logstsh日志时间字段及正则匹配

例:redis

if "redis"  in [tags] {
        grok {
        #正则匹配
        match => [ "message", "(?<pid>.\d+?):(?<role>\w?)\s+(?<logdate>%{MONTHDAY}\s+%{MONTH}\s+%{HOUR}:%{MINUTE}:%{SECOND}?)\s+(?<log_level>.?)\s%{GREEDYDATA:message}" ]
            #overwrite => [ "message" ]
    }
    #根据log_level字段符号替换为相应的级别
    if [log_level] == "*" {
        mutate{ update => {"log_level" => "NOTICE"}}
        }

        if [log_level] == "#" {
            mutate{ update => {"log_level" => "WARNING"}}
        }

        if [log_level] == "-" {
            mutate{ update => {"log_level" => "VERBOSE"}}
        }

        if [log_level] == "." {
            mutate{ update => {"log_level" => "DEBUG"}}
        }
    #根据redis日志中的时间格式修改替换elk中默认的时间字段
    date {
                match => [ "logdate", "dd MMM HH:mm:ss", "dd MMM HH:mm:ss.SSS" ]
        remove_field => [ "logdate" ]
        }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。