0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SpringBoot接入輕量級分布式日志框架GrayLog

jf_ro2CN3Fa ? 來源:CSDN ? 作者:CSDN ? 2022-10-27 10:29 ? 次閱讀


在微服務(wù)架構(gòu)中,一個服務(wù)通常都會有多個實例,而這些服務(wù)實例可能會被部署到不同的機器或虛擬容器上。此時對于日志數(shù)據(jù)的查看和分析就會變得困難起來,因為這些服務(wù)的日志數(shù)據(jù)都散落在各自實例所在的機器或容器上。例如,我現(xiàn)在要在訂單服務(wù)里查找一個訂單id為1的日志,而訂單服務(wù)有10個實例并且部署在10臺不同的機器上,那么我就得一臺臺的去找這個日志數(shù)據(jù)。所以這時候我們就需要有一個可以實現(xiàn)日志聚合的工具,將所有實例的日志數(shù)據(jù)都聚合在一個地方,那么我們就不需要到每個實例去找日志了,而本文將使用的日志聚合工具為Graylog

部署Graylog

老樣子,直接上docker-compose,如果一直跟著我的步伐,應(yīng)該對著不陌生了。docker-compose.yml 的內(nèi)容其實我也是抄官網(wǎng)的,這里還是貼下吧(就不用你們翻了)

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 的,我由于已經(jīng)占用了 9000 端口了,所以我這里把端口改成了 9009 ,你們可以隨意)

嗯,寫完 docker-compose.yml 文件,直接 docker-compose up -d 它就啟動起來咯。

啟動以后,我們就可以通過 ip:port 訪問對應(yīng)的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 實現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

  • 項目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro
  • 視頻教程:https://doc.iocoder.cn/video/

Spring Boot 集成GrayLog

首先創(chuàng)建一個SpringBoot項目,SpringBoot默認自帶的日志框架是Logback,我們可以到 Graylog組件市場查找Logback相應(yīng)的組件。

添加依賴如下:

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

接著在項目的resources目錄下,新建一個logback.xml文件,編輯文件內(nèi)容如下:

<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文檔,上面有具體的配置項說明

現(xiàn)在我們已經(jīng)成功將項目的日志數(shù)據(jù)發(fā)送到了Graylog服務(wù),如果我們想在Graylog上檢索日志也很簡單,只需要使用一些簡單的語法即可,例如我要查詢包含Mapping的日志信息:

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

還可以使用一些條件表達式,例如我要查詢message字段包含http,并且日志級別為INFO的日志信息:

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

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

  • 模糊查詢:直接輸入要查詢的內(nèi)容,例如:orderid
  • 精確查詢:要查詢的內(nèi)容加上引號,例如:"orderid: 11"
  • 指定字段查詢:message:http 或 message:"http"
  • 多字段查詢:message:(base-service base-web)
  • 多條件查詢:message:http AND level_name:ERROR OR source:192.168.0.4

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 框架
    +關(guān)注

    關(guān)注

    0

    文章

    398

    瀏覽量

    17404
  • spring
    +關(guān)注

    關(guān)注

    0

    文章

    338

    瀏覽量

    14295
  • 日志
    +關(guān)注

    關(guān)注

    0

    文章

    138

    瀏覽量

    10626
  • SpringBoot
    +關(guān)注

    關(guān)注

    0

    文章

    173

    瀏覽量

    161

