电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java 用Prometheus搭建實時監控系統過程詳解

瀏覽:110日期:2022-08-28 09:41:28

上帝之火

本系列講述的是開源實時監控告警解決方案Prometheus,這個單詞很牛逼。每次我都能聯想到帶來上帝之火的希臘之神,普羅米修斯。而這個開源的logo也是火,個人挺喜歡這個logo的設計。

本系列著重介紹Prometheus以及如何用它和其周邊的生態來搭建一套屬于自己的實時監控告警平臺。

本系列受眾對象為初次接觸Prometheus的用戶,大神勿噴,偏重于操作和實戰,但是重要的概念也會精煉出提及下。系列主要分為以下幾塊

Prometheus各個概念介紹和搭建,如何抓取數據(本次分享內容) 如何推送數據至Prometheus,推送和拉取分別用于什么樣的場景 Prometheus數據的結構以及查詢語言PromQL的使用 Java應用如何和Prometheus集成,如何啟用服務發現,如果自定義業務指標 Prometheus如何和Grafana可視化套件進行集成和設置告警 教你如何手寫一個集成了監控Dubbo各個指標的java套件 實際案例分享,如何做各個業務端和系統端的監控大盤

Prometheus以及時序數據庫的基本概念

Prometheus現在在Github有3w多的star,基本上過萬星的開源工具,可以認為是社區里絕對的主流,社區也相當活躍,可以有大量的經驗可以借鑒。在企業級系統中,可以放心的使用。

Java 用Prometheus搭建實時監控系統過程詳解

Prometheus 是由 SoundCloud 開發的開源監控報警系統和時序列數據庫。從字面上理解,Prometheus 由兩個部分組成,一個是監控報警系統,另一個是自帶的時序數據庫(TSDB)。

關于時序數據庫(TSDB)這里要說下,我們可以簡單的理解為一個優化后用來處理時間序列數據的數據庫,并且數據中的數組是由時間進行索引的。相比于傳統的結構化數據庫主要有幾個好處:

時間序列數據專注于海量數據的快速攝取。時序數據庫視數據的每一次變化為一條新的數據,從而可以去衡量變化:分析過去的變化,監測現在的變化,以及預測未來將如何變化,傳統結構化數據在數據量小的時候能做到,在數據量大的時候就需要花費大量的成本。 高精度數據保存時間較短,中等或更低精度的摘要數據保留時間較長。對于實時監控來說,不一定需要每一個精準的數據,而是固定時間段時間數據的摘要。這對于結構化數據庫來說就意味著要進行篩選,在保證大量的寫入同時還要進行帥選,這是一個超出結構化數據庫設計來處理的工作量。 數據庫本身必須連續計算來自高精度數據的摘要以進行長期存儲。這些計算既包括一些簡單的聚合,同時也有一些復雜計算。傳統數據庫無法承受那么大量的計算。因為必須去實時統計這些聚合和復雜運算。

開始搭建Prometheus

https://prometheus.io/

在Prometheue官網Download標簽頁進行下載,這里以linux版本為例:

Java 用Prometheus搭建實時監控系統過程詳解

下載好之后,解壓,運行

nohup /data/prometheus/prometheus --web.listen-address=0.0.0.0:9090 --config.file=/data/prometheus/prometheus.yml --web.enable-lifecycle --storage.tsdb.path=/data/prometheus/data --storage.tsdb.retention.time=15d &

這樣,就簡單的搭建起來Prometheus服務端了。這時候,我們可以在web上訪問

http://127.0.0.1:9090

就可以訪問到管理頁面

Java 用Prometheus搭建實時監控系統過程詳解

界面上幾個標簽說明下:

Alert:用來配置告警規則。之后我們會用Grafana自身的告警界面配置來代替這個。

Graph:用來運行PromQL語句的一個控制臺,并且可以把運行出來的語句用用圖形化進行展示,此塊我們后面章節會介紹到。

Status:包含系統信息,系統狀態,配置信息,目標節點的狀態,服務發現狀態等元信息的查看。

Prometheus整體架構以及生態

Java 用Prometheus搭建實時監控系統過程詳解

這張圖是官方的整體架構圖。米黃色部分是Prometheus自己的組件,綠色的為第三方的中間件和應用。

簡單介紹下整個Prometheus的生態架構:

Prometheus獲取數據的方式只有一種,就是scrape,也稱作pull,意為拉取。Prometheus每隔一段時間會從目標(target)這里以Http協議拉取指標(metrics),這些目標可以是應用,也可以是代理,緩存中間件,數據庫等等一些中間件。 拉取出來的數據Prometheus會存到自己的TSDB數據庫。自己的WebUI控制臺以及Grafana可以對其數據進行時間范圍內的不斷查詢,繪制成實時圖表工展現。 Prometheus 支持例如zookeeper,consul之類的服務發現中間件,用以對目標(target)的自動發現。而不用一個個去配置target了。 alertManager組件支持自定義告警規則,告警渠道也支持很多種

拉取數據

Prometheus主要是通過拉取的方式獲取數據,說簡單點,就是每隔固定時間去訪問配置的target,target就是一個獲取數據的url。

現在我們就來模擬一個數據源,并讓prometheus去拉取。

新建一個springboot的web項目,pom依賴加上

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

application.properties里加上

server.port=8080anagement.endpoints.web.exposure.include=*

啟動完畢后,我們就可以在頁面上訪問如下地址:

http://127.0.0.1:8080/actuator/prometheus

得到如下數據:

Java 用Prometheus搭建實時監控系統過程詳解

