SpringBoot使用Actuator+Jolokia+Telegraf+Influxdb+Grafana搭建圖形化服務(wù)監(jiān)控平臺(tái)

隨著服務(wù)的復(fù)雜度上升示弓,對服務(wù)的監(jiān)控和管理的需求顯著增加讳侨,開發(fā)人員可以使用Jconsole、jvisualvm奏属、jinfo跨跨、jstat等工具分析服務(wù)的運(yùn)行狀況,但是對于運(yùn)維人員以及其他非開發(fā)人員就不具有可行性囱皿;故需要搭建一套圖形化的監(jiān)控平臺(tái)勇婴。

簡介

Actuator

actuator是spring boot提供的對應(yīng)用系統(tǒng)的自省和監(jiān)控的集成功能,可以對應(yīng)用系統(tǒng)進(jìn)行配置查看嘱腥、相關(guān)功能統(tǒng)計(jì)等耕渴。Actuator使用方法

Jolokia

Spring Boot Actuator對外暴露應(yīng)用的監(jiān)控信息,Jolokia提供使用HTTP接口獲取JSON格式 的數(shù)據(jù)齿兔。Jolokia使用方法

Telegraf

收集系統(tǒng)和服務(wù)的統(tǒng)計(jì)數(shù)據(jù)橱脸,并支持寫入到 InfluxDB 數(shù)據(jù)庫。官方地址

Influxdb

InfluxDB 是一個(gè)開源分布式時(shí)序分苇、事件和指標(biāo)數(shù)據(jù)庫慰技。它具備如下主要特性;官方地址

  • Time Series (時(shí)間序列):你以使用與時(shí)間有關(guān)的相關(guān)函數(shù)(如最大组砚,最小吻商,求和等)
  • Metrics(度量):你可以實(shí)時(shí)對大量數(shù)據(jù)進(jìn)行計(jì)算
  • Eevents(事件):它支持任意的事件數(shù)據(jù)

Grafana

Grafana 是一個(gè)開箱即用的可視化工具,具有功能齊全的度量儀表盤和圖形編輯器糟红,有靈活豐富的圖形化選項(xiàng)艾帐,可以混合多種風(fēng)格,支持多個(gè)數(shù)據(jù)源特點(diǎn)盆偿。官方地址

安裝

Telegraf

使用Centos柒爸,安裝方法如下,其他系統(tǒng)安裝參考

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.3.5-1.x86_64.rpm
sudo yum localinstall telegraf-1.3.5-1.x86_64.rpm

Influxdb

使用Centos事扭,安裝方法如下捎稚,

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.3.5.x86_64.rpm
sudo yum localinstall influxdb-1.3.5.x86_64.rpm

Grafana

使用Centos安裝方法如下,其他系統(tǒng)安裝參考

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.4.3-1.x86_64.rpm
sudo yum localinstall grafana-4.4.3-1.x86_64.rpm 

配置

Telegraf

  • 打開配置文件

    vim /etc/telegraf/telegraf.conf 
    
  • 配置輸入源
    Jolokia做為輸入源,在Vim中定位到該配置塊求橄,在非編輯模式下輸入如下命令:

    /inputs.telegraf
    

代碼如下:

[[inputs.jolokia]]
#配置jolokia接口的路徑今野,可根據(jù)自己的實(shí)際情況修改
context = "/jolokia/"
//需要收集信息的服務(wù)地址,多個(gè)可增加[[inputs.jolokia.servers]]節(jié)點(diǎn)
[[inputs.jolokia.servers]]
    name = "as-server-01"
     host = "127.0.0.1"
     port = "9000"
#     # username = "myuser"
#     # password = "mypassword"
#需要收集信息的節(jié)點(diǎn)罐农,此處可參看后續(xù)的配置方法
#收集內(nèi)存的使用情況
#[[inputs.jolokia.metrics]]
# name = "heap_memory_usage"
#mbean  = "java.lang:type=Memory"
#attribute = "HeapMemoryUsage"
#收集springboot中actuator的監(jiān)控信息
[[inputs.jolokia.metrics]]
name = "metrics"
mbean  ="org.springframework.boot:name=metricsEndpoint,type=Endpoint"
attribute = "Data"     

還支持其他如MQTT条霜、redis等服務(wù),使用方法可參考官方文檔涵亏。

  • 配置 輸出源
    使用InfluxDb作為輸出源宰睡,定位到該模塊

    /outputs.influxdb
    

代碼如下:

[[outputs.influxdb]]
 ## The HTTP or UDP URL for your InfluxDB instance.  Each item should be
 ## of the form:
 ##   scheme "://" host [ ":" port]
 ##
 ## Multiple urls can be specified as part of the same cluster,
 ## this means that only ONE of the urls will be written to each interval.
 # urls = ["udp://localhost:8089"] # UDP endpoint example
