成都网站建设设计

将想法与焦点和您一起共享

SpringBoot集成Graylog-创新互联

在微服务架构中,一个服务通常都会有多个实例,而这些服务实例可能会被部署到不同的机器或虚拟容器上。此时对于日志数据的查看和分析就会变得困难起来,因为这些服务的日志数据都散落在各自实例所在的机器或容器上。例如,我现在要在订单服务里查找一个订单id为1的日志,而订单服务有10个实例并且部署在10台不同的机器上,那么我就得一台台的去找这个日志数据。所以这时候我们就需要有一个可以实现日志聚合的工具,将所有实例的日志数据都聚合在一个地方,那么我们就不需要到每个实例去找日志了,而本文将使用的日志聚合工具为Graylog。

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比望花网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式望花网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖望花地区。费用合理售后完善,十多年实体公司更值得信赖。

关于Graylog的介绍及安装可以参考我另一篇文章:

  • Docker安装Graylog

目前使用Java语言编写微服务架构的项目,基本都是使用SpringBoot作为项目的基本开发框架,所以本文主要介绍SpringBoot如何集成Graylog,并将日志数据发送给Graylog服务实现日志聚合。

1.首先创建一个SpringBoot项目,SpringBoot默认自带的日志框架是Logback,我们可以到Graylog组件市场查找Logback相应的组件。

我这里选择了一个近期有更新过的组件,该组件的github地址如下:

https://github.com/osiegmar/logback-gelf

2.然后在项目的pom.xml加入该组件的依赖,如下:


    de.siegmar
    logback-gelf
    2.0.0

3.接着在项目的resources目录下,新建一个logback.xml文件,编辑文件内容如下:


    
    
        
            
            
                
                    %d - [%thread] %-5level %logger{35} - [%line] - %msg%n
                
            
        
    

    
    
        
        192.168.190.129
        
        12201
    

    
        
        
    

我这边的UDP Input配置信息如下:
SpringBoot集成Graylog

4.配置完成后启动项目,启动完成后正常情况下可以在Graylog的Search界面中查看日志信息:
SpringBoot集成Graylog

点击一条日志信息会展开详细的字段:
SpringBoot集成Graylog

以上是最简单的日志配置,如果希望对更多配置项进行自定义的话,可以参考该组件的GitHub文档,上面有具体的配置项说明,下面给出一个我自己常用的appender配置示例:


    
    192.168.190.129
    
    12201
    
    508
    
    true
    
        
        false
        true
        true
        false
        false
        
        true
        
            %m%nopex
        
        
            %d - [%thread] %-5level %logger{35} - %msg%n
        
        
        app_name:backend
        os_arch:${os.arch}
        os_name:${os.name}
        os_version:${os.version}
    

现在我们已经成功将项目的日志数据发送到了Graylog服务,如果我们想在Graylog上检索日志也很简单,只需要使用一些简单的语法即可,例如我要查询包含Mapping的日志信息:
SpringBoot集成Graylog

还可以使用一些条件表达式,例如我要查询message字段包含http,并且日志级别为INFO的日志信息:
SpringBoot集成Graylog

常用的日志搜索语法如下:

  • 模糊查询:直接输入要查询的内容,例如:orderid
  • 精确查询:要查询的内容加上引号,例如:"orderid: 11"
  • 指定字段查询:message:http 或 message:"http"
  • 多字段查询:message:(base-service base-web)
  • 多条件查询:message:http AND level_name:ERROR OR source:192.168.0.4
  • 正则匹配查询:app_name:order-service AND orderid:12?4*

注意:以上示例中涉及的符号全部是英文符号,且字母不区分大小写

关于搜索语法的官方文档地址如下:

http://docs.graylog.org/en/3.0/pages/queries.html

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


标题名称:SpringBoot集成Graylog-创新互联
网页URL:http://chengdu.cdxwcx.cn/article/peiej.html