filebeat+logstash对springcloud项目日志进行解析

本文介绍了如何使用Filebeat和Logstash对一个SpringCloud项目的三种日志(启动日志、Controller层操作日志、非Controller层异常日志)进行解析。项目日志采用不同格式,需通过匹配规则进行处理。Logstash的配置中,结合了正则表达式和内置语法,并使用json解析Controller层的日志。同时,文章也提到了Filebeat的配置,以处理多行日志并设置日志发送方式。
摘要由CSDN通过智能技术生成

项目地址:https://gitee.com/lwydyby/springcloud-adplatform
该项目的日志目前可以分为三种:
(1)项目启动日志
(2)controller层的操作日志(通过aop实现记录)
(3)项目非controller层异常日志
由于分为3种格式,则需要三种macth进行匹配:

grok {       
        match => ["message","%{TIMESTAMP_ISO8601:timestamp} \[%{NOTSPACE:thread}\] %{WORD:type}  com.gameley.common.Interceptor.HttpAspect - %{GREEDYDATA:log_json}",
        "message","%{TIMESTAMP_ISO8601:timestamp} \[%{NOTSPACE:thread}\] %{WORD:type} %{NOTSPACE:classname} \- (?<error>[\s\S]*)",
         "message","%{TIMESTAMP_ISO8601:timestamp} \[%{NOTSPACE:thread}\] %{WORD:type}  %{NOTSPACE:classname} \- %{GREEDYDATA:otherinfo}" ]
    }  

使用logstash自带表达式的格式一般为:%{SYNTAX:SEMANTIC}
即: SYNTAX代表匹配值的类型,例如,0.11可以NUMBER类型所匹配,10.222.22.25可以使用IP匹配。
*
SEMANTIC表示存储该值的一个变量声明,client_ip_address`这个字段里边,类似数据库的列名
具体可参考:http://blog.csdn.net/liukuan73/article/details/52318243
而自定义匹配需要使用正则表达式,格式为

( ?<列名>正则表达式)

注:[\s\S]*为匹配剩余所有的字符,我这里是用来匹配错误日志的详细信息的
由于controller层日志是以json格式进行的存储,除使用grok之外还需使用 json进行解析

  json {  
        source => "log_json"  
        target => "content"  
        remove_field=>["logjson"]  
     }  

完整配置文件为:

input {
  beats {
    port => 5044
  }
}
filter{
    grok {       
        match => ["message","%{TIMESTAMP_ISO8601:timestamp} \[%{NOTSPACE:thread}\] %{WORD:type}  com.gameley.common.Interceptor.HttpAspect - %{GREEDYDATA:log_json}",
        "message","%{TIMESTAMP_ISO8601:times
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值