日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

ELK太重?試試輕量級分布式日志框架GrayLog

來源: 責(zé)編: 時間:2024-04-29 16:18:07 214觀看
導(dǎo)讀在微服務(wù)架構(gòu)中,一個服務(wù)通常都會有多個實(shí)例,而這些服務(wù)實(shí)例可能會被部署到不同的機(jī)器或虛擬容器上。此時對于日志數(shù)據(jù)的查看和分析就會變得困難起來,因?yàn)檫@些服務(wù)的日志數(shù)據(jù)都散落在各自實(shí)例所在的機(jī)器或容器上。例如,我

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

部署Graylog

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

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-it elasticsearch:9200 --  /docker-entrypoint.sh      networks:        - graylog      restart: always      depends_on:        - mongo        - elasticsearch      ports:        - 9009:9000        - 1514:1514        - 1514:1514/udp        - 12201:12201        - 12201:12201/udpnetworks:    graylog:      driver: bridg

這個文件里唯一需要改動的就是 ip (本來的端口是 9000 的,我由于已經(jīng)占用了 9000 端口了,所以我這里把端口改成了 9009 ,你們可以隨意)5ld28資訊網(wǎng)——每日最新資訊28at.com

嗯,寫完 docker-compose.yml 文件,直接 docker-compose up -d 它就啟動起來咯。5ld28資訊網(wǎng)——每日最新資訊28at.com

啟動以后,我們就可以通過 ip:port 訪問對應(yīng)的Graylog后臺地址了,默認(rèn)的賬號和密碼是 admin/admin5ld28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片5ld28資訊網(wǎng)——每日最新資訊28at.com

隨后,我們配置下 inputs 的配置,找到 GELF UDP ,然后點(diǎn)擊 Launch new input ,只需要填寫 Title 字段,保存就完事了(其他不用動)。5ld28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片5ld28資訊網(wǎng)——每日最新資訊28at.com

Spring Boot 集成GrayLog

首先創(chuàng)建一個SpringBoot項(xiàng)目,SpringBoot默認(rèn)自帶的日志框架是Logback,我們可以到 Graylog組件市場查找Logback相應(yīng)的組件。5ld28資訊網(wǎng)——每日最新資訊28at.com

添加依賴如下:5ld28資訊網(wǎng)——每日最新資訊28at.com

<dependency>  <groupId>de.siegmar</groupId>  <artifactId>logback-gelf</artifactId>  <version>3.0.0</version></dependency>

接著在項(xiàng)目的resources目錄下,新建一個logback.xml文件,編輯文件內(nèi)容如下:5ld28資訊網(wǎng)——每日最新資訊28at.com

<appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">  <!-- Graylog服務(wù)的地址 -->  <graylogHost>ip</graylogHost>  <!-- UDP Input端口 -->  <graylogPort>12201</graylogPort>  <!-- 最大GELF數(shù)據(jù)塊大小(單位:字節(jié)),508為建議最小值,最大值為65467 -->  <maxChunkSize>508</maxChunkSize>  <!-- 是否使用壓縮 -->  <useCompression>true</useCompression>  <encoder class="de.siegmar.logbackgelf.GelfEncoder">    <!-- 是否發(fā)送原生的日志信息 -->    <includeRawMessage>false</includeRawMessage>    <includeMarker>true</includeMarker>    <includeMdcData>true</includeMdcData>    <includeCallerData>false</includeCallerData>    <includeRootCauseData>false</includeRootCauseData>    <!-- 是否發(fā)送日志級別的名稱,否則默認(rèn)以數(shù)字代表日志級別 -->    <includeLevelName>true</includeLevelName>    <shortPatternLayout class="ch.qos.logback.classic.PatternLayout">      <pattern>%m%nopex</pattern>    </shortPatternLayout>    <fullPatternLayout class="ch.qos.logback.classic.PatternLayout">      <pattern>%d - [%thread] %-5level %logger{35} - %msg%n</pattern>    </fullPatternLayout>    <!-- 配置應(yīng)用名稱(服務(wù)名稱),通過staticField標(biāo)簽可以自定義一些固定的日志字段 -->    <staticField>app_name:austin</staticField>  </encoder></appender>

在這個配置信息里,唯一要改的也只是 ip 的地址,到這里接入就完畢了,我們再打開控制臺,就能看到日志的信息啦。5ld28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片5ld28資訊網(wǎng)——每日最新資訊28at.com

配置完成后啟動項(xiàng)目,啟動完成后正常情況下可以在Graylog的Search界面中查看日志信息:5ld28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片5ld28資訊網(wǎng)——每日最新資訊28at.com

點(diǎn)擊一條日志信息會展開詳細(xì)的字段:5ld28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片5ld28資訊網(wǎng)——每日最新資訊28at.com

以上是最簡單的日志配置,如果希望對更多配置項(xiàng)進(jìn)行自定義的話,可以參考該組件的GitHub文檔,上面有具體的配置項(xiàng)說明5ld28資訊網(wǎng)——每日最新資訊28at.com

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

圖片圖片5ld28資訊網(wǎng)——每日最新資訊28at.com

還可以使用一些條件表達(dá)式,例如我要查詢message字段包含http,并且日志級別為INFO的日志信息:5ld28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片5ld28資訊網(wǎng)——每日最新資訊28at.com

常用的日志搜索語法如下:5ld28資訊網(wǎng)——每日最新資訊28at.com

  • 模糊查詢:直接輸入要查詢的內(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

本文鏈接:http://www.www897cc.com/showinfo-26-86513-0.htmlELK太重?試試輕量級分布式日志框架GrayLog

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Google 孵化了三個Go安全庫,推薦使用!

下一篇: 如何在Java中高效處理和編碼Emoji表情,包括編碼、解碼和過濾方法

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 铜梁县| 南昌市| 电白县| 苏尼特右旗| 沭阳县| 沈阳市| 巫溪县| 泰宁县| 子长县| 新蔡县| 萨迦县| 金华市| 滨海县| 新田县| 佛教| 吉林省| 铜梁县| 清苑县| 台前县| 黄平县| 泾源县| 丹凤县| 萨迦县| 昭苏县| 聂荣县| 南部县| 保靖县| 湖北省| 武强县| 青铜峡市| 双柏县| 大冶市| 精河县| 长汀县| 米泉市| 宜丰县| 澄城县| 汝南县| 梅州市| 四平市| 洮南市|