国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

plumelog介紹與應(yīng)用-一個(gè)簡(jiǎn)單易用的java分布式日志系統(tǒng)

這篇具有很好參考價(jià)值的文章主要介紹了plumelog介紹與應(yīng)用-一個(gè)簡(jiǎn)單易用的java分布式日志系統(tǒng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

官方文檔:http://www.plumelog.com/zh-cn/docs/FASTSTART.html

簡(jiǎn)介

  1. 無(wú)代碼入侵的分布式日志系統(tǒng),基于log4j、log4j2、logback搜集日志,設(shè)置鏈路ID,方便查詢關(guān)聯(lián)日志
  2. 基于elasticsearch作為查詢引擎
  3. 高吞吐,查詢效率高
  4. 全程不占應(yīng)用程序本地磁盤空間,免維護(hù);對(duì)于項(xiàng)目透明,不影響項(xiàng)目本身運(yùn)行
  5. 無(wú)需修改老項(xiàng)目,引入直接使用,支持dubbo,支持springcloud

架構(gòu)

plumelog介紹與應(yīng)用-一個(gè)簡(jiǎn)單易用的java分布式日志系統(tǒng),開(kāi)源框架,plumelog

  • 應(yīng)用服務(wù)通過(guò)整合plumelog客戶端,搜集日志并推送kafka,redis等隊(duì)列
  • plumelog-server 負(fù)責(zé)把隊(duì)列中的日志日志異步寫入到elasticsearch
  • plumelog_ui為操作界面客戶端,用于查詢?nèi)罩荆褂酶鞣N定制功能

常見(jiàn)部署模型

  • 單redis小集群模式,大部分中小規(guī)模項(xiàng)目
    plumelog介紹與應(yīng)用-一個(gè)簡(jiǎn)單易用的java分布式日志系統(tǒng),開(kāi)源框架,plumelog
  • kafka集群模式,每個(gè)項(xiàng)目量都很大
    plumelog介紹與應(yīng)用-一個(gè)簡(jiǎn)單易用的java分布式日志系統(tǒng),開(kāi)源框架,plumelog

功能

日志查詢

plumelog介紹與應(yīng)用-一個(gè)簡(jiǎn)單易用的java分布式日志系統(tǒng),開(kāi)源框架,plumelog

擴(kuò)展字段

  1. 在系統(tǒng)擴(kuò)展字段里添加擴(kuò)展字段,字段值為 orderid 顯示值為 訂單編號(hào)

  2. 查詢的時(shí)候選擇應(yīng)用名,下面會(huì)顯示擴(kuò)展字段,可以通過(guò)擴(kuò)展字段查詢

MDC.put("orderid","1");
MDC.put("userid","4");
logger.info("擴(kuò)展字段");

鏈路追蹤

設(shè)置追蹤碼后,支持注解手動(dòng)打點(diǎn)和切面全局打點(diǎn)

滾動(dòng)日志

可以連接到機(jī)器上,查看實(shí)時(shí)日志
plumelog介紹與應(yīng)用-一個(gè)簡(jiǎn)單易用的java分布式日志系統(tǒng),開(kāi)源框架,plumelog

錯(cuò)誤統(tǒng)計(jì)

錯(cuò)誤報(bào)警

支持通過(guò)webhook自定義報(bào)警

索引管理

查看和操作ES索引

plumelog&ELK

  1. plumelog日志是客戶端上報(bào)的方式,客戶端配置極其簡(jiǎn)單,不需要像logstash一樣去解析日志的格式,因?yàn)閜lumelog客戶端已經(jīng)格式化好了,traceid的設(shè)計(jì)都是內(nèi)置的,這些用戶都不用刻意去管,跨線程跨應(yīng)用鏈路傳遞都是內(nèi)置的組件
  2. 部署簡(jiǎn)單,你只要個(gè)有redis,就行了,ELK組合要完成完整部署,可能還需要配置kafka,filebeat之類的組件,而且版本需統(tǒng)一
  3. 日志的查詢速度大于ELK,因?yàn)閜lumelog查詢是優(yōu)化過(guò)的,比kibanna通用查詢快很多,plumelog的查詢界面就是專門按照國(guó)人習(xí)慣設(shè)計(jì)的
  4. 很多人用ELK到了大量日志的時(shí)候發(fā)現(xiàn),檢索效率極其下降,那是因?yàn)镋S的索引等設(shè)計(jì)不合理造成的,plumelog專業(yè)處理日志,索引的設(shè)置都已經(jīng)早就設(shè)計(jì)好了,不需要使用者自己去優(yōu)化
  5. ELK不是專業(yè)處理日志的,plumelog在日志上功能就很多,例如擴(kuò)展字段,鏈路追蹤,錯(cuò)誤報(bào)警,錯(cuò)誤統(tǒng)計(jì)后續(xù)還有QPS統(tǒng)計(jì)等功能,ELK都是沒(méi)有的

