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

    文章

    404

    浏览量

    18523
  • spring
    +关注

    关注

    0

    文章

    345

    浏览量

    16088
  • 日志
    +关注

    关注

    0

    文章

    153

    浏览量

    11108
  • SpringBoot
    +关注

    关注

    0

    文章

    179

    浏览量

    729

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    微电网分布式电源接入技术:光伏、风电的适配设计

    光伏、风电接入微电网的适配设计,成为破解新能源消纳难题、保障微电网安全高效运行的核心技术支撑。本文结合行业标准规范与工程实践案例,系统剖析光伏、风电接入微电网的适配设计核心要点、技术路径与优化策略,为微电网分布式电源
    的头像 发表于 05-19 14:52 993次阅读
    微电网<b class='flag-5'>分布式</b>电源<b class='flag-5'>接入</b>技术:光伏、风电的适配设计

    AI Ceph 分布式存储教程资料大模型学习资料2026

    内存层构建分布式缓存池。通过感知训练任务的读取模式,系统能够预测下一步需要的数据块,并提前将其从底层存储介质加载至缓存层,实现计算与 I/O 的流水线并行。此外,为了解决 Python 数据加载框架(如
    发表于 05-01 17:35

    分布式光伏发电接入配电网技术规定中关于“四可”装置的内容解析

    随着分布式光伏发电装机规模的快速增长,其对配电网安全稳定运行的影响日益凸显。《分布式光伏发电接入配电网技术规定》(GB/T 38946-2020)作为核心国标,首次系统性明确了“四可”(可观、可
    的头像 发表于 02-06 16:39 3037次阅读
    <b class='flag-5'>分布式</b>光伏发电<b class='flag-5'>接入</b>配电网技术规定中关于“四可”装置的内容解析

    光伏规约转换器分布式光伏调控“四可”并网实施案例

    1.背景近年来,随着国家分布式光伏的利好政策,各地分布式光伏装机规模增加迅猛。分布式光伏具有间歇性、分散性、随机性等特点,由于电网末端容量受限,海量分布式光伏
    的头像 发表于 12-19 10:13 4535次阅读
    光伏规约转换器<b class='flag-5'>分布式</b>光伏调控“四可”并网实施案例

    SC-3568HA:解锁鸿蒙全权限API与分布式能力的工业控制平台

    传统嵌入开发面临硬件碎片化、高权限功能缺失、分布式协同复杂及自动化测试不足等痛点。SC-3568HA开发板基于鸿蒙系统,通过统一内核抽象层和硬件驱动框架解决兼容问题,开放全量系统API支持高权限
    的头像 发表于 12-18 11:27 7769次阅读
    SC-3568HA:解锁鸿蒙全权限API与<b class='flag-5'>分布式</b>能力的工业控制平台

    【CW32】uart_obj_fw 轻量级串口框架

    轻量级跨平台串口通信框架,专为资源受限的嵌入设备设计。单个对象RAM占用最小68字节左右(不算缓冲区),ROM占用1-2k字节左右,功能支持裁剪,资源占用小并不代表低性能,该库参考了freeRTOS
    的头像 发表于 09-29 18:02 8022次阅读

    【节能学院】Acrel-1000DP分布式光伏监控系统在奉贤平高食品 4.4MW 分布式光伏中应用

    摘要:在“双碳”和新型电力系统建设背景下,分布式光伏接入比例不断提高,对配电网电压、调度运行及调峰等环节造成强烈冲击。本文设计包含平台层、设备层二层架构体系的分布式光伏管控平台,以及小容量工商业
    的头像 发表于 08-23 08:04 3751次阅读
    【节能学院】Acrel-1000DP<b class='flag-5'>分布式</b>光伏监控系统在奉贤平高食品 4.4MW <b class='flag-5'>分布式</b>光伏中应用

    分布式光伏发电监测系统技术方案

    分布式光伏发电监测系统技术方案 柏峰【BF-GFQX】一、系统目标 :分布式光伏发电监测系统旨在通过智能化的监测手段,实现对分布式光伏电站的全方位、高精度、实时化管理。该系统能
    的头像 发表于 08-22 10:51 3591次阅读
    <b class='flag-5'>分布式</b>光伏发电监测系统技术方案

    基于米尔瑞芯微RK3576开发板部署运行TinyMaix:超轻量级推理框架

    本文将介绍基于米尔电子MYD-LR3576开发平台部署超轻量级推理框架方案:TinyMaix 摘自优秀创作者-短笛君 TinyMaix 是面向单片机的超轻量级的神经网络推理库,即 TinyML
    发表于 07-25 16:35

    如何在RK3576开发板上运行TinyMaix :超轻量级推理框架--基于米尔MYD-LR3576开发板

    本文将介绍基于米尔电子MYD-LR3576开发平台部署超轻量级推理框架方案:TinyMaix摘自优秀创作者-短笛君TinyMaix是面向单片机的超轻量级的神经网络推理库,即TinyML推理库,可以
    的头像 发表于 07-25 08:03 4491次阅读
    如何在RK3576开发板上运行TinyMaix :超<b class='flag-5'>轻量级</b>推理<b class='flag-5'>框架</b>--基于米尔MYD-LR3576开发板

    分布式光储项目如何实现稳定收益?张家港案例揭示关键运营指标

    分布式光伏利用屋顶等闲置空间发电,省电费、赚收益,还能减少碳排放。国家政策支持,提供补贴、税收优惠和绿电交易,鼓励清洁能源发展。安装光伏投资回报高、维护简单,适合家庭、工商业用户,是环保与经济的双赢
    发表于 07-25 00:23

    分布式光伏升压变压器怎么选?定制指南助你避坑!

    许多光伏项目开发者常遇到一个关键问题:如何为分布式光伏系统选对升压变压器? 尤其是当项目面临容量波动、接入电压限制、环境适应性要求时,定制化设计更显重要。本文将从技术逻辑到实操要点,拆解分布式光伏
    的头像 发表于 07-09 10:07 2576次阅读
    <b class='flag-5'>分布式</b>光伏升压变压器怎么选?定制指南助你避坑!

    双电机分布式驱动汽车高速稳定性机电耦合控制

    摘要:为了利用所设计的双电机防滑差速驱动系统来提高分布式驱动汽车的动力学性能,在前期同轴耦合驱动控制理论研究的基础上,开展该车的高速稳定性机电耦合控制研究。建立并验证包含所设计驱动系统在内的分布式
    发表于 06-18 16:37

    润和软件StackRUNS异构分布式推理框架的应用案例

    江苏润和软件股份有限公司(以下简称“润和软件”)自主研发的StackRUNS异构分布式推理框架已在实际场景中取得显著成效,成功应用于大型园区多模态模型演练及高校满血版DeepSeek-MoE 671B的运行,有效推动了大模型技术的快速落地。
    的头像 发表于 06-13 09:11 1510次阅读
    润和软件StackRUNS异构<b class='flag-5'>分布式</b>推理<b class='flag-5'>框架</b>的应用案例

    润和软件发布StackRUNS异构分布式推理框架

    当下,AI模型规模持续膨胀、多模态应用场景日益复杂,企业正面临异构算力资源碎片化带来的严峻挑战。为应对行业痛点,江苏润和软件股份有限公司(以下简称“润和软件”)正式发布自主研发的StackRUNS异构分布式推理框架,高效融合异构算力,精细化配置算力资源,释放算力效能。
    的头像 发表于 06-13 09:10 1688次阅读
    润和软件发布StackRUNS异构<b class='flag-5'>分布式</b>推理<b class='flag-5'>框架</b>