關于actuator如何監控應用指標以及自定義指標我會在之后的系列里單獨分析,這里只要理解成我們啟動了一個服務,提供了一個url能列出一些kv形式的指標就行了。

例如jvm_memory_max_bytes{area='heap',id='PS Old Gen',} 2.863661056E9這個指標,前面是key,后面為value。

其中key上又分key name和key labels,key name就是``jvm_memory_max_bytes,key labels有2個。

這個指標提供了jvm的最大內存,其中area為heap,表明這是堆內存區域,id為PS Old Gen,表明這是老年代。綜合起來看,這個指標就是jvm中老年代的最大值。數值類型是byte,換算下來大概是286M左右。

我們有指標的數據源后,再在prometheus 的根目錄下編輯prometheus.yml文件,添加如下配置:

- job_name: ’test’ scrape_interval: 5s metrics_path: ’/actuator/prometheus’ static_configs: - targets: [’localhost:8080’] labels: instance: demo

這個配置表示:prometheue每隔5秒鐘從http://localhost:8080/actuator/prometheus這個url拉取指標,并且為每個指標添加instance這個標簽。

添加完畢后,重啟prometheus。進入web頁面中的targets頁面。如果前面步驟沒問題的話,會看到:

Java 用Prometheus搭建實時監控系統過程詳解

狀態為UP表明prometheue已經成功獲取到了這個target 的數據。

在查詢頁面上輸入剛才那個指標的key:

Java 用Prometheus搭建實時監控系統過程詳解

這里每個value都是prometheus最近一次抓取的數據。你每執行一次,數據都會變。

這里為什么會有多條數據呢,是因為每個指標他們的標簽不一樣。完全一樣的標簽會被歸為一種指標。

點Graph這標簽可以看到在時間序列下,某個指標的變化趨勢

Java 用Prometheus搭建實時監控系統過程詳解

上圖展示了系統cpu指標的變化圖。

最后

如今微服務盛行,小規模的企業的微服務節點也快上百了,Prometheus生態能夠用最小的代價使所有的數據實時可視化。這對于開發和運維來說,意義在于,所有的數據不再是黑盒了,至少我個人覺得所有的數據能夠被觀測和分析,是具有安全感的。

這個系列旨在利用實戰操作教你一步步搭建自己系統和業務監控大盤。后面會繼續更新。下一個章節將分析:搭建pushgateway去push數據到prometheus,以及2種不同的數據獲取方式分別用于什么樣的場景。

到此這篇關于用Prometheus搭建實時監控系統過程詳解之上帝之火,普羅米修斯的崛起的文章就介紹到這了,更多相關用Prometheus搭建實時監控系統內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 动物麻醉机-数显脑立体定位仪-北京易则佳科技有限公司 | 钢结构厂房造价_钢结构厂房预算_轻钢结构厂房_山东三维钢结构公司 | 郑州外墙清洗_郑州玻璃幕墙清洗_郑州开荒保洁-河南三恒清洗服务有限公司 | 网优资讯-为循环资源、大宗商品、工业服务提供资讯与行情分析的数据服务平台 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 盘煤仪,盘料仪,盘点仪,堆料测量仪,便携式激光盘煤仪-中科航宇(北京)自动化工程技术有限公司 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 伶俐嫂培训学校_月嫂培训班在哪里报名学费是多少_月嫂免费政府培训中心推荐 | 翰香原枣子坊加盟费多少钱-正宗枣核糕配方培训利润高飘香 | 红外光谱仪维修_二手红外光谱仪_红外压片机_红外附件-天津博精仪器 | 诺冠气动元件,诺冠电磁阀,海隆防爆阀,norgren气缸-山东锦隆自动化科技有限公司 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 懂研帝_专业SCI论文润色机构_SCI投稿发表服务公司 | 硬度计_影像测量仪_维氏硬度计_佛山市精测计量仪器设备有限公司厂家 | vr安全体验馆|交通安全|工地安全|禁毒|消防|安全教育体验馆|安全体验教室-贝森德(深圳)科技 | 高中学习网-高考生信息学习必备平台 | 【法利莱住人集装箱厂家】—活动集装箱房,集装箱租赁_大品牌,更放心 | 【365公司转让网】公司求购|转让|资质买卖_股权转让交易平台 | 济南办公室装修-厂房装修-商铺装修-工装公司-山东鲁工装饰设计 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | 吹田功率计-长创耐压测试仪-深圳市新朗普电子科技有限公司 | 泰国专线_泰国物流专线_广州到泰国物流公司-泰廊曼国际 | 慈溪麦田广告公司,提供慈溪广告设计。 | 中国品牌门窗网_中国十大门窗品牌_著名门窗品牌 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 煤矿人员精确定位系统_矿用无线通信系统_煤矿广播系统 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 金联宇电缆总代理-金联宇集团-广东金联宇电缆实业有限公司 | 聚合氯化铝厂家-聚合氯化铝铁价格-河南洁康环保科技 | 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 彩超机-黑白B超机-便携兽用B超机-多普勒彩超机价格「大为彩超」厂家 | 游泳池设备安装工程_恒温泳池设备_儿童游泳池设备厂家_游泳池水处理设备-东莞市君达泳池设备有限公司 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 沉降天平_沉降粒度仪_液体比重仪-上海方瑞仪器有限公司 | 伺服电机_直流伺服_交流伺服_DD马达_拓达官方网站 | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] | 济南品牌设计-济南品牌策划-即合品牌策划设计-山东即合官网 | 短信营销平台_短信群发平台_106短信发送平台-河南路尚 | 防火门-专业生产甲级不锈钢钢质防火门厂家资质齐全-广东恒磊安防设备有限公司 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵|