0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SpringBoot接入轻量级分布式日志框架GrayLog

jf_ro2CN3Fa 来源:CSDN 作者:CSDN 2022-10-27 10:29 次阅读


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

部署Graylog

老样子,直接上docker-compose,如果一直跟着我的步伐,应该对着不陌生了。docker-compose.yml 的内容其实我也是抄官网的,这里还是贴下吧(就不用你们翻了)

version:'3'
services:
mongo:
image:mongo:4.2
networks:
-graylog
elasticsearch:
image:docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
environment:
-http.host=0.0.0.0
-transport.host=localhost
-network.host=0.0.0.0
-"ES_JAVA_OPTS=-Dlog4j2.formatMsgNoLookups=true-Xms512m-Xmx512m"
ulimits:
memlock:
soft:-1
hard:-1
deploy:
resources:
limits:
memory:1g
networks:
-graylog
graylog:
image:graylog/graylog:4.2
environment:
-GRAYLOG_PASSWORD_SECRET=somepasswordpepper
-GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
-GRAYLOG_HTTP_EXTERNAL_URI=http://ip:9009/#这里注意要改ip
entrypoint:/usr/bin/tini--wait-for-itelasticsearch:9200--/docker-entrypoint.sh
networks:
-graylog
restart:always
depends_on:
-mongo
-elasticsearch
ports:
-9009:9000
-1514:1514
-1514:1514/udp
-12201:12201
-12201:12201/udp
networks:
graylog:
driver:bridg

这个文件里唯一需要改动的就是 ip (本来的端口是 9000 的,我由于已经占用了 9000 端口了,所以我这里把端口改成了 9009 ,你们可以随意)

嗯,写完 docker-compose.yml 文件,直接 docker-compose up -d 它就启动起来咯。

启动以后,我们就可以通过 ip:port 访问对应的Graylog后台地址了,默认的账号和密码是 admin/admin

c21aeee2-559e-11ed-a3b6-dac502259ad0.jpg

随后,我们配置下 inputs 的配置,找到 GELF UDP ,然后点击 Launch new input ,只需要填写 Title 字段,保存就完事了(其他不用动)。

c24bf01e-559e-11ed-a3b6-dac502259ad0.jpg

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

Spring Boot 集成GrayLog

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

添加依赖如下:

<dependency>
<groupId>de.siegmargroupId>
<artifactId>logback-gelfartifactId>
<version>3.0.0version>
dependency>

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

<appendername="GELF"class="de.siegmar.logbackgelf.GelfUdpAppender">

<graylogHost>ipgraylogHost>

<graylogPort>12201graylogPort>

<maxChunkSize>508maxChunkSize>

<useCompression>trueuseCompression>
<encoderclass="de.siegmar.logbackgelf.GelfEncoder">

<includeRawMessage>falseincludeRawMessage>
<includeMarker>trueincludeMarker>
<includeMdcData>trueincludeMdcData>
<includeCallerData>falseincludeCallerData>
<includeRootCauseData>falseincludeRootCauseData>

<includeLevelName>trueincludeLevelName>
<shortPatternLayoutclass="ch.qos.logback.classic.PatternLayout">
<pattern>%m%nopexpattern>
shortPatternLayout>
<fullPatternLayoutclass="ch.qos.logback.classic.PatternLayout">
<pattern>%d-[%thread]%-5level%logger{35}-%msg%npattern>
fullPatternLayout>


<staticField>app_name:austinstaticField>
encoder>
appender>

在这个配置信息里,唯一要改的也只是 ip 的地址,到这里接入就完毕了,我们再打开控制台,就能看到日志的信息啦。

c25d5674-559e-11ed-a3b6-dac502259ad0.jpg

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

c2734b32-559e-11ed-a3b6-dac502259ad0.jpg

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

c29f074a-559e-11ed-a3b6-dac502259ad0.jpg

以上是最简单的日志配置,如果希望对更多配置项进行自定义的话,可以参考该组件的GitHub文档,上面有具体的配置项说明

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

c2be869c-559e-11ed-a3b6-dac502259ad0.jpg

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

c2df12f4-559e-11ed-a3b6-dac502259ad0.jpg

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

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

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 框架
    +关注

    关注

    0

    文章

    403

    浏览量

    17479
  • spring
    +关注

    关注

    0

    文章

    340

    浏览量

    14340
  • 日志
    +关注

    关注

    0

    文章

    138

    浏览量

    10639
  • SpringBoot
    +关注

    关注

    0

    文章

    173

    浏览量

    177

原文标题:SpringBoot接入轻量级分布式日志框架GrayLog

