欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot+輕量級(jí)分布式日志框架GrayLog實(shí)踐

 更新時(shí)間:2025年08月12日 09:09:28   作者:Java程序員 擁抱ai  
將SpringBoot日志遷移至GrayLog的實(shí)戰(zhàn)經(jīng)驗(yàn),稱其配置簡(jiǎn)單、輕量高效,支持多環(huán)境分布式,通過(guò)GELF格式實(shí)現(xiàn)快速日志追蹤與報(bào)警,尤其強(qiáng)調(diào)traceId在跨服務(wù)定位中的關(guān)鍵作用,降低維護(hù)成本并提升故障排查效率

最近晚上加班到快十一點(diǎn)半,在公司樓下喝冰可樂(lè)那會(huì)兒,咱們組那小王突然拍我一下,說(shuō)他最近把SpringBoot配GrayLog,日志這一塊感覺(jué)有點(diǎn)上頭。

我說(shuō)GrayLog那個(gè)玩意兒不是挺輕量的嘛,以前搞ELK動(dòng)不動(dòng)就一堆依賴一堆配置,現(xiàn)在整GrayLog感覺(jué)人都輕松不少。

剛好今天正好有空,啰嗦兩句,要是你哪天日志搞崩潰了可以直接抄作業(yè)。

場(chǎng)景拉滿:生產(chǎn)線上日志怎么搞?

先說(shuō)背景啊,我們組一直搞SpringBoot,之前日志那一套都是ELK,Logstash天天吃內(nèi)存,配置復(fù)雜不說(shuō),有時(shí)候線上臨時(shí)加個(gè)字段得重啟,麻煩得一批。

后來(lái)有一天我在茶水間刷到GrayLog,想了想,這東西能不能直接上SpringBoot,順手帶一下多環(huán)境分布式?你們懂的,現(xiàn)在服務(wù)都拆小了,日志要是不能快速定位,真的要人命。

GrayLog配SpringBoot,配置真的就...

其實(shí)全流程非常絲滑,直接講代碼,沒(méi)啥復(fù)雜的地方。

比如你們?nèi)绻玫腖ogback,直接加一個(gè)GELF appender,GELF是GrayLog的日志格式。

貼個(gè)配置,別嫌啰嗦:

<!-- resources/logback-spring.xml -->
<configuration>
    <appender name="GRAYLOG" class="me.moocar.logbackgelf.GelfAppender">
        <host>udp:graylog.yourdomain.com</host>
        <port>12201</port>
        <facility>springboot-app</facility>
        <includeFullMDC>true</includeFullMDC>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>

    <root level="INFO">
        <appender-ref ref="GRAYLOG"/>
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

就這個(gè)配置,我去年做的項(xiàng)目,生產(chǎn)環(huán)境一上線就能用。GrayLog這邊連UDP端口就行,根本不用折騰ELK那些配置腳本。

有一次我們線上流量一上來(lái),日志量也大,GrayLog直接撐住,瀏覽器查日志秒出結(jié)果。關(guān)鍵是字段還能自定義,想加啥業(yè)務(wù)字段隨便加,MDC那一套直接塞。

舉個(gè)例子啊,前幾天我在調(diào)一個(gè)分布式的下單鏈路,三個(gè)服務(wù)之間互相調(diào)用,日志全都聚在GrayLog里。我直接用traceId串起來(lái),點(diǎn)兩下就能查到完整調(diào)用鏈,連前端報(bào)錯(cuò)都能溯源回后端,前端小姐姐都說(shuō)“你怎么定位這么快”。其實(shí)不是我牛,純粹是GrayLog香。

你們?cè)囋囉肔ogback自帶的PatternLayout打印traceId、userId之類的,然后MDC塞一下:

// 每次請(qǐng)求處理加上traceId
MDC.put("traceId", traceId);

GrayLog那邊直接搜traceId,跨服務(wù)、跨機(jī)器全搞定。有一回深夜查線上事故,全靠GrayLog救命,老板還夸了兩句。

部署GrayLog其實(shí)就一docker-compose,MongoDB和Elasticsearch別太舊,GrayLog本體開(kāi)起來(lái)。你要是本地測(cè)隨便搞,線上建議掛點(diǎn)盤,日志多的時(shí)候Elasticsearch吃點(diǎn)資源,其他真沒(méi)啥。

version: '3'
services:
mongo:
    image:mongo:5
elasticsearch:
    image:docker.elastic.co/elasticsearch/elasticsearch:7.10.2
    environment:
      -discovery.type=single-node
graylog:
    image:graylog/graylog:5.0
    environment:
      -GRAYLOG_PASSWORD_SECRET=xxxxxx
      -GRAYLOG_ROOT_PASSWORD_SHA2=xxxxxx
      -GRAYLOG_HTTP_EXTERNAL_URI=http://127.0.0.1:9000/
    depends_on:
      -mongo
      -elasticsearch
    ports:
      -"9000:9000"
      -"12201:12201/udp"

啟動(dòng)完直接網(wǎng)頁(yè)打開(kāi)登錄就行。配置輸入源選GELF/UDP,SpringBoot那邊就開(kāi)始推日志,真的沒(méi)啥門檻。

對(duì)了,還有一個(gè),GrayLog支持自定義Alert,某些嚴(yán)重級(jí)別的日志可以直接發(fā)釘釘、郵件、Slack,都是點(diǎn)點(diǎn)鼠標(biāo)的事兒。有回我們數(shù)據(jù)庫(kù)掛了,GrayLog一分鐘內(nèi)自動(dòng)報(bào)警,運(yùn)維直接就拉人進(jìn)群排查。

還有日志存儲(chǔ)策略,可以設(shè)自動(dòng)歸檔、分組、定期清理,你不用再怕磁盤爆掉。ELK玩過(guò)都知道,那玩意兒不手動(dòng)維護(hù)很快就掛了,GrayLog基本不用操心,出事也能很快恢復(fù)。

你說(shuō)GrayLog是不是最強(qiáng)日志框架,這我真不敢說(shuō)。但反正咱們現(xiàn)在SpringBoot配GrayLog,維護(hù)成本低,查日志體驗(yàn)又好,連業(yè)務(wù)線的同事都能自己搜。搞分布式一定要記得加traceId啊,不然日志再好也找不到全鏈路,別問(wèn)我是怎么知道的……

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論