多大體量

根據(jù)用戶反饋,目前搜集到最大的用戶每日日志量已經(jīng)到達(dá)3TB,并穩(wěn)定運(yùn)行

部署應(yīng)用

第一步:安裝 redis 或者 kafka(一般公司redis足夠) redis 官網(wǎng):https://redis.io kafka:http://kafka.apache.org

第二步:安裝 elasticsearch 官網(wǎng)下載地址:https://www.elastic.co/cn/downloads/past-releases

第三步:下載安裝包,plumelog-server 下載地址:https://gitee.com/plumeorg/plumelog/releases

第四步:配置plumelog-server,并啟動(dòng),redis和kafka作為隊(duì)列模式下可以部署多個(gè)plumelog-server達(dá)到高可用,配置一樣即可

第五步:后臺(tái)查詢語(yǔ)法詳見(jiàn)plumelog使用指南

應(yīng)用案例

以mservice為例,查詢線上問(wèn)題時(shí),提供的是用戶Id或訂單號(hào)

之前查日志:
  1. 根據(jù)custId找到udid,根據(jù)訂單號(hào)找到custId再找到udid。
  2. 到kibana根據(jù)udid和時(shí)間點(diǎn)找到對(duì)應(yīng)的請(qǐng)求記錄,找到對(duì)應(yīng)的機(jī)器,找到請(qǐng)求的唯一標(biāo)識(shí)“tc”
  3. 登錄機(jī)器,根據(jù)“tc”參數(shù)查詢elk日志,找到對(duì)應(yīng)的線程號(hào)。
  4. 根據(jù)線程號(hào)和時(shí)間范圍過(guò)濾default日志。
現(xiàn)在查詢?nèi)罩荆?/h5>
  1. 登錄plumeLog頁(yè)面,根據(jù)用戶Id或訂單號(hào)查詢,即可查詢到關(guān)鍵日志,大致定位問(wèn)題。
  2. 根據(jù)日志的hostIp參數(shù)登錄到機(jī)器根據(jù)追蹤碼過(guò)濾即可得到詳細(xì)日志。