原文標題:SpringBoot接入輕量級分布式日志框架GrayLog

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    輕量級多級菜單控制框架

    輕量級菜單框架(C語言) 作為嵌入軟件開發(fā),可能經(jīng)常會使用命令行或者顯示屏等設(shè)備實現(xiàn)人機交互的功能,功能中通常情況都包含 UI 菜單設(shè)計;很多開發(fā)人員都會有自己的菜單框架模塊,防止重
    發(fā)表于 10-12 09:36

    基于Openharmony輕量級操作系統(tǒng)的分布式數(shù)據(jù)管理開發(fā)案例

    實驗內(nèi)容本例程演示如何在小凌派-RK2206開發(fā)板上使用OpenHarmony輕量級操作系統(tǒng)進行KvStore(即分布式數(shù)據(jù)管理)數(shù)據(jù)讀寫。例程:(1)創(chuàng)建兩個線程,一個負責寫入KvStore存儲
    的頭像 發(fā)表于 08-07 08:23 ?807次閱讀
    基于Openharmony<b class='flag-5'>輕量級</b>操作系統(tǒng)的<b class='flag-5'>分布式</b>數(shù)據(jù)管理開發(fā)案例

    基于Openharmony輕量級操作系統(tǒng)的分布式數(shù)據(jù)管理開發(fā)案例

    實驗內(nèi)容 本例程演示如何在小凌派-RK2206開發(fā)板上使用OpenHarmony輕量級操作系統(tǒng)進行KvStore(即分布式數(shù)據(jù)管理)數(shù)據(jù)讀寫。 例程: (1)創(chuàng)建兩個線程,一個負責寫入KvStore
    發(fā)表于 08-06 11:56

    日志框架簡介-Slf4j+Logback入門實踐

    前言 隨著互聯(lián)網(wǎng)和大數(shù)據(jù)的迅猛發(fā)展,分布式日志系統(tǒng)和日志分析系統(tǒng)已廣泛應(yīng)用,幾乎所有應(yīng)用程序都使用各種日志框架記錄程序運行信息。因此,作為工
    的頭像 發(fā)表于 07-30 10:00 ?1035次閱讀
    <b class='flag-5'>日志</b><b class='flag-5'>框架</b>簡介-Slf4j+Logback入門實踐

    安科瑞分布式光伏系統(tǒng)在某重工企業(yè)18MW分布式光伏中應(yīng)用

    ,江蘇省分布式光伏有2228萬千瓦新增接入空間! 表:江蘇省分布式光伏接入能力規(guī)劃 根據(jù)國家能源局統(tǒng)計數(shù)據(jù),截止2023年底,江蘇省分布式
    的頭像 發(fā)表于 07-19 11:30 ?464次閱讀
    安科瑞<b class='flag-5'>分布式</b>光伏系統(tǒng)在某重工企業(yè)18MW<b class='flag-5'>分布式</b>光伏中應(yīng)用

    深度詳解嵌入系統(tǒng)專用輕量級框架設(shè)計

    MR 框架是專為嵌入系統(tǒng)設(shè)計的輕量級框架。充分考慮了嵌入系統(tǒng)在資源和性能方面的需求。通過提供標準化的設(shè)備管理接口,極大簡化了嵌入
    發(fā)表于 04-27 02:32 ?904次閱讀
    深度詳解嵌入<b class='flag-5'>式</b>系統(tǒng)專用<b class='flag-5'>輕量級</b><b class='flag-5'>框架</b>設(shè)計

    什么是分布式架構(gòu)?

    分布式架構(gòu)是指將一個系統(tǒng)或應(yīng)用拆分成多個獨立的節(jié)點,這些節(jié)點通過網(wǎng)絡(luò)連接進行通信和協(xié)作,以實現(xiàn)共同完成任務(wù)的一種架構(gòu)模式。這種架構(gòu)模式旨在提高系統(tǒng)的可擴展性、可靠性和性能表現(xiàn)。 一、分布式架構(gòu)的特點
    的頭像 發(fā)表于 01-12 15:04 ?1125次閱讀
    什么是<b class='flag-5'>分布式</b>架構(gòu)?

    分布式系統(tǒng)硬件資源池原理和接入實踐

    /distributedhardware_distributed_hardware_fwk/blob/master/common/utils/include/device_type.h Step2:實現(xiàn)分布式硬件框架定義的南向接入
    發(fā)表于 12-06 10:02

    zookeeper分布式原理

    Zookeeper是一個開源的分布式協(xié)調(diào)服務(wù),可以用于構(gòu)建高可用、高性能的分布式系統(tǒng)。它提供了一個簡單且高效的層次命名空間,可以用來存儲配置信息、狀態(tài)信息、命名服務(wù)等。Zookeeper的設(shè)計目標
    的頭像 發(fā)表于 12-03 16:33 ?600次閱讀

    【AIOps】一種全新的日志異常檢測評估框架:LightAD,相關(guān)成果已被軟工頂會ICSE 2024錄用

    需要更長的時間來進行日志預(yù)處理、模型訓練和模型推斷,從而阻礙了它們在需要快速部署日志異常檢測服務(wù)的在線分布式云系統(tǒng)中的采用。 本文對現(xiàn)有的基于經(jīng)典機器學習和深度學習方法的日志異常檢測方
    的頭像 發(fā)表于 11-29 17:40 ?570次閱讀

    嵌入框架Zorb Framework狀態(tài)機的實現(xiàn)

    Zorb Framework是一個基于面向?qū)ο蟮乃枷雭泶罱ㄒ粋€輕量級的嵌入框架
    的頭像 發(fā)表于 11-29 09:33 ?1067次閱讀
    嵌入<b class='flag-5'>式</b><b class='flag-5'>框架</b>Zorb Framework狀態(tài)機的實現(xiàn)

    分布式通信是什么 分布式網(wǎng)絡(luò)搭建

    上的任務(wù)分配。 分布式通信 什么叫分布式? 機器人功能是由各種節(jié)點組成的,這些節(jié)點可能位于不同的計算機中,這種結(jié)構(gòu)可以將原本資源消耗較多的任務(wù),分配到不同的平臺上,減輕計算壓力,這就是分布式通信
    的頭像 發(fā)表于 11-27 15:49 ?721次閱讀
    <b class='flag-5'>分布式</b>通信是什么 <b class='flag-5'>分布式</b>網(wǎng)絡(luò)搭建

    什么是分布式直流電源?分布式直流電源的范圍 分布式直流電的特性

    什么是分布式直流電源?分布式直流電源的范圍 分布式直流電的特性? 分布式直流電源(Distributed DC Power Supply)是指分布
    的頭像 發(fā)表于 11-16 11:17 ?1056次閱讀

    springclould分布式教程

    Spring Cloud是一個基于Spring Boot的分布式系統(tǒng)開發(fā)工具,它提供了一系列的分布式系統(tǒng)解決方案,可以幫助開發(fā)者快速構(gòu)建和部署分布式應(yīng)用程序。本文將介紹Spring Cloud
    的頭像 發(fā)表于 11-16 10:59 ?452次閱讀

    spring分布式框架有哪些

    Spring分布式框架是一套基于Spring框架的解決方案,用于構(gòu)建分布式系統(tǒng)。它提供了一系列的組件和模塊,可以幫助開發(fā)人員輕松地構(gòu)建可擴展、高可用、高性能的
    的頭像 發(fā)表于 11-16 10:58 ?735次閱讀