1. 程式人生 > >Spring Boot Actutaur + Telegraf + InFluxDB + Grafana 構建監控平臺

Spring Boot Actutaur + Telegraf + InFluxDB + Grafana 構建監控平臺

nts ade 端口 windows sed pan nes 程序 依賴項

完成一套精準,漂亮圖形化監控系統從這裏開始第一步

技術分享圖片

Telegraf是收集和報告指標和數據的代理

  它是TICK堆棧的一部分,是一個用於收集報告指標的插件驅動的服務器代理Telegraf擁有插件或集成功能,可直接從運行的系統獲取各種指標,從第三方API獲取指標,甚至通過StatsD和Kafka消費者服務來收聽指標它還具有輸出插件,可將指標發送到各種其他數據存儲服務消息隊列,包括InfluxDB,Graphite,OpenTSDB,Datadog,Librato,Kafka,MQTT,NSQ等等。

技術分享圖片

Spring Boot Actuator

  Spring Boot Actuator包含一個帶“metrics”和“gauge”支持的度量服務。

“量表”記錄單個值; ‘計數器‘記錄增量(增量或減量)。Spring Boot Actuator還提供了一個PublicMetrics可以實現界面,用於公開您無法通過這兩種機制之一記錄的指標。SystemPublicMetrics 一個例子。

  將你的springboot項目中依賴Spring Boot Actuator 的包,啟動之後會發現控制臺打出的mapped變得很多了,例如/env、/health、/info等等的信息,恭喜你已經成功使用了metric對程序進行了簡單的監控了,在瀏覽器中輸入本地的ip項目訪問地址如:http://localhost:8080/metrics,就會出現如下的數據

  

{
    "counter.status.200.root": 20,
    "counter.status.200.metrics": 3,
    "counter.status.200.star-star": 5,
    "counter.status.401.root": 4,
    "gauge.response.star-star": 6,
    "gauge.response.root": 2,
    "gauge.response.metrics": 3,
    "classes": 5808,
    "classes.loaded": 5808,
    "classes.unloaded": 0,
    "heap": 3728384,
    "heap.committed": 986624,
    "heap.init": 262144,
    "heap.used": 52765,
    "nonheap": 0,
    "nonheap.committed": 77568,
    "nonheap.init": 2496,
    "nonheap.used": 75826,
    "mem": 986624,
    "mem.free": 933858,
    "processors": 8,
    "threads": 15,
    "threads.daemon": 11,
    "threads.peak": 15,
    "threads.totalStarted": 42,
    "uptime": 494836,
    "instance.uptime": 489782,
    "datasource.primary.active": 5,
    "datasource.primary.usage": 0.25
}

管理員功能

  通過指定spring.application.admin.enabled屬性可以為應用程序啟用與管理相關的功能 這暴露 SpringApplicationAdminMXBean 了平臺上MBeanServer您可以使用此功能遠程管理您的Spring Boot應用程序。這對於任何服務包裝器實現也是有用的。

引入spring-boot-admin依賴  
<dependency>  
    <groupId>de.codecentric</groupId>  
    <artifactId>spring-boot-admin-server</artifactId>  
    <version>1.4.0</version>  
</dependency>  
  
<dependency>  
    <groupId>de.codecentric</groupId>  
    <artifactId>spring-boot-admin-server-ui</artifactId>  
    <version>1.4.0</version>  
</dependency>  

  如果您想知道應用程序在哪個HTTP端口上運行,請使用密鑰獲取該屬性local.server.port

  當啟用此功能時要小心,因為MBean公開了關閉應用程序的方法。

使用Jolokia進行JMX over HTTP

  Jolokia是一個JMX-HTTP橋梁,它提供了訪問JMX bean的另一種方法。要使用Jolokia,只需添加依賴項即可org.jolokia:jolokia-core例如,使用Maven你可以添加以下內容:

  

<dependency> 
    <groupId> org.jolokia </ groupId> 
    <artifactId> jolokia-core </ artifactId> 
 </ dependency>

  在application.yaml後者application.properties中配置響應的配置

jolokia.config.debug=true  
endpoints.jolokia.enabled=true  
#endpoints.jolokia.sensitive=true  
endpoints.jolokia.path=/jolokia 

環境搭建

下載Telegraf、influxdb 、grafana,我個人建議先搭建一個windows版本的環境自己配置玩一玩

https://portal.influxdata.com/downloads#influxdb
https://grafana.com/grafana/download?platform=windows

技術分享圖片

1 Influxdb配置

修改influxdb.conf,設置日誌文件目錄:

#cd 到安裝解壓的修改influxdb.conf

[admin]
# Determines whether the admin service is enabled.
enabled = true

# The default bind address used by the admin service.
bind-address = ":8083"

其他配置都是默認好的,不用修改,如果版本下載不一樣可能需要修改,不妨給我留言,我會及時回復的

2啟動

 通過cmd命令窗口,切換到influxdb安裝目錄,執行如下命令:

influxd -config influxdb.conf

 通過cmd命令窗口,切換到Telegraf安裝目錄,執行如下命令:

telegraf -config telegraf.conf

切換到Grafana安裝目錄中的bin目錄下,雙擊grafana-server.exe啟動程序

訪問http://locahost:8090,這是可以配置的端口號,可以訪問了:

使用:

訪問http://localhost:8086,使用admin/admin登錄本機Grafana,新建influxdb數據源:

技術分享圖片

【註意】Telegraf啟動後,向InfluxDb中上報數據時,會默認創建一個telegraf數據庫,所以上面我們配置DataBase是telegraf

點擊new創建一個Dashboards

配置編輯會出來可配置頁面:

點擊General:配置基本的圖表信息

點擊metrics,配置收集到的收據信息,實際就是寫sql查詢,不同數據庫數據sql書寫方式不同

查看http://localhost:8083,可以發現telegraf庫中,默認有4個Measurements(表):

技術分享圖片

配置Grafana中的面板完成後,這樣一個簡易的本機監控系統就搭建完了:

技術分享圖片

Spring Boot Actutaur + Telegraf + InFluxDB + Grafana 構建監控平臺