整合過(guò)程
  1. pom添加依賴

    <dependency>
        <groupId>com.plumelog</groupId>
        <artifactId>plumelog-logback</artifactId>
        <version>3.5.2</version>
    </dependency>
    
  2. logback.xml添加appender,注意區(qū)分測(cè)試和線上環(huán)境

    <appenders>
        <!--使用redis啟用下面配置-->
        <appender name="plumelog" class="com.plumelog.logback.appender.RedisAppender">
            <appName>plumelog</appName>
            <redisHost>172.16.249.72:6379</redisHost>
            <redisAuth>123456</redisAuth>
        </appender>
        <!-- 使用kafka啟用下面配置 -->
        <appender name="plumelog" class="com.plumelog.logback.appender.KafkaAppender">
            <appName>plumelog</appName>
            <kafkaHosts>172.16.247.143:9092,172.16.247.60:9092,172.16.247.64:9092</kafkaHosts>
        </appender>
        <!-- 使用lite模式啟用下面配置 -->
        <appender name="plumelog" class="com.plumelog.logback.appender.LiteAppender">
            <appName>worker</appName>
            <plumelogHost>localhost:8891</plumelogHost>
        </appender>
    </appenders>
            <!--使用上面三個(gè)三選一加入到root下面-->
    <root level="INFO">
    	<appender-ref ref="plumelog"/>
    </root>
    
     <!-- 結(jié)合環(huán)境配置案例-->
    <springProfile name="dev">
        <root level="INFO">
            <appender-ref ref="plumelog" />
        </root>
    </springProfile>
    <springProfile name="test">
        <root level="INFO">
            <appender-ref ref="plumelog" />
        </root>
    </springProfile>
    <springProfile name="prod">
        <root level="INFO">
            <appender-ref ref="plumelog" />
        </root>
    </springProfile>
    
  3. 代碼調(diào)整輸出日志

    1. 當(dāng)前只把部分關(guān)鍵日志輸出到plumeLog,可以解決大部分問(wèn)題,每條日志都有機(jī)器IP
    2. 把用戶Id作為擴(kuò)展字段,方便搜索。
    3. 鏈路追蹤:將“tc”參數(shù)作為追蹤碼,調(diào)用交易時(shí),將其放到head中傳給交易,可以直接根據(jù)追蹤碼搜索,串聯(lián)mservice和交易系統(tǒng)。
    4. 將“tc”參數(shù)放到MDC中,輸出到日志頭,可以直接根據(jù)“tc”參數(shù)過(guò)濾日志
  4. 下載server包,調(diào)整server配置文件文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-685681.html

   spring.application.name=plumelog_server
   spring.profiles.active=test-confidential
   server.port=8891
   spring.thymeleaf.mode=LEGACYHTML5
   spring.mvc.view.prefix=classpath:/templates/
   spring.mvc.view.suffix=.html
   spring.mvc.static-path-pattern=/plumelog/**
   spring.boot.admin.context-path=admin
   
   #值為4種 redis,kafka,rest,restServer
   #redis 表示用redis當(dāng)隊(duì)列
   #kafka 表示用kafka當(dāng)隊(duì)列
   #rest 表示從rest接口取日志
   #restServer 表示作為rest接口服務(wù)器啟動(dòng)
   #ui 表示單獨(dú)作為ui啟動(dòng)
   #lite 簡(jiǎn)易模式啟動(dòng)不需要配置redis等
   plumelog.model=kafka
   #plumelog.lite.log.path=/Users/chenlongfei/lucene
   # 如果使用kafka,啟用下面配置
   plumelog.kafka.kafkaHosts=broker.kafka.mid:443,broker.kafka.mid:443
   plumelog.kafka.kafkaGroupName=logConsumer
   
   #隊(duì)列redis地址,model配置redis集群模式,哨兵模式用逗號(hào)隔開(kāi),隊(duì)列redis不支持集群模式
   #plumelog.queue.redis.redisHost=127.0.0.1:6379
   #如果使用redis有密碼,啟用下面配置
   #plumelog.queue.redis.redisPassWord=123456
   #plumelog.queue.redis.redisDb=0
   #哨兵模式需要配置的
   #plumelog.queue.redis.sentinel.masterName=myMaster
   
   #管理端redis地址 ,集群用逗號(hào)隔開(kāi),不配置將和隊(duì)列公用
   plumelog.redis.redisHost=127.0.0.1:8389,127.0.0.1:8388
   #如果使用redis有密碼,啟用下面配置
   #plumelog.redis.redisPassWord=123456
   #plumelog.redis.redisDb=0
   #哨兵模式需要配置的
   #plumelog.redis.sentinel.masterName=myMaster
   
   #如果使用rest,啟用下面配置
   #plumelog.rest.restUrl=http://127.0.0.1:8891/getlog
   #plumelog.rest.restUserName=plumelog
   #plumelog.rest.restPassWord=123456
   
   #redis解壓縮模式,開(kāi)啟后不消費(fèi)非壓縮的隊(duì)列
   #plumelog.redis.compressor=true
   
   #elasticsearch相關(guān)配置,Hosts支持?jǐn)y帶協(xié)議,如:http、https
   plumelog.es.esHosts=127.0.0.1:9200
   plumelog.es.shards=5
   plumelog.es.replicas=0
   plumelog.es.refresh.interval=30s
   #日志索引建立方式day表示按天、hour表示按照小時(shí)
   plumelog.es.indexType.model=day
   #plumelog.es.maxShards=100000
   #ES設(shè)置密碼,啟用下面配置
   #plumelog.es.userName=elastic
   #plumelog.es.passWord=elastic
   #是否信任自簽證書
   #plumelog.es.trustSelfSigned=true
   #是否hostname驗(yàn)證
   #plumelog.es.hostnameVerification=false
   
   #單次拉取日志條數(shù)
   plumelog.maxSendSize=100
   #拉取時(shí)間間隔,kafka不生效
   plumelog.interval=100
   
   #plumelog-ui的地址 如果不配置,報(bào)警信息里不可以點(diǎn)連接
   plumelog.ui.url=http://plumelog.ck.api:8891
   
   #管理密碼,手動(dòng)刪除日志的時(shí)候需要輸入的密碼
   admin.password=123456
   
   #日志保留天數(shù),配置0或者不配置默認(rèn)永久保留
   admin.log.keepDays=30
   #鏈路保留天數(shù),配置0或者不配置默認(rèn)永久保留
   admin.log.trace.keepDays=30
   #登錄配置,配置后會(huì)有登錄界面
   #login.username=admin
   #login.password=admin
  1. 部署server,當(dāng)前已部署6個(gè)pod。
  2. 當(dāng)前實(shí)際應(yīng)用中,日常每天日志總量200多萬(wàn)條。2G左右。

到了這里,關(guān)于plumelog介紹與應(yīng)用-一個(gè)簡(jiǎn)單易用的java分布式日志系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 一個(gè)開(kāi)源、免費(fèi)在線數(shù)據(jù)建模、元數(shù)據(jù)管理平臺(tái),簡(jiǎn)單易用

    一個(gè)開(kāi)源、免費(fèi)在線數(shù)據(jù)建模、元數(shù)據(jù)管理平臺(tái),簡(jiǎn)單易用

    一、開(kāi)源項(xiàng)目簡(jiǎn)介 ERD Online 是一個(gè)開(kāi)源、免費(fèi)在線數(shù)據(jù)建模、元數(shù)據(jù)管理平臺(tái)。提供簡(jiǎn)單易用的元數(shù)據(jù)設(shè)計(jì)、關(guān)系圖設(shè)計(jì)、SQL查詢等功能,輔以版本、導(dǎo)入、導(dǎo)出、數(shù)據(jù)源、SQL解析、審計(jì)、團(tuán)隊(duì)協(xié)作等功能、方便我們快速、安全的管理數(shù)據(jù)庫(kù)中的元數(shù)據(jù)。 使用AGPL-3.0開(kāi)源協(xié)議

    2024年02月02日
    瀏覽(20)
  • NSubstitute:一個(gè)簡(jiǎn)單易用、靈活多變的.NET單元測(cè)試模擬框架

    推薦一個(gè)簡(jiǎn)單易用、靈活多變的.NET單元測(cè)試模擬框架,讓開(kāi)發(fā)者能夠更輕松地進(jìn)行單元測(cè)試。 NSubstitute是一個(gè)開(kāi)源的.NET單元測(cè)試模擬類庫(kù),該框架設(shè)計(jì)的主要目標(biāo)是提供一個(gè)簡(jiǎn)單明了、易用性強(qiáng)、貼近自然語(yǔ)言的模擬測(cè)試框架。它使得開(kāi)發(fā)者能夠?qū)W⒂跍y(cè)試工作,而不是糾

    2024年02月07日
    瀏覽(23)
  • 開(kāi)發(fā)一個(gè)簡(jiǎn)單易用的SDK的詳細(xì)步驟(超詳細(xì),超適用)

    開(kāi)發(fā)一個(gè)簡(jiǎn)單易用的SDK的詳細(xì)步驟(超詳細(xì),超適用)

    創(chuàng)建starter步驟 1.新建一個(gè) spring boot 初始化項(xiàng)目 2.添加依賴,Lombok, Spring Configuration Processor Spring Configuration Processor 的作用是自動(dòng)生成代碼提示 3.修改 pom 文件的版本號(hào),并刪除 build 4.刪除原本自動(dòng)創(chuàng)建的主類,新建一個(gè)類, 并添加需要用到的依賴 5.在 resources 目錄下新建 META-

    2023年04月15日
    瀏覽(14)
  • 【Unity小技巧】手戳一個(gè)簡(jiǎn)單易用的游戲UI框架(附源碼)

    參考原視頻鏈接: 【視頻】:https://www.bilibili.com/video/BV1zT411b7L3/ 注意 :本文為學(xué)習(xí)筆記記錄,推薦支持原作者,去看原視頻自己手敲代碼理解更加深入 開(kāi)發(fā)一款游戲美術(shù)成本是極其高昂的,以我們常見(jiàn)的宣傳片CG為例,動(dòng)輒就要成百上千萬(wàn)的價(jià)格,因此這種美術(shù)物料一般只

    2024年02月11日
    瀏覽(27)
  • Java實(shí)現(xiàn)AES加密工具類 - 簡(jiǎn)單易用的數(shù)據(jù)加密解決方案

    當(dāng)我們涉及到敏感數(shù)據(jù)的存儲(chǔ)和傳輸時(shí),數(shù)據(jù)加密是非常重要的。加密可以確保數(shù)據(jù)的保密性和完整性,并幫助我們防止數(shù)據(jù)泄露和攻擊。在Java中,使用標(biāo)準(zhǔn)的加密算法和庫(kù)可以很容易地實(shí)現(xiàn)數(shù)據(jù)加密和解密。本篇文章將介紹一個(gè)簡(jiǎn)單的Java工具類,該工具類使用AES對(duì)稱加密

    2024年02月11日
    瀏覽(45)
  • Dify.AI:簡(jiǎn)單易用的 LLMOps 平臺(tái),可視化創(chuàng)造和運(yùn)營(yíng)你的 AI 原生應(yīng)用

    Dify.AI:簡(jiǎn)單易用的 LLMOps 平臺(tái),可視化創(chuàng)造和運(yùn)營(yíng)你的 AI 原生應(yīng)用

    Dify 一詞源自? D efine + Mo dify ,意指定義并持續(xù)改進(jìn)你的 AI 應(yīng)用。 隨著大型語(yǔ)言模型(LLM)不斷涌現(xiàn)的各種能力,AI 應(yīng)用的場(chǎng)景變得更加廣闊。然而,對(duì)于大多數(shù)開(kāi)發(fā)者而言,基于 GPT 等大型語(yǔ)言模型、Langchain 等技術(shù)框架開(kāi)發(fā) AI 應(yīng)用仍然是一項(xiàng)門檻極高的任務(wù)。開(kāi)發(fā)者必須

    2024年02月11日
    瀏覽(13)
  • Java開(kāi)發(fā)手冊(cè)之單元測(cè)試,軟件測(cè)試端簡(jiǎn)單易用的SPI框架

    Java開(kāi)發(fā)手冊(cè)之單元測(cè)試,軟件測(cè)試端簡(jiǎn)單易用的SPI框架

    【推薦】編寫單元測(cè)試代碼遵守 BCDE 原則,以保證被測(cè)試模塊的交付質(zhì)量。 B:Border,邊界值測(cè)試,包括循環(huán)邊界、特殊取值、特殊時(shí)間點(diǎn)、數(shù)據(jù)順序等。 C:Correct,正確的輸入,并得到預(yù)期的結(jié)果。 D:Design,與設(shè)計(jì)文檔相結(jié)合,來(lái)編寫單元測(cè)試。 E:Error,強(qiáng)制錯(cuò)誤信息輸

    2024年04月25日
    瀏覽(40)
  • 【Java】x-easypdf: 一種簡(jiǎn)單易用的PDF處理庫(kù)

    引言 在處理和生成PDF文檔時(shí),有許多庫(kù)可供選擇。其中,x-easypdf是一種簡(jiǎn)單易用的PDF處理庫(kù),可以幫助開(kāi)發(fā)人員輕松地創(chuàng)建、編輯和操作PDF文檔。本文將介紹x-easypdf的基本概念、安裝方法、主要功能以及使用示例。 安裝x-easypdf 要使用x-easypdf,首先需要將其安裝到項(xiàng)目中。您

    2024年02月09日
    瀏覽(77)
  • Lattics:一款簡(jiǎn)單易用、好看強(qiáng)大的「類腦式」知識(shí)管理工具,筆記應(yīng)用與寫作軟件二合一

    隨著數(shù)字化時(shí)代的到來(lái),越來(lái)越多的人意識(shí)到 知識(shí)管理 的重要性。筆記軟件和寫作軟件作為一種常用的知識(shí)管理工具,一直以來(lái)備受關(guān)注。從最早的印象筆記、有道云、為知筆記、幕布mubu到近幾年的思源 Siyuan、熊掌記 Bear、flomo浮墨筆記、石墨、語(yǔ)雀yueque、WPS、Notion、Flow

    2024年02月03日
    瀏覽(22)
  • 只用Mysql搞一個(gè)分布式鎖

    在web開(kāi)發(fā)中,分布式的鎖的應(yīng)用場(chǎng)景甚多,我們可以通過(guò)分布式鎖來(lái)進(jìn)行一些僅依賴于數(shù)據(jù)庫(kù)的事務(wù)很難直接保證原子性的操作,比如多種不同數(shù)據(jù)源的訪問(wèn),網(wǎng)絡(luò)通信等等。多數(shù)情況下我們會(huì)使用memcache的add, redis中在set中指定nx參數(shù)等來(lái)完成。 下面介紹一個(gè)僅依賴Mysql來(lái)完

    2024年01月22日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包