#influx的http地址蒲凶,可根據(jù)實(shí)際情況修改
 urls = ["http://localhost:8086"] # required
 ## The target database for metrics (telegraf will create it if not exists).
 #數(shù)據(jù)庫名稱
 database = "telegraf" # required
  • 保存配置文件

  • 啟動(dòng)服務(wù)

    systemctl start telegraf
    

Influxdb

  • 打開配置文件

    vi /etc/influxdb/influxdb.conf      
    
  • 若不需要修改端口或其他,可使用默認(rèn)配置

  • 啟動(dòng)服務(wù)

    systemctl start influxdb
    

Grafana

  • 使用默認(rèn)配置拆内,使用sqlite3數(shù)據(jù)庫保存配置信息旋圆,若需要更換數(shù)據(jù)庫,可打開/etc/grafana/grafana.ini配置

  • 啟動(dòng)

    grafana-server
    

使用

  • 新建Springboot應(yīng)用麸恍,添加如下依賴:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>      
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>org.jolokia</groupId>
    <artifactId>jolokia-core</artifactId>
</dependency>
  • 添加自定義的監(jiān)控指標(biāo)
@RestController
public class MyController {
   //簡單技術(shù)指標(biāo)監(jiān)控
   @Autowired
   CounterService counterService;
   /**
    * 聲明日志
    */
   private Logger LOGGER = LoggerFactory.getLogger(this.getClass());


   @RequestMapping("/hello")
   public SimpleResult ver() throws Exception{
       counterService.increment("acess.max");
       return null;
   }
} 
QQ截圖20170831154347

3.添加Dashboard,此處監(jiān)控堆內(nèi)存的使用情況和剛才添加的自定義指標(biāo)灵巧,
Influxdb的使用方法和相關(guān)函數(shù)含義可自定查詢;
堆內(nèi)存數(shù)據(jù)查詢

配置堆內(nèi)存最大堆大小及已使用堆大小監(jiān)控

自定義指標(biāo)數(shù)據(jù)查詢

配置接口/hello訪問次數(shù)監(jiān)控.jpg
  1. 結(jié)果如下

其他

  • Telegraf中Jolokia監(jiān)控源配置方法或南,可先打開Jconsole工具孩等,找到需監(jiān)控的應(yīng)用,打開Mbean選項(xiàng):
  • 找到springboot中的Endpoint的metricsEndpoint
    上文中Telegraf配置
[[inputs.jolokia.metrics]]
name = "metrics"
mbean  ="org.springframework.boot:name=metricsEndpoint,type=Endpoint"
attribute = "Data"     
  1. name可自定義
  2. mbean 對應(yīng)我們選擇的需監(jiān)控對象的ObjectName的值org.springframework.boot:type=Endpoint,name=metricsEndpoint
  1. attribute 對應(yīng)節(jié)點(diǎn)的屬性中的Data
  2. 其他需要監(jiān)控的節(jié)點(diǎn)信息采够,可按該方法找到對應(yīng)的信息肄方,如內(nèi)存信息監(jiān)控信息
[[inputs.jolokia.metrics]]
  name = "heap_memory_usage"
 mbean  = "java.lang:type=Memory"
 attribute = "HeapMemoryUsage"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蹬癌,隨后出現(xiàn)的幾起案子权她,更是在濱河造成了極大的恐慌,老刑警劉巖逝薪,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件隅要,死亡現(xiàn)場離奇詭異,居然都是意外死亡董济,警方通過查閱死者的電腦和手機(jī)步清,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虏肾,“玉大人廓啊,你說我怎么就攤上這事》夂溃” “怎么了谴轮?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吹埠。 經(jīng)常有香客問我第步,道長,這世上最難降的妖魔是什么缘琅? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任粘都,我火速辦了婚禮,結(jié)果婚禮上胯杭,老公的妹妹穿的比我還像新娘驯杜。我一直安慰自己,他們只是感情好做个,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布鸽心。 她就那樣靜靜地躺著,像睡著了一般居暖。 火紅的嫁衣襯著肌膚如雪顽频。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天太闺,我揣著相機(jī)與錄音糯景,去河邊找鬼。 笑死省骂,一個(gè)胖子當(dāng)著我的面吹牛蟀淮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播钞澳,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼怠惶,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了轧粟?” 一聲冷哼從身側(cè)響起策治,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎兰吟,沒想到半個(gè)月后通惫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡混蔼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年履腋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惭嚣。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡遵湖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出料按,到底是詐尸還是另有隱情奄侠,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布载矿,位于F島的核電站垄潮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏闷盔。R本人自食惡果不足惜弯洗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望逢勾。 院中可真熱鬧牡整,春花似錦、人聲如沸溺拱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至沐扳,卻和暖如春泥从,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背沪摄。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工躯嫉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人杨拐。 一個(gè)月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓祈餐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親哄陶。 傳聞我的和親對象是個(gè)殘疾皇子帆阳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

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