Java微服務(wù)監(jiān)控及與普羅米修斯集成

一朗兵、??? 背景說(shuō)明

Java服務(wù)級(jí)監(jiān)控用于對(duì)每個(gè)應(yīng)用占用的內(nèi)存、線程池的線程數(shù)量顶滩、restful調(diào)用數(shù)量和響應(yīng)時(shí)間余掖、JVM狀態(tài)、GC信息等進(jìn)行監(jiān)控礁鲁,并可將指標(biāo)信息同步至普羅米修斯中集中展示和報(bào)警盐欺。網(wǎng)上類似的文章較多,內(nèi)容長(zhǎng)且時(shí)間較舊仅醇,本文所寫內(nèi)容已經(jīng)過(guò)實(shí)踐驗(yàn)證冗美,可快速幫助你實(shí)現(xiàn)集成。

二析二、??? 監(jiān)控方案說(shuō)明

本監(jiān)控方案僅用于SpringBoot 2項(xiàng)目粉洼。通過(guò)在服務(wù)中引入actuator組件實(shí)現(xiàn)與普羅米修斯的集成。由于actuator有一定的安全隱患甲抖,本文也著重介紹了如何實(shí)現(xiàn)授權(quán)訪問(wèn)漆改。


三、??? 方案詳情

1准谚、引入spring actuator及spring security

Actuator用于收集微服務(wù)的監(jiān)控指標(biāo)包括內(nèi)存使用挫剑、GC、restful接口調(diào)用時(shí)長(zhǎng)等信息柱衔。為避免敏感信息泄露的風(fēng)險(xiǎn)樊破,還需要同時(shí)使用spring security框架以實(shí)現(xiàn)訪問(wèn)actuator端點(diǎn)時(shí)的授權(quán)控制∷纛恚“micrometer-registry-prometheus”用于將您的微服務(wù)暴露為“exportor”哲戚,可直接對(duì)接普羅米修斯。

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <version>1.8.1</version> </dependency>

2艾岂、配置文件(application.yml)增加應(yīng)用名稱

spring: application: name: your service name

“name”節(jié)點(diǎn)的值需要根據(jù)當(dāng)前服務(wù)的名稱填寫顺少,建議規(guī)則如下:小于32字符長(zhǎng)度;全小寫王浴;單詞間使用“-”分隔脆炎。

3、配置文件中增加actuator配置

建議將下面配置放在二級(jí)配置文件(application-x氓辣,例:線上配置文件“application-prod”)中秒裕。配置信息的“include”節(jié)點(diǎn)建議僅暴露“prometheus”節(jié)點(diǎn)

#name和password為您自定義的信息 spring: security: user: name: *** password: *** management: server: port: 1234 #給actuator一個(gè)自定義端口钞啸,建議與服務(wù)的端口進(jìn)行區(qū)分 metrics: tags: application: ${spring.application.name} endpoints: web: base-path: /${spring.application.name}/application-monitor #安全起見(jiàn)几蜻,此處使用自定義地址 exposure: include: prometheus #安全起見(jiàn)喇潘,僅暴露prometheus一個(gè)端點(diǎn)

4、配置spring security

為實(shí)現(xiàn)actuator端點(diǎn)訪問(wèn)授權(quán)梭稚,需要在啟動(dòng)文件(即包含“static void main”方法的文件)的同級(jí)任意目錄中建立一個(gè)名為“SecurityConfig .java”的java文件颖低,并將下列代碼復(fù)制到類中

@EnableWebSecurity @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .formLogin() .and() .httpBasic() .and() .authorizeRequests()          //application-monitor為3小節(jié)本配置文件中自定義的actuator端點(diǎn)url,此處代碼表示當(dāng)訪問(wèn)actuator端點(diǎn)時(shí)哨毁,需要進(jìn)行登錄枫甲。用戶名和密碼參看3小節(jié)配置 .antMatchers("/**/application-monitor/**").authenticated() .anyRequest().permitAll(); //其它業(yè)務(wù)接口不用登錄 } }

5源武、驗(yàn)證結(jié)果

配置完成后啟動(dòng)服務(wù)扼褪。訪問(wèn)服務(wù)中的查詢類和命令類業(yè)務(wù)接口,應(yīng)與引入“actuator”和“spring security”前一致粱栖。訪問(wèn)“ip:1234/{your service name}/application-monitor/prometheus”话浇,應(yīng)顯示登錄界面,如下圖所示闹究。


輸入3小節(jié)中“spring.security.user”節(jié)點(diǎn)中的用戶名與密碼幔崖,顯示如下界面表示配置成功。需要注意:務(wù)必保證測(cè)試結(jié)果與上述說(shuō)明一致渣淤,以避免服務(wù)正常的restful接口無(wú)法被訪問(wèn)赏寇。

配置成功后,您的服務(wù)就變成了一個(gè)標(biāo)準(zhǔn)的“exportor”价认,可以實(shí)現(xiàn)與普羅米修斯的對(duì)接嗅定。

6、附錄

如果出現(xiàn)POST用踩、PUT和DELETE方法無(wú)法訪問(wèn)渠退,請(qǐng)?jiān)黾尤缦麓a配置。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末脐彩,一起剝皮案震驚了整個(gè)濱河市碎乃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惠奸,老刑警劉巖梅誓,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異佛南,居然都是意外死亡梗掰,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門共虑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)愧怜,“玉大人,你說(shuō)我怎么就攤上這事妈拌∮堤常” “怎么了蓬蝶?”我有些...
    開封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)猜惋。 經(jīng)常有香客問(wèn)我丸氛,道長(zhǎng),這世上最難降的妖魔是什么著摔? 我笑而不...
    開封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任缓窜,我火速辦了婚禮,結(jié)果婚禮上谍咆,老公的妹妹穿的比我還像新娘禾锤。我一直安慰自己,他們只是感情好摹察,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開白布恩掷。 她就那樣靜靜地躺著,像睡著了一般供嚎。 火紅的嫁衣襯著肌膚如雪黄娘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天克滴,我揣著相機(jī)與錄音逼争,去河邊找鬼。 笑死劝赔,一個(gè)胖子當(dāng)著我的面吹牛誓焦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播望忆,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼罩阵,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了启摄?” 一聲冷哼從身側(cè)響起稿壁,我...
    開封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎歉备,沒(méi)想到半個(gè)月后傅是,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蕾羊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年喧笔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片龟再。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡书闸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出利凑,到底是詐尸還是另有隱情浆劲,我是刑警寧澤嫌术,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站牌借,受9級(jí)特大地震影響度气,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜膨报,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一磷籍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧现柠,春花似錦院领、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至废恋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扒寄,已是汗流浹背鱼鼓。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留该编,地道東北人迄本。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像课竣,于是被迫代替她去往敵國(guó)和親嘉赎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容