logstash java 日志过滤拆分规则

该文章详细描述了使用Logstash从Kafka中读取以JSON编码的日志,然后通过Grok过滤器解析特定格式的Java日志,区分Feign请求和Controller请求。解析后的数据进一步处理并添加自定义字段,最后将结果发送到Elasticsearch进行存储和索引。
摘要由CSDN通过智能技术生成

logstash java 日志过滤拆分规则

input {
  kafka{
     bootstrap_servers => "127.0.0.1:9092"
     auto_offset_reset => "latest"
     topics_pattern => "index.*"
     consumer_threads => 5
     codec => "json"
  }

}
filter {
        grok {
            match => { "message" => "(?m)^%{TIMESTAMP_ISO8601:createTime}%{SPACE}#%{IP:ip_address}#%{SPACE}#%{DATA:service}#%{SPACE}%{DATA}%{SPACE}\[%{DATA:thread}\]%{SPACE}%{LOGLEVEL:level}%{SPACE}%{DATA:logger}%{SPACE}-%{SPACE}(?<msg>.*)" }
            }
        mutate {
            remove_field => ["message"]
        }

        if [msg] =~ /FeignRequestInterceptor/ {
            grok {
                match => { "msg" => "(?m).*请求方式 : %{WORD:http_method}.*访问地址 : %{URIPATHPARAM:uri_path}.*请求参数 : (?<uri_param>[A-Za-z0-9$.+!*'|(){},~@#%&/=:;_?\-\[\]<>]*).*\{current_id=\[%{NUMBER:uid}\].*traceId=\[%{DATA:traceId}\].*" }
                add_field => { "log_type" => "feign" }
                remove_field => ["msg"]
            }
        }
}
filter {
    if [msg] =~ /ControllerRequestLog/ {
        grok {
            match => { "msg" => "(?m).*URL:\[%{WORD:http_method}-%{DATA:uri_path}\]\$Method.*?\.%{WORD:method}\]\$Args:\[%{DATA:args}\]$" }
            add_field => { "log_type" => "controller" }
            remove_field => ["msg"]
        }
    } 
}


output {
       elasticsearch{  
            hosts => "127.0.0.1:9200" 
            index => "%{service}"  
        }
        stdout {
            codec => rubydebug
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值