Logstash codec配置

Logstash codec配置
Codec: 解码编码
json, msgpack, edn…

Logstash 处理流程:
input-->decode-->filter-->encode-->output
plain编码
plain是一个空的解析器,它可以让用户自己指定格式。
input {
    stdin { 
	 codec => plain
    }
}

output {
    stdout{ }
}
如果事件数据是json格式,可以加入 codec => json 来进行解析
input {
    stdin {
    }
}
output {
    stdout{
        codec => json
    }
}
?
input  {
     tcp {
        port => 12388
        host=> "127.0.0.1"
        codec=>json_lines{ #如果你的json文件比较长,需要换行那么就得用到json_lines的编码方式了
        }
    }
}

output {
       stdout{ }
}

将采用Ruby Awsome Print库来解析日志
input  {
    stdin {
        codec => json
    }
}
output {
    stdout{
        codec => rubydebug
    }
}

multiline多行事件编码
有时候有的日志会用很多行去展现,这么多行其实都是一个事件。
比如JAVA的异常日志
input  {
    stdin {
        codec => multiline {
            charset =>...         # 字符编码  ,可选
            max_bytes =>          # bytes类型,设置最大的字节数,可选
            max_lines =>          #number类型,设置最大的行数,默认是500行,可选
            multiline_tag =>      #string类型,设置一个事件标签,默认是"multiline" ,可选
            pattern =>...         # string 类型,设置匹配的正则表达式 ,必选                 
	    patterns_dir =>...    #array类型,可以设置多个正则表达式,可选
            negate =>...          # boolean类型,设置正向匹配还是反向匹配,默认是false,可选
            what =>...            # 设置未匹配的内容是向前合并还是向后合并,previous, next 两个值选择,必选
         }
    }
}

input  {
    stdin {
        codec => multiline {
            pattern =>"^\["
            negate => true     #正向匹配默认false
            what => "previous" #向前合并
         }
    }
}
output {
       stdout{ }
}


你可能感兴趣的:(Logstash codec配置)