在微服務(wù)架構(gòu)中,一個(gè)服務(wù)通常都會(huì)有多個(gè)實(shí)例,而這些服務(wù)實(shí)例可能會(huì)被部署到不同的機(jī)器或虛擬容器上。此時(shí)對(duì)于日志數(shù)據(jù)的查看和分析就會(huì)變得困難起來(lái),因?yàn)檫@些服務(wù)的日志數(shù)據(jù)都散落在各自實(shí)例所在的機(jī)器或容器上。例如,我現(xiàn)在要在訂單服務(wù)里查找一個(gè)訂單id為1的日志,而訂單服務(wù)有10個(gè)實(shí)例并且部署在10臺(tái)不同的機(jī)器上,那么我就得一臺(tái)臺(tái)的去找這個(gè)日志數(shù)據(jù)。所以這時(shí)候我們就需要有一個(gè)可以實(shí)現(xiàn)日志聚合的工具,將所有實(shí)例的日志數(shù)據(jù)都聚合在一個(gè)地方,那么我們就不需要到每個(gè)實(shí)例去找日志了,而本文將使用的日志聚合工具為Graylog。
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比望花網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式望花網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋望花地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。關(guān)于Graylog的介紹及安裝可以參考我另一篇文章:
目前使用Java語(yǔ)言編寫微服務(wù)架構(gòu)的項(xiàng)目,基本都是使用SpringBoot作為項(xiàng)目的基本開發(fā)框架,所以本文主要介紹SpringBoot如何集成Graylog,并將日志數(shù)據(jù)發(fā)送給Graylog服務(wù)實(shí)現(xiàn)日志聚合。
1.首先創(chuàng)建一個(gè)SpringBoot項(xiàng)目,SpringBoot默認(rèn)自帶的日志框架是Logback,我們可以到Graylog組件市場(chǎng)查找Logback相應(yīng)的組件。
我這里選擇了一個(gè)近期有更新過(guò)的組件,該組件的github地址如下:
https://github.com/osiegmar/logback-gelf
2.然后在項(xiàng)目的pom.xml加入該組件的依賴,如下:
de.siegmar
logback-gelf
2.0.0
3.接著在項(xiàng)目的resources目錄下,新建一個(gè)logback.xml文件,編輯文件內(nèi)容如下:
%d - [%thread] %-5level %logger{35} - [%line] - %msg%n
192.168.190.129
12201
我這邊的UDP Input配置信息如下:
4.配置完成后啟動(dòng)項(xiàng)目,啟動(dòng)完成后正常情況下可以在Graylog的Search界面中查看日志信息:
點(diǎn)擊一條日志信息會(huì)展開詳細(xì)的字段:
以上是最簡(jiǎn)單的日志配置,如果希望對(duì)更多配置項(xiàng)進(jìn)行自定義的話,可以參考該組件的GitHub文檔,上面有具體的配置項(xiàng)說(shuō)明,下面給出一個(gè)我自己常用的appender配置示例:
192.168.190.129
12201
508
true
false
true
true
false
false
true
%m%nopex
%d - [%thread] %-5level %logger{35} - %msg%n
app_name:backend
os_arch:${os.arch}
os_name:${os.name}
os_version:${os.version}
現(xiàn)在我們已經(jīng)成功將項(xiàng)目的日志數(shù)據(jù)發(fā)送到了Graylog服務(wù),如果我們想在Graylog上檢索日志也很簡(jiǎn)單,只需要使用一些簡(jiǎn)單的語(yǔ)法即可,例如我要查詢包含Mapping的日志信息:
還可以使用一些條件表達(dá)式,例如我要查詢message字段包含http,并且日志級(jí)別為INFO的日志信息:
常用的日志搜索語(yǔ)法如下:
orderid
"orderid: 11"
message:http 或 message:"http"
message:(base-service base-web)
message:http AND level_name:ERROR OR source:192.168.0.4
app_name:order-service AND orderid:12?4*
注意:以上示例中涉及的符號(hào)全部是英文符號(hào),且字母不區(qū)分大小寫
關(guān)于搜索語(yǔ)法的官方文檔地址如下:
http://docs.graylog.org/en/3.0/pages/queries.html
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。