文章出处:【微信号:芋道源码,微信公众号:芋道源码】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    分布式光伏发电系统的应用

    分布式光伏发电系统现状  Q/GDW1480-2015 《分布式电源接入电网技术规定》:分布式电源并网电压等级可根据各并网点装机容量进行初步选择,推荐如下: 8kW 及以下可
    的头像 发表于 11-21 16:31 212次阅读
    <b class='flag-5'>分布式</b>光伏发电系统的应用

    分布式光伏为企业带来哪些便捷!

    发改能源〔2022〕206号文件指出:“在农村地区优先支持屋顶分布式光伏发电以及沼气发电等生物质能发电接入电网,电网企业等应当优先收购其发电量。” 《国家能源局综合司关于报送整县(市、区)屋顶分布式
    的头像 发表于 11-18 15:34 220次阅读
    <b class='flag-5'>分布式</b>光伏为企业带来哪些便捷!

    分布式光纤测温解决方案

    分布式光纤测温解决方案
    的头像 发表于 11-12 01:02 143次阅读
    <b class='flag-5'>分布式</b>光纤测温解决方案

    轻量级多级菜单控制框架

    轻量级菜单框架(C语言) 作为嵌入软件开发,可能经常会使用命令行或者显示屏等设备实现人机交互的功能,功能中通常情况都包含 UI 菜单设计;很多开发人员都会有自己的菜单框架模块,防止重
    发表于 10-12 09:36

    屋顶分布式光伏并网点如何监测电能质量

    分布式光伏参考标准: 安科瑞 邹玉丽 136-3648-3643 根据国家电网Q/GDW1480-2015 《分布式电源接入电网技术规定》:分布式电源并网电压等级可根据各 并网点装机容
    的头像 发表于 09-13 10:30 271次阅读
    屋顶<b class='flag-5'>分布式</b>光伏并网点如何监测电能质量

    安科瑞分布式光伏监控系统的应用

    低、就地消纳等独特的优势而被广泛应用,近年来呈现跨越发展趋势,研究分布式光伏接入对配电网的影响,对于提升电网及人身安全具有重要意义。本文以分布式光伏为研究对象,结合工程实例,研究了
    的头像 发表于 08-14 08:41 278次阅读
    安科瑞<b class='flag-5'>分布式</b>光伏监控系统的应用

    基于Openharmony轻量级操作系统的分布式数据管理开发案例

    实验内容本例程演示如何在小凌派-RK2206开发板上使用OpenHarmony轻量级操作系统进行KvStore(即分布式数据管理)数据读写。例程:(1)创建两个线程,一个负责写入KvStore存储
    的头像 发表于 08-07 08:23 956次阅读
    基于Openharmony<b class='flag-5'>轻量级</b>操作系统的<b class='flag-5'>分布式</b>数据管理开发案例

    基于Openharmony轻量级操作系统的分布式数据管理开发案例

    实验内容 本例程演示如何在小凌派-RK2206开发板上使用OpenHarmony轻量级操作系统进行KvStore(即分布式数据管理)数据读写。 例程: (1)创建两个线程,一个负责写入KvStore
    发表于 08-06 11:56

    日志框架简介-Slf4j+Logback入门实践

    前言 随着互联网和大数据的迅猛发展,分布式日志系统和日志分析系统已广泛应用,几乎所有应用程序都使用各种日志框架记录程序运行信息。因此,作为工
    的头像 发表于 07-30 10:00 1130次阅读
    <b class='flag-5'>日志</b><b class='flag-5'>框架</b>简介-Slf4j+Logback入门实践

    安科瑞分布式光伏系统在某重工企业18MW分布式光伏中应用

    ,江苏省分布式光伏有2228万千瓦新增接入空间! 表:江苏省分布式光伏接入能力规划 根据国家能源局统计数据,截止2023年底,江苏省分布式
    的头像 发表于 07-19 11:30 516次阅读
    安科瑞<b class='flag-5'>分布式</b>光伏系统在某重工企业18MW<b class='flag-5'>分布式</b>光伏中应用

    深度详解嵌入系统专用轻量级框架设计

    MR 框架是专为嵌入系统设计的轻量级框架。充分考虑了嵌入系统在资源和性能方面的需求。通过提供标准化的设备管理接口,极大简化了嵌入
    发表于 04-27 02:32 988次阅读
    深度详解嵌入<b class='flag-5'>式</b>系统专用<b class='flag-5'>轻量级</b><b class='flag-5'>框架</b>设计

    HarmonyOS实战案例:【分布式账本】

    Demo基于Open Harmony系统使用ETS语言进行编写,本Demo主要通过设备认证、分布式拉起、分布式数据管理等功能来实现。
    的头像 发表于 04-12 16:40 1325次阅读
    HarmonyOS实战案例:【<b class='flag-5'>分布式</b>账本】

    工商业企业屋顶光伏 分布式光伏发电系统

    安科瑞 程瑜 云平台简介 目前我国的两种分布式应用场景分别是:广大农村屋顶的户用光伏和工商业企业屋顶光伏,这两类分布式光伏电站今年都发展迅速。 据电网Q/GDW1480-2015 《分布式电源
    的头像 发表于 03-15 14:21 1212次阅读
    工商业企业屋顶光伏 <b class='flag-5'>分布式</b>光伏发电系统

    鸿蒙OS 分布式任务调度

    鸿蒙OS 分布式任务调度概述 在 HarmonyO S中,分布式任务调度平台对搭载 HarmonyOS 的多设备构筑的“超级虚拟终端”提供统一的组件管理能力,为应用定义统一的能力基线、接口
    的头像 发表于 01-29 16:50 492次阅读

    什么是分布式架构?

    分布式架构是指将一个系统或应用拆分成多个独立的节点,这些节点通过网络连接进行通信和协作,以实现共同完成任务的一种架构模式。这种架构模式旨在提高系统的可扩展性、可靠性和性能表现。 一、分布式架构的特点
    的头像 发表于 01-12 15:04 1230次阅读
    什么是<b class='flag-5'>分布式</b>架构?