国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng)

這篇具有很好參考價值的文章主要介紹了云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

一、理論

1.Promethues簡介

2.監(jiān)控告警系統(tǒng)設(shè)計(jì)思路

3.Prometheus監(jiān)控體系

4.Prometheus時間序列數(shù)據(jù)

5.Prometheus的生態(tài)組件

6.Prometheus工作原理

7.Prometheus監(jiān)控內(nèi)容

8.部署Prometheus

9.部署Exporters

10.部署Grafana進(jìn)行展示

二、實(shí)驗(yàn)

1.部署Prometheus

2.部署Exporters

2.監(jiān)控遠(yuǎn)程MySQL

3.部署Grafana進(jìn)行展示

三、問題

1.Prometheus和Zabbix區(qū)別

2.如何防止告警信息轟炸

3.監(jiān)控服務(wù)有哪4個黃金指標(biāo)

4.訪問prometheus服務(wù)器被監(jiān)控端agent服務(wù)器狀態(tài)報錯

5.mysqld_exporter如何指定啟動參數(shù)

四、總結(jié)


一、理論

1.Promethues簡介

(1)概念

Prometheus 是一個開源的服務(wù)監(jiān)控系統(tǒng)和時序數(shù)據(jù)庫(TDSB),其提供了通用的數(shù)據(jù)模型和快捷數(shù)據(jù)采集、存儲和查詢接口。它的核心組件Prometheus server會定期從靜態(tài)配置的監(jiān)控目標(biāo)或者基于服務(wù)發(fā)現(xiàn)自動配置的自標(biāo)中進(jìn)行拉取數(shù)據(jù),當(dāng)新拉取到的數(shù)據(jù)大于配置的內(nèi)存緩存區(qū)時,數(shù)據(jù)就會持久化到存儲設(shè)備當(dāng)中。

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

每個被監(jiān)控的主機(jī)都可以通過專用的exporter 程序提供輸出監(jiān)控?cái)?shù)據(jù)的接口,它會在目標(biāo)處收集監(jiān)控?cái)?shù)據(jù),并暴露出一個HTTP接口供Prometheus server查詢,Prometheus通過基于HTTP的pull的方式來周期性的采集數(shù)據(jù)。
任何被監(jiān)控的目標(biāo)都需要事先納入到監(jiān)控系統(tǒng)中才能進(jìn)行時序數(shù)據(jù)采集、存儲、告警和展示,監(jiān)控目標(biāo)可以通過配置信息以靜態(tài)形式指定,也可以讓Prometheus通過服務(wù)發(fā)現(xiàn)的機(jī)制進(jìn)行動態(tài)管理。
Prometheus 能夠直接把API Server作為服務(wù)發(fā)現(xiàn)系統(tǒng)使用,進(jìn)而動態(tài)發(fā)現(xiàn)和監(jiān)控集群中的所有可被監(jiān)控的對象
Prometheus 官網(wǎng)地址:https://prometheus.io
 
Prometheus github 地址:https://github.com/prometheus

(2)特點(diǎn)

多維數(shù)據(jù)模型:由度量名稱和鍵值對標(biāo)識的時間序列數(shù)據(jù)
時序數(shù)據(jù),是在一段時間內(nèi)通過重復(fù)測量(measurement)而獲得的觀測值的集合;將這些觀測值繪制于圖形之上,它會有一個數(shù)據(jù)軸和一個時間軸;

服務(wù)器指標(biāo)數(shù)據(jù)、應(yīng)用程序性能監(jiān)控?cái)?shù)據(jù)、網(wǎng)絡(luò)數(shù)據(jù)等也都是時序數(shù)據(jù);

1)內(nèi)置時間序列(pime series)數(shù)據(jù)庫:Prometheus;外置的遠(yuǎn)端存儲通常會用:InfluxDB、openTsDB等
2)promQL一種靈活的查詢語言,可以利用多維數(shù)據(jù)完成復(fù)雜查詢
3)基于HTTP的pull(拉?。┓绞讲杉瘯r間序列數(shù)據(jù)
4)同時支持PushGateway組件收集數(shù)據(jù)
5)通過服務(wù)發(fā)現(xiàn)或者靜態(tài)配置,來發(fā)現(xiàn)目標(biāo)服務(wù)對象
6)支持作為數(shù)據(jù)源接入Grafana

2.監(jiān)控告警系統(tǒng)設(shè)計(jì)思路

(1)模塊組成

①?數(shù)據(jù)收集模塊
②?數(shù)據(jù)提取模塊(prometheus-TSDB,查詢語言是promQL)
③?監(jiān)控告警模塊(布爾值表達(dá)式判斷是否需要告警,不成立是健康狀態(tài))

(2)層次

 
第一層:數(shù)據(jù)收集層       多渠道監(jiān)控?cái)?shù)據(jù)(網(wǎng)絡(luò),硬件,應(yīng)用,數(shù)據(jù),物理環(huán)境)

第二層:數(shù)據(jù)展示層       數(shù)據(jù)生成曲線圖展示(對時序數(shù)據(jù)的動態(tài)展示)

第三層:數(shù)據(jù)提取層       定時采集數(shù)據(jù)到監(jiān)控模塊

第四層:告警規(guī)則配置層   告警規(guī)則設(shè)置、告警伐值設(shè)置(定義布爾值表達(dá)式,篩選異常狀態(tài))

第五層:告警事件生成層   實(shí)時記錄告警事件、形成分析圖表(趨勢分析、可視化)

第六層:用戶展示管理層   同一用戶管理、集中監(jiān)控、集中維護(hù)

3.Prometheus監(jiān)控體系

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(1)系統(tǒng)層監(jiān)控(需要監(jiān)控的數(shù)據(jù))

1)CPU、Load、Memory、swap、disk、I/O、process等
2)網(wǎng)絡(luò)監(jiān)控:網(wǎng)絡(luò)設(shè)備、工作負(fù)載、網(wǎng)絡(luò)延遲、丟包率等

(2)中間件及基礎(chǔ)設(shè)施類監(jiān)控

1)消息中間件:kafka、RocketMQ、等消息代理(redis 中間件)
2)WEB服務(wù)容器:tomcat、weblogic、apache、php、spring系列
3)數(shù)據(jù)庫/緩存數(shù)據(jù)庫:Mysql、Postgresql、MongoDB、es、redis

redis監(jiān)控內(nèi)容:

redis的服務(wù)狀態(tài)
redis所在服務(wù)器的系統(tǒng)層監(jiān)控
RDB和AOF日志監(jiān)控

日志--->如果是哨兵模式--->哨兵共享集群信息,產(chǎn)生的日志
--->直接包含的其他節(jié)點(diǎn)哨兵信息及redis信息

key的數(shù)量
key被命中的數(shù)據(jù)/次數(shù)
最大連接數(shù)--->redis和系統(tǒng)
redis:redis-cli登錄--->config get maxclients查看最大連接

(3)應(yīng)用層監(jiān)控

它用于衡量應(yīng)用程序代碼狀態(tài)和性能。

監(jiān)控的分類:

1)白盒監(jiān)控:自省指標(biāo),等待被下載(cadvisor)
2)黑盒監(jiān)控:基于探針(snmp)的監(jiān)控方式,不會主動干預(yù)、影響數(shù)據(jù)

(4)業(yè)務(wù)層監(jiān)控

用于衡量應(yīng)用程序的價值。如電商業(yè)務(wù)的銷售量,ops、dau日活、轉(zhuǎn)化等。

業(yè)務(wù)接口:登入數(shù)量,注冊數(shù)、訂單量、搜索量和支付量。

4.Prometheus時間序列數(shù)據(jù)

(1)序列數(shù)據(jù)

時間序列數(shù)據(jù)(TimeSeries Data):按照時間順序記錄系統(tǒng)、設(shè)備狀態(tài)變化的數(shù)據(jù)被稱為時序數(shù)據(jù)。

應(yīng)用場景很多,如:

1)人駕駛車輛運(yùn)行中要記錄的經(jīng)度,緯度,速度,方向,旁邊物體的距離等等。每時每刻都要將數(shù)據(jù)記錄下來做分析。

2)某一個地區(qū)的各車輛的行駛軌跡數(shù)據(jù)

3)傳統(tǒng)證券行業(yè)實(shí)時交易數(shù)據(jù)

4)實(shí)時運(yùn)維監(jiān)控?cái)?shù)據(jù)等

(2)時間序列數(shù)據(jù)特點(diǎn)

Prometheus 有著非常高效的時間序列數(shù)據(jù)存儲方法,每個采樣數(shù)據(jù)僅僅占用 3.5byte 左右空間,上百萬條時間序列,30 秒間隔,保留 60 天,大概花了 200 多 G(來自官方數(shù)據(jù))。

1)性能好:關(guān)系型數(shù)據(jù)庫對于大規(guī)模數(shù)據(jù)的處理性能糟糕。NOSQL 可以比較好的處理大規(guī)模數(shù)據(jù),讓依然比不上時間序列數(shù)據(jù)庫。
2)存儲成本低:高效的壓縮算法,節(jié)省存儲空間,有效降低 IO。

(3)數(shù)據(jù)來源

Prometheus基于HTTP call (http/https請求),從配置文件中指定的網(wǎng)絡(luò)端點(diǎn)(endpoint/IP:端口)上周期性獲取指標(biāo)數(shù)據(jù)。很多環(huán)境、被監(jiān)控對象,本身是沒有直接響應(yīng)/處理http請求的功能,prometheus-exporter則可以在被監(jiān)控端收集所需的數(shù)據(jù),收集過來之后,還會做標(biāo)準(zhǔn)化,把這些數(shù)據(jù)轉(zhuǎn)化為prometheus可識別,可使用的數(shù)據(jù)(兼容格式)。
?

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(4)收集數(shù)據(jù)

1)監(jiān)控概念:白盒監(jiān)控、黑盒監(jiān)控

2)白盒監(jiān)控:自省方式,被監(jiān)控端內(nèi)部,可以生成指標(biāo),只要等待監(jiān)控系統(tǒng)來采集時提供出去即可。

3)黑盒監(jiān)控:對于被監(jiān)控系統(tǒng)沒有侵入性,對其沒有直接‘影響",這種類似于基于探針機(jī)制進(jìn)行監(jiān)控(snmp協(xié)議)

prometheus支持通過三種類型的途徑從目標(biāo)上抓取/采集(scrape)指標(biāo)數(shù)據(jù)(基于白盒監(jiān)控):

1)exporter--->工作在被監(jiān)控端,周期性的抓取數(shù)據(jù)并 轉(zhuǎn)換為prometheus來收集,自己并不推送
2)Instrumentation--->指被監(jiān)控對象內(nèi)部自身有數(shù)據(jù)收集、監(jiān)控的功能,只需要prometheus直接去獲取
3)Pushgateway--->短周期5s-10s的數(shù)據(jù)收集

(5)常見的時間序列數(shù)據(jù)庫

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(6)時間序列數(shù)據(jù)庫引擎排行

DB-Engines Ranking - die Rangliste der popul?rsten Time Series DBMS

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(7)prometheus獲取方式

Prometheus同其他TSDB相比有一個非常典型的特性:主動從各Target上拉?。╬ull)數(shù)據(jù),非等待被監(jiān)控端的推送(push)

兩個獲取方式各有優(yōu)劣,其中,Pull模型的優(yōu)勢在于:

1)集中控制:有利于將配置集在Prometheus server上完成,包括指標(biāo)及采取速率等;
2)Prometheus的根本目標(biāo)在于收集在target上預(yù)先完成聚合的聚合型數(shù)據(jù),而非一款由事件驅(qū)動的存儲系統(tǒng)通過targets(標(biāo)識的是具體的被監(jiān)控端)
3)比如配置文件中的targets : [ ‘localhost:9090’]

(8)Prometheus 數(shù)據(jù)模型

Prometheus 僅用于以“鍵值”(key)形式儲存時序式的聚合數(shù),不支持存儲文本信息;

1)其中的“鍵”稱為指標(biāo),它通常意味著cpu速率、內(nèi)存使用率、負(fù)載等;

2)同一指標(biāo)可能會適配到多個目標(biāo),比如cpu使用率這個指標(biāo),我們需要對100臺服務(wù)器設(shè)備進(jìn)行使用。所以它使

3)用“標(biāo)簽”(labels)作為元數(shù)據(jù),從而為指標(biāo)添加更多的信息描述;
這些標(biāo)簽可以作為過濾器進(jìn)行指標(biāo)過濾及運(yùn)算。

具體的看如下數(shù)據(jù)展示描述:

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

如上圖中,cpu_usage{core=“1”,ip=“128.0.0.1”} 14.04
cpu_usage為指標(biāo)名稱,{core=“1”,ip=“128.0.0.1”}為標(biāo)簽(標(biāo)簽內(nèi)的條件可以多個,用逗號分隔),14.04 為 表達(dá)式返回的值

5.Prometheus的生態(tài)組件

Prometheus 負(fù)責(zé)時序型指標(biāo)數(shù)據(jù)的采集及存儲,但數(shù)據(jù)的分析、聚合及直觀展示以及告警等功能并非由Prometheus Server所負(fù)責(zé)。

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(1)Prometheus server

Prometheus server:服務(wù)核心組件,采用pull方式收集監(jiān)控?cái)?shù)據(jù),通過http協(xié)議傳輸。并存儲時間序列數(shù)據(jù)。Prometheus server 由三個部分組成:Retrival,Storage,PromQL

1)Retrieval:負(fù)責(zé)在活躍的target 主機(jī)上抓取監(jiān)控指標(biāo)數(shù)據(jù)。
2)Storage:存儲,主要是把采集到的數(shù)據(jù)存儲到磁盤中。默認(rèn)為15天(可修改)。
3)PromQL:是Prometheus提供的查詢語言模塊。

(2)pushgateway

Pushgateway:類似一個中轉(zhuǎn)站,Prometheus的server端只會使用pull方式拉取數(shù)據(jù),但是某些節(jié)點(diǎn)因?yàn)槟承┰蛑荒苁褂胮ush方式推送數(shù)據(jù),那么它就是用來接收push而來的數(shù)據(jù)并暴露給Prometheus的server拉取的中轉(zhuǎn)站。可以理解成目標(biāo)主機(jī)可以上報短期任務(wù)的數(shù)據(jù)到Pushgateway,然后Prometheus server 統(tǒng)一從Pushgateway拉取數(shù)據(jù)。
?

(3)exporters

Exporters:指標(biāo)暴露器,負(fù)責(zé)收集不支持內(nèi)建Instrumentation的應(yīng)用程序或服務(wù)的性能指標(biāo)數(shù)據(jù),并通過HTTP接口供Prometheus Server獲取。換句話說,Exporter 負(fù)責(zé)從目標(biāo)應(yīng)用程序上采集和聚合原始格式的數(shù)據(jù),并轉(zhuǎn)換或聚合為Prometheus格式的指標(biāo)向外暴露。

常用的Exporters:

1)Node-Exporter:用于收集服務(wù)器節(jié)點(diǎn)(例如k8s)的物理指標(biāo)狀態(tài)數(shù)據(jù),如平均負(fù)載、CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等資源信息的指標(biāo)數(shù)據(jù),需要部署到所有運(yùn)算節(jié)點(diǎn)。指標(biāo)詳細(xì)介紹:https://github.com/prometheus/node_exporter
2)mysqld-exporter/nginx-exporter
3)Kube-state-Metrics:為prometheus 采集k8s資源數(shù)據(jù)的exporter,通過監(jiān)聽APIServer 收集kubernetes集群內(nèi)資源對象的狀態(tài)指標(biāo)數(shù)據(jù),例如pod、deployment、service 等等。同時它也提供自己的數(shù)據(jù),主要是資源采集個數(shù)和采集發(fā)生的異常次數(shù)統(tǒng)計(jì)。
4)cAdvisor:用來監(jiān)控容器內(nèi)部使用資源的信息,比如CPU、內(nèi)存、網(wǎng)絡(luò)I/0、磁盤I/0。
5)blackbox-exporter:監(jiān)控業(yè)務(wù)容器存活性。
需要注意的是kube-state-metrics 只是簡單的提供一個metrics 數(shù)據(jù),并不會存儲這些指標(biāo)數(shù)據(jù),
所以可以使用prometheus來抓取這些數(shù)據(jù)然后存儲,主要關(guān)注的是業(yè)務(wù)相關(guān)的一些元數(shù)據(jù),
比如Deployment、Pod、副本狀態(tài)等;調(diào)度了多少個replicas?現(xiàn)在可用的有幾個?
多少個Pod是running/stopped/terminated 狀態(tài)?Pod 重啟了多少次?有多少job在運(yùn)行中。

(4)Service Discovery

Service Discovery:服務(wù)發(fā)現(xiàn),用于動態(tài)發(fā)現(xiàn)待監(jiān)控的Target,Prometheus支持多種服務(wù)發(fā)現(xiàn)機(jī)制:文件、DNS、Consul、Kubernetes等等。

服務(wù)發(fā)現(xiàn)可通過第三方提供的接口,Prometheus查詢到需要監(jiān)控的Target列表,然后輪詢這些Target 獲取監(jiān)控?cái)?shù)據(jù)。該組件目前由Prometheus Server內(nèi)建支持。
?

(5)Alertmanager

Alertmanager:是一個獨(dú)立的告警模塊,從Prometheus server端接收到“告警通知”后,會進(jìn)行去重、分組,并路由到相應(yīng)的接收方,發(fā)出報警,常見的接收方式有:電子郵件、釘釘、企業(yè)微信等。

1)Prometheus Server 僅負(fù)責(zé)生成告警指示,具體的告警行為由另一個獨(dú)立的應(yīng)用程序AlertManager負(fù)責(zé);
2)告警指示由 Prometheus Server基于用戶提供的告警規(guī)則周期性計(jì)算生成,Alertmanager 接收到Prometheus Server發(fā)來的告警指示后,基于用戶定義的告警路由向告警接收人發(fā)送告警信息。

(6)client Library

client Library:客戶端庫,目的在于為那些期望原生提供Instrumentation功能的應(yīng)用程序提供便捷的開發(fā)途徑,用于基于應(yīng)用程序內(nèi)建的測量系統(tǒng)。

(7)grafana

Grafana:是一個跨平臺的開源的度量分析和可視化工具,可以將采集的數(shù)據(jù)可視化的展示,并及時通知給告警接收方。其官方庫中具有豐富的儀表盤插件。
?

6.Prometheus工作原理

(1)Prometheus數(shù)據(jù)流向:

1)Prometheus server定期從配置好的jobs或者exporters中拉取metrics,或者接收來自 Pushgateway發(fā)送過來的metrics,或者從其它的Prometheus server中拉metrics。
2)Prometheus server在本地存儲收集到的metrics,并運(yùn)行定義好的alerts.rules,記錄新的時間序列或者向Alert manager推送警報。
3)Alertmanager根據(jù)配置文件,對接收到的警報進(jìn)行處理,發(fā)出告警。
4)在圖形界面中,可視化采集數(shù)據(jù)。

(2)Prometheus工作模式

1)Prometheus Server 基于服務(wù)發(fā)現(xiàn)(Service Discovery)機(jī)制或靜態(tài)配置獲取要監(jiān)視的目標(biāo)(Target),并通過每個目標(biāo)上的指標(biāo)exporter來采集(Scrape)指標(biāo)數(shù)據(jù);
2)Prometheus Server 內(nèi)置了一個基于文件的時間序列存儲來持久存儲指標(biāo)數(shù)據(jù),用戶可使用PromQL接口來檢索數(shù)據(jù),也能夠按需將告警需求發(fā)往A1ertmanager完成告警內(nèi)容發(fā)送;
3)一些短期運(yùn)行的作業(yè)的生命周期過短,難以有效地將必要的指標(biāo)數(shù)據(jù)供給到Server端,它們一般會采用推送(Push)方式輸出指標(biāo)數(shù)據(jù),Prometheus借助于Pushgateway 接收這些推送的數(shù)據(jù),進(jìn)而由server端進(jìn)行抓取

(3)Prometheus工作流程

1)Prometheus以prometheus Server 為核心,用于收集和存儲時間序列數(shù)據(jù)。Prometheus Server從監(jiān)控目標(biāo)中通過pull方式拉取指標(biāo)數(shù)據(jù),或通過pushgateway 把采集的數(shù)據(jù)拉取到Prometheus server中。
2)Prometheus server 把采集到的監(jiān)控指標(biāo)數(shù)據(jù)通過TSDB存儲到本地HDD/ssD中。
3)Prometheus 采集的監(jiān)控指標(biāo)數(shù)據(jù)按時間序列存儲,通過配置報警規(guī)則,把觸發(fā)的報警發(fā)送到Alertmanager。
4)Alertmanager 通過配置報警接收方,發(fā)送報警到郵件、釘釘或者企業(yè)微信等。
5)Prometheus 自帶的Web UI 界面提供PromQL 查詢語言,可查詢監(jiān)控?cái)?shù)據(jù)。
6)Grafana 可接入Prometheus 數(shù)據(jù)源,把監(jiān)控?cái)?shù)據(jù)以圖形化形式展示出。

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

注意:告警數(shù)據(jù)采集、告警信息提取、告警通知
 
1)首先,需要采集監(jiān)控?cái)?shù)據(jù),pro會周期性的pull或被push指標(biāo)數(shù)據(jù),數(shù)據(jù)采集的方式主要包括exporters、instrumentation、pushgateway 3種方式,前兩者為pull方式獲取,pushgateway借助于push方式推送給prometheus。
 
2)根據(jù)prometheus配置文件中(K8S-configmap的配置中),獲取被監(jiān)控端的數(shù)據(jù)之后,保存在TSDB中,我們可以借助Grafana或者告警平臺來展示數(shù)據(jù),grafana的展示是通過PromQL來獲取數(shù)據(jù)。
 
3)prometheus通過rule配置來借助于PromQL來定義布爾值表達(dá)式,產(chǎn)生告警信息
 
4)一旦出現(xiàn)告警,prometheus產(chǎn)生告警信息,發(fā)送給alertmanager,alertmanager根據(jù)自定義的告警路由,來進(jìn)行告警通知,對接第三方平臺,例如告警平臺、郵件、釘釘。

(4)Prometheus的局限性

1)Prometheus是一款指際監(jiān)控系統(tǒng),不適合存儲事件及日志等;它更多地展示的是趨勢性的監(jiān)控,而非精準(zhǔn)數(shù)據(jù);
2)Prometheus認(rèn)為只有最近的監(jiān)控?cái)?shù)據(jù)才有查詢的需要,其本地存儲的設(shè)計(jì)初衷只是保存短期(例如一個月)數(shù)據(jù),因而不支持針對大量的歷史數(shù)據(jù)進(jìn)行存儲;若需要存儲長期的歷史數(shù)據(jù),建議基于遠(yuǎn)端存儲機(jī)制將數(shù)據(jù)保存于InfluxDB或openTsDB等系統(tǒng)中;
3)Prometheus的集群機(jī)制成熟度不高,可基于Thanos(和滅霸是一個單詞)實(shí)現(xiàn)Prometheus集群的高可用及聯(lián)邦集群

7.Prometheus監(jiān)控內(nèi)容

(1)監(jiān)控級別及內(nèi)容

表1 監(jiān)控級別及內(nèi)容

級別 監(jiān)控內(nèi)容 exporter
網(wǎng)絡(luò)

網(wǎng)絡(luò)協(xié)議:http、dns、tcp、icmp;

網(wǎng)路硬件:路由器、交換機(jī)等

BlockBox Exporter;SNMP Exporter
主機(jī) 資源用量 node exporter
容器 資源用量 cadvisor
應(yīng)用(包括Library) 延遲、錯誤,QPS,內(nèi)部狀態(tài) 代碼集中集成Prometheus Client
中間件狀態(tài) 資源用量,以及服務(wù)狀態(tài) 代碼集中集成Prometheus Client
編排工具 集群資源用量,調(diào)度等 Kubernetes Components

(2)網(wǎng)絡(luò)監(jiān)控

1)網(wǎng)絡(luò)性能監(jiān)控:主要涉及網(wǎng)絡(luò)監(jiān)測,網(wǎng)絡(luò)實(shí)時流量監(jiān)控(網(wǎng)絡(luò)延遲、訪問量、成功率)和歷史數(shù)據(jù)統(tǒng)計(jì)、匯總和歷史數(shù)據(jù)分析等功能。

2)網(wǎng)絡(luò)***檢測:主要針對內(nèi)網(wǎng)或者外網(wǎng)的網(wǎng)絡(luò)***。如DDoS***的。通過分析異常流量來確定網(wǎng)絡(luò)***行為。

3)設(shè)備監(jiān)控:主要針對數(shù)據(jù)中心內(nèi)的多種網(wǎng)絡(luò)設(shè)備進(jìn)行監(jiān)控。包括路由器,防火墻和交換機(jī)等硬件設(shè)備,可以通過snmp等協(xié)議收集數(shù)據(jù)。

(3)存儲監(jiān)控

1)存儲性能監(jiān)控方面:存儲通常監(jiān)控塊的讀寫速率,IOPS。讀寫延遲,磁盤用量等;文件存儲通常監(jiān)控文件系統(tǒng)inode。讀寫速度、目錄權(quán)限等。

2)存儲系統(tǒng)監(jiān)控方面:不同的存儲系統(tǒng)有不同的指標(biāo),例如,對于ceph存儲需要監(jiān)控OSD, MON的運(yùn)行狀態(tài),各種狀態(tài)pg的數(shù)量以及集群IOPS等信息。

3)存儲設(shè)備監(jiān)控方面:對于構(gòu)建在x86服務(wù)器上的存儲設(shè)備,設(shè)備監(jiān)控通過每個存儲節(jié)點(diǎn)上的采集器統(tǒng)一收集磁盤、SSD、網(wǎng)卡等設(shè)備信息;存儲廠商以黑盒方式提供商業(yè)存儲設(shè)備,通常自帶監(jiān)控功能,可監(jiān)控設(shè)備的運(yùn)行狀態(tài),性能和容量的。

(4)服務(wù)器監(jiān)控

1)CPU:涉及整個 CPU 的使用量、用戶態(tài)百分比、內(nèi)核態(tài)百分比,每個 CPU 的使用量、等待隊(duì)列長度、I/O 等待百分比、CPU 消耗最多的進(jìn)程、上下文切換次數(shù)、緩存命中率等。

2)內(nèi)存:涉及內(nèi)存的使用量、剩余量、內(nèi)存占用最高的進(jìn)程、交換分區(qū)大小、缺頁異常等。

3)網(wǎng)絡(luò) I/O:涉及每個網(wǎng)卡的上行流量、下行流量、網(wǎng)絡(luò)延遲、丟包率等。

4)磁盤 I/O:涉及硬盤的讀寫速率、IOPS、磁盤用量、讀寫延遲等。

(5)中間件監(jiān)控

1)消息中間件: RabbitMQ Exporter、Kafka Exporter

2)Web 服務(wù)中間件:Apache Exporter、Nginx Exporter

3)數(shù)據(jù)庫中間件:MySQL Exporter、PostgreSQL Exporter、Redis Exporter
 

8.部署Prometheus

(1)環(huán)境準(zhǔn)備

服務(wù)器類型 IP地址 組件
Prometheus服務(wù)器 192.168.204.18 Prometheus、node_exporter
grafana服務(wù)器 192.168.204.19 Grafana
agent服務(wù)器 192.168.204.20 node_exporter

關(guān)閉安全機(jī)制

#prometheus節(jié)點(diǎn)
[root@prometheus ~]# systemctl stop firewalld
[root@prometheus ~]# setenforce 0
setenforce: SELinux is disabled
[root@prometheus ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

#grafana節(jié)點(diǎn)
[root@grafana ~]# systemctl stop firewalld
[root@grafana ~]# setenforce 0
setenforce: SELinux is disabled
[root@grafana ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config


#agent節(jié)點(diǎn)
[root@agent ~]# systemctl stop firewalld
[root@agent ~]# setenforce 0
setenforce: SELinux is disabled
[root@agent ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

修正地址映射

vim /etc/hosts

192.168.204.18 prometheus
192.168.204.19 grafana
192.168.204.20 agent

(2)Prometheus部署

prometheus下載地址:

https://prometheus.io/download/

上傳 prometheus-2.37.0.linux-amd64.tar.gz 到 /opt 目錄中,并解壓

[root@prometheus ~]# cd /opt
[root@prometheus opt]# ls
cni  containerd  rh
[root@prometheus opt]# rz -E
rz waiting to receive.
[root@prometheus opt]# ls
cni  containerd  prometheus-2.37.0.linux-amd64.tar.gz  rh
[root@prometheus opt]# tar xf prometheus-2.37.0.linux-amd64.tar.gz 
[root@prometheus opt]# mv prometheus-2.37.0.linux-amd64 /usr/local/prometheus
[root@prometheus opt]# cd /usr/local/prometheus
[root@prometheus prometheus]# ls
console_libraries  consoles  LICENSE  NOTICE  prometheus  prometheus.yml  promtool

修改配置文件

cat /usr/local/prometheus/prometheus.yml | grep -v "^#"
global:					#用于prometheus的全局配置,比如采集間隔,抓取超時時間等
  scrape_interval: 15s			#采集目標(biāo)主機(jī)監(jiān)控?cái)?shù)據(jù)的時間間隔,默認(rèn)為1m
  evaluation_interval: 15s 		#觸發(fā)告警生成alert的時間間隔,默認(rèn)是1m
  # scrape_timeout is set to the global default (10s).
  scrape_timeout: 10s			#數(shù)據(jù)采集超時時間,默認(rèn)10s
 
alerting:				#用于alertmanager實(shí)例的配置,支持靜態(tài)配置和動態(tài)服務(wù)發(fā)現(xiàn)的機(jī)制
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093
 
rule_files:				#用于加載告警規(guī)則相關(guān)的文件路徑的配置,可以使用文件名通配機(jī)制
  # - "first_rules.yml"
  # - "second_rules.yml"
 
scrape_configs:			#用于采集時序數(shù)據(jù)源的配置
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"		#每個被監(jiān)控實(shí)例的集合用job_name命名,支持靜態(tài)配置(static_configs)和動態(tài)服務(wù)發(fā)現(xiàn)的機(jī)制(*_sd_configs)
 
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
 
    static_configs:				#靜態(tài)目標(biāo)配置,固定從某個target拉取數(shù)據(jù)
      - targets: ["localhost:9090"]

修改靜態(tài)模板配置,固定從某個target拉取數(shù)據(jù)

 - targets: ["192.168.204.18:9090"]

配置系統(tǒng)啟動文件,設(shè)置開機(jī)自啟

Unit為服務(wù)單元,After為依賴關(guān)系,config.file為配置文件,storage.tsdb.path為數(shù)據(jù)目錄,

storage.tsdb.retention為保存時間,ExecReload為重載

[root@prometheus prometheus]# vim /usr/lib/systemd/system/prometheus.service
 
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target
 
[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/usr/local/prometheus/data/ \
--storage.tsdb.retention=15d \
--web.enable-lifecycle
  
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

開啟prometheus,并訪問網(wǎng)頁驗(yàn)證

systemctl start prometheus
systemctl enable prometheus
 
netstat -natp | grep :9090
 
瀏覽器訪問:http://192.168.204.18:9090 ,訪問到 Prometheus 的 Web UI 界面
點(diǎn)擊頁面的 Status -> Targets,如看到 Target 狀態(tài)都為 UP,說明 Prometheus 能正常采集到數(shù)據(jù)
http://192.168.204.18:9090/metrics ,可以看到 Prometheus 采集到自己的指標(biāo)數(shù)據(jù)

通過瀏覽器訪問 http:// 服務(wù)器 IP:9090 就可以訪問到 Prometheus 的主界面

默認(rèn)只監(jiān)控了本機(jī)一臺,點(diǎn) Status→點(diǎn) Targets→可以看到只監(jiān)控了本機(jī)

9.部署Exporters

(1)監(jiān)控遠(yuǎn)程Linux主機(jī)(192.168.109.20)

在遠(yuǎn)程 linux 主機(jī)(被監(jiān)控端 agent)上安裝 node_exporter 組件。

下載地址:

https://prometheus.io/download/

上傳 node_exporter-1.3.1.linux-amd64.tar.gz 到 /opt 目錄中,并解壓

cd /opt/
tar xf node_exporter-1.3.1.linux-amd64.tar.gz
mv node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin

配置啟動文件,設(shè)置開機(jī)自啟

vim /usr/lib/systemd/system/node_exporter.service

[Unit]   
Description=mysqld_exporter
Documentation=https://prometheus.io/
After=network.target   
 
[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter \          
--collector.ntp \               
--collector.mountstats \
--collector.systemd \
--collector.tcpstat
 
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

啟動node_exporter

systemctl start node_exporter
systemctl enable node_exporter
 
netstat -natp | grep :9100
 
瀏覽器訪問:http://192.168.204.20:9100/metrics ,可以看到 Node Exporter 采集到的指標(biāo)數(shù)據(jù)

?通過瀏覽器訪問 http:// 被監(jiān)控端 IP:9100/metrics 就可以查看到 node_exporter 在被監(jiān)控端收集的監(jiān)控信息

修改Prometheus服務(wù)器的配置文件

回到 Prometheus 服務(wù)器的配置文件里添加被監(jiān)控機(jī)器的配置段:

vim /usr/local/prometheus/prometheus.yml
  - job_name: 'agent'
    static_configs:
    - targets: ['192.168.204.20:9100']

改完配置文件后,重啟服務(wù)?

systemctl restart prometheus.service
systemctl status prometheus

訪問prometheus服務(wù)器

回到 web 管理界面→點(diǎn) Status→點(diǎn) Targets→可以看到多了一臺監(jiān)控目標(biāo)

192.168.204.18:9090

注:也可以在本機(jī)安裝 node_exporter,使用上面的方式監(jiān)控本機(jī)。

(2)??監(jiān)控遠(yuǎn)程MySQL

在被管理機(jī) agent上安裝 mysqld_exporter 組件

下載地址:

https://prometheus.io/download/

(1)???安裝mariadb數(shù)據(jù)庫,并授權(quán)

安裝命令 yum -y install mariadb mariadb-server
安裝完成MariaDB,首先啟動MariaDB systemctl start mariadb
設(shè)置開機(jī)啟動 systemctl enable mariadb
取消開機(jī)啟動 systemctl disable mariadb

在當(dāng)前數(shù)據(jù)庫中增加授權(quán)

#進(jìn)入數(shù)據(jù)庫
mysql
 
授權(quán)IP為192.168.204.20,因?yàn)椴皇莗rometheus服務(wù)器直接來找mariadb獲取數(shù)據(jù),而是prometheus服務(wù)器找mysql_exporter,然后mysql_exporter再找mariadb.所以這個IP指的是mysql_exporter的IP.
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'192.168.204.20' IDENTIFIED BY 'exporter123' WITH MAX_USER_CONNECTIONS 3;

 
flush privileges;

(2)?下載mysqld_exporter組件?

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.0/mysqld_exporter-0.12.0.linux-amd64.tar.gz

(3)安裝mysqld_exporter組件

進(jìn)入目錄 cd /usr/local/prometheus/
下載 wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
解壓 tar xzvf mysqld_exporter-0.12.1.linux-amd64.tar.gz
修改目錄名 mv mysqld_exporter-0.12.1.linux-amd64 mysqld_exporter
修改用戶及組 chown -R root:root /usr/local/prometheus/mysqld_exporter/mysqld_exporter
修改權(quán)限 chmod 755 /usr/local/prometheus/mysqld_exporter/mysqld_exporter

(4)??添加mysqld_exporter為系統(tǒng)服務(wù)

# vim /usr/lib/systemd/system/mysqld_exporter.service
[Unit]
Description=mysqld_exporter
After=network.target
[Service]
Type=simple
User=mysql
# exporter對應(yīng)授權(quán)賬號,exporter123對應(yīng)授權(quán)密碼,localhost對應(yīng)授權(quán)賬號密碼所在的地址
Environment=DATA_SOURCE_NAME=exporter:exporter123@(localhost:3306)/
ExecStart=/usr/local/prometheus/mysqld_exporter/mysqld_exporter --web.listen-address=0.0.0.0:9104 
  --config.my-cnf /etc/my.cnf \
  --collect.slave_status \
  --collect.slave_hosts \
  --log.level=error \
  --collect.info_schema.processlist \
  --collect.info_schema.innodb_metrics \
  --collect.info_schema.innodb_tablespaces \
  --collect.info_schema.innodb_cmp \
  --collect.info_schema.innodb_cmpmem 
Restart=on-failure
[Install]
WantedBy=multi-user.targe

(5)啟動服務(wù)并監(jiān)聽端口

systemctl start mysqld_exporter
systemctl enable mysqld_exporter

netstat -antp | grep 9104

(6)??修改Prometheus服務(wù)器的配置文件

回到 Prometheus 服務(wù)器的配置文件里添加被監(jiān)控的 mariadb 的配置段

vim /usr/local/prometheus/prometheus.yml
 35   - job_name: 'agent_mariadb'
 36     static_configs:
 37     - targets: ['192.168.204.20:9104']

改完配置文件之后,重啟服務(wù)

systemctl restart prometheus.service

netstat -antp | grep 9090

(7)??訪問prometheus服務(wù)器

回到 web 管理界面→點(diǎn) Status→點(diǎn) Targets→可以看到監(jiān)控 mariadb?

192.168.204.18:9090/

10.部署Grafana進(jìn)行展示

Grafana 是一個開源的度量分析和可視化工具,可以通過將采集的數(shù)據(jù)分析,查詢,然后進(jìn)行可視化的展示,并能實(shí)現(xiàn)報警。

下載地址:

https://grafana.com/grafana/download/

(1)??下載安裝Grafana

#使用yum解決依賴關(guān)系  我這邊直接上傳軟件包到opt
yum install -y grafana-7.4.0-1.x86_64.rpm
或
rpm -ivh /opt/grafana-7.3.6-1.x86_64.rpm
 
systemctl start grafana-server
systemctl enable grafana-server
 
netstat -natp | grep :3000
 
瀏覽器訪問:http://192.168.109.19:3000 ,默認(rèn)賬號和密碼為 admin/admin

通過瀏覽器訪問 http:// grafana 服務(wù)器 IP:3000 就到了登錄界面,使用默認(rèn)的 admin 用戶,admin 密碼就可以登陸了。

192.168.204.19:3000/login

(2)??配置數(shù)據(jù)源

下面把 Prometheus 服務(wù)器收集的數(shù)據(jù)做為一個數(shù)據(jù)源添加到 grafana,讓 grafana 可以得到 Prometheus 的數(shù)據(jù)。

點(diǎn)擊增加數(shù)據(jù)源

為此數(shù)據(jù)自定義一個名稱

Prometheus_data

填寫prometheus的IP和port

http://192.168.204.18:9090

Auth模塊是公網(wǎng)傳輸數(shù)據(jù)加密與驗(yàn)證,為了保證安全

15s獲取一次,GET方式

填完之后點(diǎn)擊保存

點(diǎn)擊設(shè)置,選擇Data Source,可以查看到成功添加數(shù)據(jù)源

(3)導(dǎo)入模板

點(diǎn)擊prometheus_data,選擇Dashboards

點(diǎn)擊儀表盤,全部導(dǎo)入

全部導(dǎo)入后,點(diǎn)擊Manage

隨便點(diǎn)擊一個模板

192.168.204.19:3000/

(4)?為數(shù)據(jù)源做數(shù)據(jù)展示

創(chuàng)建Dashboard

數(shù)據(jù)源選擇添加的Prometheus_data

寫上查詢的值,可以多個條件一起,都顯示在同一張圖上

(1分鐘負(fù)載、5分鐘負(fù)載、15分鐘負(fù)載)

自定義名稱,點(diǎn)擊保存

最后在dashboard可以查看到 ,點(diǎn)擊“agent_cpu_load”

注:有多條數(shù)據(jù)的時候,可以在查詢的鍵值后面加個大括號,括號里的條件表示只匹配當(dāng)前的監(jiān)控項(xiàng)。

(5)?導(dǎo)入grafana監(jiān)控面板

瀏覽器訪問:https://grafana.com/grafana/dashboards ,在頁面中搜索 node exporter ,選擇適合的面板,點(diǎn)擊 Copy ID 或者 Download JSON
 
在 grafana 頁面中,+ Create -> Import ,輸入面板 ID 號或者上傳 JSON 文件,點(diǎn)擊 Load,即可導(dǎo)入監(jiān)控面板

(6)?Grafana 圖形顯示 MySQL 監(jiān)控?cái)?shù)據(jù)

在 grafana 上修改配置文件,并下載安裝 mysql 監(jiān)控的 dashboard(包含相關(guān) json 文件,這些 json 文件可以看作是開發(fā)人員開發(fā)的一個監(jiān)控模板)。

vim /etc/grafana/grafana.ini 

[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards
cd /var/lib/grafana/

#克隆
yum install -y git
git clone git@github.com:percona/grafana-dashboards.git

cp -r grafana-dashboards/dashboards/ /var/lib/grafana/

#重啟grafana
systemctl restart grafana-server.service

在 grafana 上修改配置文件,并下載安裝 mysql 監(jiān)控的 dashboard(包含相關(guān) json 文件,這些 json 文件可以看作是開發(fā)人員開發(fā)的一個監(jiān)控模板)。

點(diǎn) import 導(dǎo)入后,報 prometheus 數(shù)據(jù)源找不到,因?yàn)檫@些 json 文件里默認(rèn)要找的就是叫 Prometheus 的數(shù)據(jù)源,但我們前面建立的數(shù)據(jù)源卻是叫 prometheus_data。

那么請自行把原來的 prometheus_data 源改名為 Prometheus 即可(注意:第一個字母 P 是大寫)。然后再回去刷新一下,就有數(shù)據(jù)了。

(7)?Grafana+onealert報警

Prometheus 報警需要使用 alertmanager 這個組件,而且報警規(guī)則需要手動編寫(對運(yùn)維來說不友好)。所以我這里選用 grafana+onealert 報警。注意:實(shí)現(xiàn)報警前把所有機(jī)器時間同步再檢查一遍。

登陸http://www.onealert.com/→注冊帳戶→登入后臺管理
?

(8)?在Grafana中配置Webhook URL

1、在Grafana中創(chuàng)建Notification channel,選擇類型為Webhook;
2、推薦選中Send on all alerts和Include image,Cloud Alert體驗(yàn)更佳;
3、將第一步中生成的Webhook URL填入Webhook settings Url;
URL格式:
http://api.aiops.com/alert/api/event/grafana/v1/897dcd4c804140098a171d680bf6e26a/ (保存當(dāng)前應(yīng)用,即可獲取完整webhook地址信息)
4、Http Method選擇POST;
5、Send Test&Save;

?在grafana增加通知通道

增加通道

192.168.204.19:3000/
Name: onealert

Type: webhook

Url: (onelert那里產(chǎn)生)

(9)?測試CPU負(fù)載告警

現(xiàn)在可以去設(shè)置一個報警來測試了(這里用前面加的 cpu 負(fù)載監(jiān)控來做測試)

保存后就可以測試了,如果 agent1上的 cpu 負(fù)載還沒有到 0.3,你可以試試 0.1,或者運(yùn)行一些程序把 agent1負(fù)載調(diào)大。

最終的郵件報警效果

二、實(shí)驗(yàn)

1.部署Prometheus

(1)環(huán)境準(zhǔn)備

服務(wù)器類型 IP地址 組件
Prometheus服務(wù)器 192.168.204.18 Prometheus、node_exporter
grafana服務(wù)器 192.168.204.19 Grafana
agent服務(wù)器 192.168.204.20 node_exporter

修改主機(jī)名:

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

修改地址映射:

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

關(guān)閉安全機(jī)制

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(2)Prometheus部署

prometheus下載地址:

https://prometheus.io/download/

上傳 prometheus-2.37.0.linux-amd64.tar.gz 到 /opt 目錄中,并解壓

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

修改配置文件

修改靜態(tài)模板配置,固定從某個target拉取數(shù)據(jù)

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

配置系統(tǒng)啟動文件,設(shè)置開機(jī)自啟

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

Unit為服務(wù)單元,After為依賴關(guān)系,config.file為配置文件,storage.tsdb.path為數(shù)據(jù)目錄,

storage.tsdb.retention為保存時間,ExecReload為重載

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

開啟prometheus,并訪問網(wǎng)頁驗(yàn)證

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

通過瀏覽器訪問 http:// 服務(wù)器 IP:9090 就可以訪問到 Prometheus 的主界面

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

默認(rèn)只監(jiān)控了本機(jī)一臺,點(diǎn) Status→點(diǎn) Targets→可以看到只監(jiān)控了本機(jī)

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

通過 http:// 服務(wù)器 IP:9090/metrics 可以查看到監(jiān)控的數(shù)據(jù):

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

2.部署Exporters

(1)監(jiān)控遠(yuǎn)程Linux主機(jī)(192.168.204.20)

在遠(yuǎn)程 linux 主機(jī)(被監(jiān)控端 agent)上安裝 node_exporter 組件。

下載地址:

https://prometheus.io/download/

上傳 node_exporter-1.3.1.linux-amd64.tar.gz 到 /opt 目錄中,并解壓

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

配置啟動文件,設(shè)置開機(jī)自啟

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

啟動node_exporter

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

?通過瀏覽器訪問 http:// 被監(jiān)控端 IP:9100/metrics 就可以查看到 node_exporter 在被監(jiān)控端收集的監(jiān)控信息

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

修改Prometheus服務(wù)器的配置文件

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

回到 Prometheus 服務(wù)器的配置文件里添加被監(jiān)控機(jī)器的配置段

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

在主配置文件后添加這三行,不能加在上面,否則重啟會報錯

取一個job名稱來代表被監(jiān)控的機(jī)器

targets這里改成被監(jiān)控機(jī)器的IP,后面端口接9100

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

改完配置文件后,重啟服務(wù)?

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

訪問prometheus服務(wù)器

回到 web 管理界面→點(diǎn) Status→點(diǎn) Targets→可以看到多了一臺監(jiān)控目標(biāo)

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

注:也可以在本機(jī)安裝 node_exporter,使用上面的方式監(jiān)控本機(jī)。

(2)監(jiān)控遠(yuǎn)程Linux主機(jī)(192.168.204.18)

也可以在遠(yuǎn)程 linux 主機(jī)(監(jiān)控端 prometheus)上安裝 node_exporter 組件,即監(jiān)控本機(jī)。

下載地址:

https://prometheus.io/download/

上傳 node_exporter-1.3.1.linux-amd64.tar.gz 到 /opt 目錄中,并解壓

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

配置啟動文件,設(shè)置開機(jī)自啟

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

啟動node_exporter

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

瀏覽器訪問,可以看到 Node Exporter 采集到的指標(biāo)數(shù)據(jù)

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

?通過瀏覽器訪問 http:// 被監(jiān)控端 IP:9100/metrics 就可以查看到 node_exporter 在被監(jiān)控端收集的監(jiān)控信息

修改Prometheus服務(wù)器的配置文件云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

回到 Prometheus 服務(wù)器的配置文件里添加被監(jiān)控機(jī)器的配置段云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

在主配置文件后添加這三行,不能加在上面,否則重啟會報錯

取一個job名稱來代表被監(jiān)控的機(jī)器

targets這里改成被監(jiān)控機(jī)器的IP,后面端口接9100

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

改完配置文件后,重啟服務(wù)?

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

訪問prometheus服務(wù)器

回到 web 管理界面→點(diǎn) Status→點(diǎn) Targets→可以看到多了一臺監(jiān)控目標(biāo)

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

2.監(jiān)控遠(yuǎn)程MySQL

在被管理機(jī) agent上安裝 mysqld_exporter 組件

下載地址:

https://prometheus.io/download/

?(1)???安裝mariadb數(shù)據(jù)庫,并授權(quán)

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

在當(dāng)前數(shù)據(jù)庫中增加授權(quán)

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(2)?下載mysqld_exporter組件?

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.0/mysqld_exporter-0.12.0.linux-amd64.tar.gz

(3)安裝mysqld_exporter組件

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(4)??添加mysqld_exporter為系統(tǒng)服務(wù)

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(5)啟動服務(wù)并監(jiān)聽端口

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(6)??修改Prometheus服務(wù)器的配置文件云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

回到 Prometheus 服務(wù)器的配置文件里添加被監(jiān)控的 mariadb 的配置段

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

改完配置文件之后,重啟服務(wù)云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(7)??訪問prometheus服務(wù)器

回到 web 管理界面→點(diǎn) Status→點(diǎn) Targets→可以看到監(jiān)控 mariadb?

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

3.部署Grafana進(jìn)行展示

Grafana 是一個開源的度量分析和可視化工具,可以通過將采集的數(shù)據(jù)分析,查詢,然后進(jìn)行可視化的展示,并能實(shí)現(xiàn)報警。

下載地址:

https://grafana.com/grafana/download/

(1)??下載安裝Grafana云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

通過瀏覽器訪問 http:// grafana 服務(wù)器 IP:3000 就到了登錄界面,使用默認(rèn)的 admin 用戶,admin 密碼就可以登陸了。

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(2)??配置數(shù)據(jù)源

下面把 Prometheus 服務(wù)器收集的數(shù)據(jù)做為一個數(shù)據(jù)源添加到 grafana,讓 grafana 可以得到 Prometheus 的數(shù)據(jù)。

點(diǎn)擊增加數(shù)據(jù)源

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus為此數(shù)據(jù)自定義一個名稱云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

填寫prometheus的IP和port云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

http://192.168.204.18:9090

Auth模塊是公網(wǎng)傳輸數(shù)據(jù)加密與驗(yàn)證,為了保證安全云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

15s獲取一次,GET方式

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

填完之后點(diǎn)擊保存

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

點(diǎn)擊設(shè)置,選擇Data Source,可以查看到成功添加數(shù)據(jù)源

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(3)導(dǎo)入模板

點(diǎn)擊prometheus_data,選擇Dashboards

點(diǎn)擊儀表盤,全部導(dǎo)入云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

全部導(dǎo)入后,點(diǎn)擊Manage

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

隨便點(diǎn)擊一個模板云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

192.168.204.19:3000/

(4)?為數(shù)據(jù)源做數(shù)據(jù)展示

創(chuàng)建Dashboard

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

數(shù)據(jù)源選擇添加的Prometheus_data

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

寫上查詢的值,可以多個條件一起,都顯示在同一張圖上

(1分鐘負(fù)載、5分鐘負(fù)載、15分鐘負(fù)載)

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

自定義名稱,點(diǎn)擊保存

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

最后在dashboard可以查看到 ,點(diǎn)擊“agent_cpu_load”

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

注:有多條數(shù)據(jù)的時候,可以在查詢的鍵值后面加個大括號,括號里的條件表示只匹配當(dāng)前的監(jiān)控項(xiàng)。

(5)?導(dǎo)入grafana監(jiān)控面板

瀏覽器訪問:https://grafana.com/grafana/dashboards ,在頁面中搜索 node exporter ,選擇適合的面板,點(diǎn)擊 Copy ID 或者 Download JSON
 
在 grafana 頁面中,+ Create -> Import ,輸入面板 ID 號或者上傳 JSON 文件,點(diǎn)擊 Load,即可導(dǎo)入監(jiān)控面板

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

在頁面中搜索 node exporter

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus選擇適合的面板,點(diǎn)擊 Copy ID 或者 Download JSON

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

在 grafana 頁面中,+ Create -> Import

輸入面板 ID 號,點(diǎn)擊 Load

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

選擇數(shù)據(jù)源并點(diǎn)擊導(dǎo)入,即可導(dǎo)入監(jiān)控面板

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

此時就可以監(jiān)控到這臺機(jī)子的信息了(192.168.204.20)

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

也可以切換查詢(192.168.204.18)

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

點(diǎn)擊編寫

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

可以看到實(shí)際上都是通過PromQL語句來查詢的

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(6)?Grafana 圖形顯示 MySQL 監(jiān)控?cái)?shù)據(jù)

在 grafana 上修改配置文件,并下載安裝 mysql 監(jiān)控的 dashboard(包含相關(guān) json 文件,這些 json 文件可以看作是開發(fā)人員開發(fā)的一個監(jiān)控模板)。

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

在 grafana 上修改配置文件,并下載安裝 mysql 監(jiān)控的 dashboard(包含相關(guān) json 文件,這些 json 文件可以看作是開發(fā)人員開發(fā)的一個監(jiān)控模板)。云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

點(diǎn) import 導(dǎo)入后,報 prometheus 數(shù)據(jù)源找不到,因?yàn)檫@些 json 文件里默認(rèn)要找的就是叫 Prometheus 的數(shù)據(jù)源,但我們前面建立的數(shù)據(jù)源卻是叫 prometheus_data。云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

那么請自行把原來的 prometheus_data 源改名為Metrics 即可(注意:第一個字母 M 是大寫)。然后再回去刷新一下,就有數(shù)據(jù)了。

修改前:

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

修改后:云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

保存提交

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(7)?Grafana+onealert報警

Prometheus 報警需要使用 alertmanager 這個組件,而且報警規(guī)則需要手動編寫(對運(yùn)維來說不友好)。所以我這里選用 grafana+onealert 報警。注意:實(shí)現(xiàn)報警前把所有機(jī)器時間同步再檢查一遍。

登陸https://caweb.aiops.com/→注冊帳戶→登入后臺管理

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

下拉選擇Grafana,點(diǎn)擊進(jìn)行配置

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

自定義一個名稱

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

保存之后獲得key

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(8)?在Grafana中配置Webhook URL

在Grafana中創(chuàng)建Notification channel,選擇類型為Webhook

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

推薦選中Send on all alerts和Include image,Cloud Alert體驗(yàn)更佳

將第一步中生成的Webhook URL填入Webhook settings Url:

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

Http Method選擇POST

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

?Send Test&Save

可以先“Test”測試一下報警媒介是否ok,然后再點(diǎn)擊保存

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

測試成功(自動去重)

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

保存,創(chuàng)建成功

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(9)?測試CPU負(fù)載告警

現(xiàn)在可以去設(shè)置一個報警來測試了(這里用前面加的 cpu 負(fù)載監(jiān)控來做測試)

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

自定義一個名稱,類似于zabbix觸發(fā)器名稱;

IS ABOVE 這里填0.3,按實(shí)際使用也可以填0.1,表示當(dāng)cpu負(fù)載平均值大于0.1就發(fā)出報警

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

點(diǎn)通知,選擇之前定義好的onealert通道,自定義通知內(nèi)容

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

保存后就可以測試了,如果 agent上的 cpu 負(fù)載還沒有到 0.3,你可以試試 0.1,或者運(yùn)行一些程序把 agent負(fù)載調(diào)大(比如壓力測試或import一個新模板)。

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

點(diǎn)擊測試

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

平臺收到報警信息:

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

?最終的微信報警效果:?

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

?最終的郵件報警效果:?

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

三、問題

1.Prometheus和Zabbix區(qū)別

(1)監(jiān)控的維度

①監(jiān)控的廣度

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

②監(jiān)控的深度

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

③?監(jiān)控選型

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(2)區(qū)別

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

和Zabbix類似,Prometheus也是一個近年比較火的開源監(jiān)控框架,和Zabbix不同之處在于Prometheus相對更靈活點(diǎn),模塊間比較解耦,比如告警模塊、代理模塊等等都可以選擇性配置。服務(wù)端和客戶端都是開箱即用,不需要進(jìn)行安裝。zabbix則是一套安裝把所有東西都弄好,很龐大也很繁雜。
zabbix的客戶端agent可以比較方便的通過腳本來讀取機(jī)器內(nèi)數(shù)據(jù)庫、日志等文件來做上報。而Prometheus的上報客戶端則分為不同語言的SDK和不同用途的exporter兩種,比如如果你要監(jiān)控機(jī)器狀態(tài)、mysql性能等,有大量已經(jīng)成熟的exporter來直接開箱使用,通過http通信來對服務(wù)端提供信息上報(server去pull信息);而如果你想要監(jiān)控自己的業(yè)務(wù)狀態(tài),那么針對各種語言都有官方或其他人寫好的sdk供你使用,都比較方便,不需要先把數(shù)據(jù)存入數(shù)據(jù)庫或日志再供zabbix-agent采集。
zabbix的客戶端更多是只做上報的事情,push模式。而Prometheus則是客戶端本地也會存儲監(jiān)控?cái)?shù)據(jù),服務(wù)端定時來拉取想要的數(shù)據(jù)。
界面來說zabbix比較陳舊,而prometheus比較新且非常簡潔,簡潔到只能算一個測試和配置平臺。要想獲得良好的監(jiān)控體驗(yàn),搭配Grafana還是二者的必走之路。

2.如何防止告警信息轟炸

(1)解決方法

1)alertmanagr: prometheus可以生成告警信息,但是不能直接提供告警,需要使用一個外置的組件alertmanager來進(jìn)行告警,emailetctif優(yōu)勢在于,收斂、支持靜默、去重、可以防止告警信息的轟炸

2)把這條告警規(guī)則中的支持靜默開啟,讓它必須,配置文件里直接改alertmanager改一個單詞

3.監(jiān)控服務(wù)有哪4個黃金指標(biāo)

(1)指標(biāo)

4個黃金指標(biāo)可以在服務(wù)級別幫助衡量終端用戶體驗(yàn)、服務(wù)中斷、業(yè)務(wù)影響等層面的問題。主要關(guān)注與以下四種類型的指標(biāo):延遲,通訊量,錯誤以及飽和度:

(2)延遲:服務(wù)請求所需時間

記錄用戶所有請求所需的時間,重點(diǎn)是要區(qū)分成功請求的延遲時間和失敗請求的延遲時間。 例如在數(shù)據(jù)庫或者其他關(guān)鍵禍端服務(wù)異常觸發(fā)HTTP 500的情況下,用戶也可能會很快得到請求失敗的響應(yīng)內(nèi)容,如果不加區(qū)分計(jì)算這些請求的延遲,可能導(dǎo)致計(jì)算結(jié)果與實(shí)際結(jié)果產(chǎn)生巨大的差異。除此以外,在微服務(wù)中通常提倡“快速失敗”,開發(fā)人員需要特別注意這些延遲較大的錯誤,因?yàn)檫@些緩慢的錯誤會明顯影響系統(tǒng)的性能,因此追蹤這些錯誤的延遲也是非常重要的。

(3)通訊量:監(jiān)控當(dāng)前系統(tǒng)的流量,用于衡量服務(wù)的容量需求

流量對于不同類型的系統(tǒng)而言可能代表不同的含義。例如,在HTTP REST API中, 流量通常是每秒HTTP請求數(shù);

(4)錯誤:監(jiān)控當(dāng)前系統(tǒng)所有發(fā)生的錯誤請求,衡量當(dāng)前系統(tǒng)錯誤發(fā)生的速率

對于失敗而言有些是顯式的(比如, HTTP 500錯誤),而有些是隱式(比如,HTTP響應(yīng)200,但實(shí)際業(yè)務(wù)流程依然是失敗的)。
對于一些顯式的錯誤如HTTP 500可以通過在負(fù)載均衡器(如Nginx)上進(jìn)行捕獲,而對于一些系統(tǒng)內(nèi)部的異常,則可能需要直接從服務(wù)中添加鉤子統(tǒng)計(jì)并進(jìn)行獲取。

(5)飽和度:衡量當(dāng)前服務(wù)的飽和度

主要強(qiáng)調(diào)最能影響服務(wù)狀態(tài)的受限制的資源。 例如,如果系統(tǒng)主要受內(nèi)存影響,那就主要關(guān)注系統(tǒng)的內(nèi)存狀態(tài),如果系統(tǒng)主要受限與磁盤I/O,那就主要觀測磁盤I/O的狀態(tài)。因?yàn)橥ǔG闆r下,當(dāng)這些資源達(dá)到飽和后,服務(wù)的性能會明顯下降。同時還可以利用飽和度對系統(tǒng)做出預(yù)測,比如,“磁盤是否可能在4個小時候就滿了”。

4.訪問prometheus服務(wù)器被監(jiān)控端agent服務(wù)器狀態(tài)報錯

(1)? 報錯

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(2)原因分析

配置文件錯誤

(3)解決方法

修改配置文件被監(jiān)控機(jī)器的IP

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

修改前:

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

修改后:

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

重啟

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

成功:

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

5.mysqld_exporter如何指定啟動參數(shù)

?(1 ) 參數(shù)

mysqld_exporter常用啟動參數(shù):

1) exporter版本>0.10.0時:
--collect.auto_increment.columns
--no-collect.auto_increment.columns

2)exporter版本<=0.10.0時:
-collect.auto_increment.columns
-collect.auto_increment.columns=[true|false]

通過以下參數(shù)控制收集數(shù)據(jù):

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

通用啟動參數(shù):

云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng),云原生Kubernetes,云原生,kubernetes,prometheus

(2)SSL配置

如果MySQL服務(wù)器支持SSL,則需要指定一個CA信任庫來驗(yàn)證服務(wù)器的信任鏈,并為SSL連接的客戶端指定SSL密鑰對。
要將mysqld_exporter配置為使用自定義CA證書,請將以下內(nèi)容添加到.my.cnf的配置文件中:

ssl-ca=/path/to/ca/file

要指定客戶端SSL密鑰對,請將以下內(nèi)容添加到cnf中。

ssl-key=/path/to/ssl/client/key
ssl-cert=/path/to/ssl/client/cert

僅在mysql cnf文件中支持自定義SSL配置,如果在環(huán)境變量DATA_SOURCE_NAME中設(shè)置mysql服務(wù)器的數(shù)據(jù)源名稱,則不支持自定義SSL配置。

四、總結(jié)

Prometheus收集k8s/服務(wù)的三種方式

1)Exporters(指標(biāo)暴露器):收集節(jié)點(diǎn)的信息、將數(shù)據(jù)格式化或轉(zhuǎn)化為promtheus可識別的http這種轉(zhuǎn)化方式/鏡像拉取方式
2)Instrumentation (應(yīng)用內(nèi)置的指標(biāo)暴露器): 收集有內(nèi)置指標(biāo)暴露器的信息
3)Pushgateway : 收集短周期的數(shù)據(jù)

報警不成功的可能原因:
?

各服務(wù)器之間時間不同步,這樣時序數(shù)據(jù)會出問題,也會造成報警出問題

必須寫通知內(nèi)容,留空內(nèi)容是不會發(fā)報警的

修改完報警配置后,記得要點(diǎn)右上角的保存

保存配置后,需要由 OK 狀態(tài)變?yōu)?alerting 狀態(tài)才會報警(也就是說,你配置保存后,就已經(jīng)是 alerting 狀態(tài)是不會報警的)

grafana 與 onealert 通信有問題

各組件默認(rèn)端口:

node 默認(rèn)端口:9100
mysql默認(rèn)端口:9104
redis 默認(rèn)端口:9121
process默認(rèn)端口:9256
alertmanager默認(rèn)端口:9093

指標(biāo)類型 (metric type):

Prometheus 使用4種方法來描述監(jiān)視的指標(biāo):
1)Counter
計(jì)數(shù)器,用于保存計(jì)數(shù)型數(shù)據(jù),如網(wǎng)站訪問量等。

2)Gauge
儀表盤,用于存儲有著起伏特征的指標(biāo)數(shù)據(jù),如空間空閑大小等。

3)Histogram
直方圖,在一段時間范圍內(nèi)對數(shù)據(jù)進(jìn)行采樣,并將其計(jì)入可配置的存儲中,后續(xù)可通過制定區(qū)間篩選樣本,也可以統(tǒng)計(jì)樣本總數(shù),最后一般將數(shù)據(jù)展示為直方圖。

4)Summary
摘要,Histogram的擴(kuò)展類型,用于表示一段時間內(nèi)的數(shù)據(jù)采樣結(jié)果(通常是請求持續(xù)時間或響應(yīng)大小等),但它直接存儲了分位數(shù)(通過客戶端計(jì)算,然后展示出來),而不是通過區(qū)間計(jì)算

作業(yè)(job)和實(shí)例(Instance):

1)Instance
實(shí)例可以簡單的理解為就是一個target,網(wǎng)絡(luò)客戶端,實(shí)際上在多核心的服務(wù)器上,一個instance就代表一個cpu核心;

2)job
通常,具有類似功能的Instance的集合稱為一個job。例如一個nginx集群中所有的nginx進(jìn)程。

PromQL:

1)內(nèi)置的數(shù)據(jù)查詢語言,支持用戶進(jìn)行實(shí)時的數(shù)據(jù)查詢及聚合操作

2)PromQL支持處理兩種向量,并內(nèi)置提供了一組用于數(shù)據(jù)處理的函數(shù)
即使向量:最近一次的時間戳上跟蹤的數(shù)據(jù)指標(biāo)
時間范圍向量:指定范圍時間內(nèi)的所有時間戳上的數(shù)指標(biāo)

Alerts:

1)抓取到異常值后,Prometheus 支持通過報警(alert)機(jī)制向用戶發(fā)送反饋,以便用戶能夠及時采取應(yīng)對措施。

2)Prometheus server 僅負(fù)責(zé)生成報警指示,具體的報警行為由另一個獨(dú)立的應(yīng)用程序AlertManager負(fù)責(zé)。
*報警指示由Prometheus server 基于用戶提供的“報警規(guī)則”周期性計(jì)算生成;
*AlertManager接收到Prometheus server發(fā)來的報警指示后,基于用戶定義的報警路由(route)向接收人(receivers)發(fā)送報警信息;

grafana常用模板編號記錄:文章來源地址http://www.zghlxwxcb.cn/news/detail-727838.html

第一部分
監(jiān)控容器
推薦ID
3146
8685
10000
8588
315


第二部分
監(jiān)控物理機(jī)/虛擬機(jī)(linux)
推薦ID
8919
9276
監(jiān)控物理機(jī)/虛擬機(jī)(windows)
推薦ID
10467
10171
2129

第三部分
監(jiān)控協(xié)議http/icmp/tcp/dns/
http監(jiān)控某個網(wǎng)站
icmp監(jiān)控某臺機(jī)器
tcp監(jiān)控某個端口
dns監(jiān)控dns
推薦ID
9965

到了這里,關(guān)于云原生監(jiān)控系統(tǒng)Prometheus:基于Prometheus構(gòu)建智能化監(jiān)控告警系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【云原生監(jiān)控系列第一篇】一文詳解Prometheus普羅米修斯監(jiān)控系統(tǒng)(山前前后各有風(fēng)景,有風(fēng)無風(fēng)都很自由)

    【云原生監(jiān)控系列第一篇】一文詳解Prometheus普羅米修斯監(jiān)控系統(tǒng)(山前前后各有風(fēng)景,有風(fēng)無風(fēng)都很自由)

    zabbix是傳統(tǒng)的監(jiān)控系統(tǒng),出現(xiàn)比云原生早,使用的是SQL關(guān)系型數(shù)據(jù)庫;而Prometheus基于谷歌的borgemon使用go語言開發(fā),使用TSDB數(shù)據(jù)庫,所以支持云原生。zabbix最新發(fā)布的6.0版本,知道自己處于生死存亡時刻,也支持了Prometheus使用的TSDB數(shù)據(jù)庫。 Prometheus 是一個開源的服務(wù)監(jiān)控系

    2024年02月03日
    瀏覽(20)
  • 在k8s中快速搭建基于Prometheus監(jiān)控系統(tǒng)

    公眾號「架構(gòu)成長指南」,專注于生產(chǎn)實(shí)踐、云原生、分布式系統(tǒng)、大數(shù)據(jù)技術(shù)分享 K8s本身不包含內(nèi)置的監(jiān)控工具,所以市場上有不少這樣監(jiān)控工具來填補(bǔ)這一空白,但是沒有一個監(jiān)控工具有prometheus全家桶使用率高,因?yàn)樗?CNCF維護(hù),已經(jīng)成為了監(jiān)控 k8s 集群的事實(shí)上的行

    2024年02月04日
    瀏覽(20)
  • 設(shè)備管理系統(tǒng)與物聯(lián)網(wǎng)的融合:實(shí)現(xiàn)智能化設(shè)備監(jiān)控和維護(hù)

    設(shè)備管理系統(tǒng)與物聯(lián)網(wǎng)的融合:實(shí)現(xiàn)智能化設(shè)備監(jiān)控和維護(hù)

    在數(shù)字化時代,設(shè)備管理系統(tǒng)和物聯(lián)網(wǎng)技術(shù)的融合為工業(yè)企業(yè)帶來了巨大的變革和創(chuàng)新。本文將探討設(shè)備管理系統(tǒng)與物聯(lián)網(wǎng)的融合,重點(diǎn)介紹設(shè)備健康管理平臺在實(shí)現(xiàn)智能化設(shè)備監(jiān)控和維護(hù)方面的關(guān)鍵作用和優(yōu)勢。 一、設(shè)備管理系統(tǒng)與物聯(lián)網(wǎng)的融合 隨著物聯(lián)網(wǎng)技術(shù)的迅速發(fā)

    2024年02月14日
    瀏覽(29)
  • 光伏電站智慧運(yùn)維輔助系統(tǒng)解決方案 助力光伏運(yùn)維監(jiān)控智能化

    光伏電站智慧運(yùn)維輔助系統(tǒng)解決方案 助力光伏運(yùn)維監(jiān)控智能化

    一、方案背景 由于光伏電站多建設(shè)在偏遠(yuǎn)地區(qū),占地面廣、地形分布復(fù)雜、受暴雨風(fēng)雪惡劣天氣影響,且電站運(yùn)行人員少,流動性較大,容易造成管理混亂、運(yùn)維效率低下,加之故障率高、電能損耗大等問題,給電站資產(chǎn)后續(xù)的經(jīng)營管理以及發(fā)展帶來了諸多風(fēng)險和挑戰(zhàn)。 隨

    2024年02月08日
    瀏覽(30)
  • 監(jiān)控系統(tǒng) Prometheus 的說明

    監(jiān)控系統(tǒng) Prometheus 的說明

    ELK?Stack 日志收集和檢索平臺想必大家應(yīng)該比較熟悉,Elasticsearch + Filebeat + Logstash + Kibana。 ?而 Prometheus 就相當(dāng)于一整個 ELK,但是它其實(shí)并不是適合存儲大量日志,也不適合長期存儲(默認(rèn)存儲 15 天)。它的優(yōu)勢是查看最近的趨勢數(shù)據(jù),以及告警機(jī)制。下圖是 Prometheus 架構(gòu)圖

    2024年02月16日
    瀏覽(20)
  • 【監(jiān)控系統(tǒng)】Prometheus監(jiān)控組件Mysql-Exporter配置實(shí)戰(zhàn)

    【監(jiān)控系統(tǒng)】Prometheus監(jiān)控組件Mysql-Exporter配置實(shí)戰(zhàn)

    Mysql-Exporter主要監(jiān)控Mysql數(shù)據(jù)庫的穩(wěn)定性、吞吐量、連接情況、緩沖池使用情況、查詢性能等各項(xiàng)指標(biāo),是我們壓測時常常需要監(jiān)控的一些指標(biāo)。 目前,Exporter 支持高于5.6版本的 MySQL 和高于10.1版本的 MariaDB。在 MySQL/MariaDB 低于5.6版本時,部分監(jiān)控指標(biāo)可能無法被采集。 OK,下

    2024年02月16日
    瀏覽(19)
  • 【監(jiān)控系統(tǒng)】Prometheus監(jiān)控組件Node-Exporter配置實(shí)戰(zhàn)

    【監(jiān)控系統(tǒng)】Prometheus監(jiān)控組件Node-Exporter配置實(shí)戰(zhàn)

    這一節(jié),我們來配置一下Node-Exporter,那么我們先來了解一下什么是Prometheus的Exporter? 任何向Prometheus提供監(jiān)控樣本數(shù)據(jù)的程序都可以被稱為一個Exporter,它是一種用于將不同數(shù)據(jù)源的指標(biāo)提供給Prometheus進(jìn)行收集和監(jiān)控的工具。運(yùn)行在應(yīng)用程序、計(jì)算機(jī)、網(wǎng)絡(luò)設(shè)備或者其他系統(tǒng)

    2024年02月15日
    瀏覽(22)
  • Prometheus實(shí)現(xiàn)系統(tǒng)監(jiān)控報警郵件

    Prometheus實(shí)現(xiàn)系統(tǒng)監(jiān)控報警郵件

    Prometheus將數(shù)據(jù)采集和報警分成了兩個模塊。報警規(guī)則配置在Prometheus Servers上, 然后發(fā)送報警信息到AlertManger,然后我們的AlertManager就來管理這些報警信息,聚合報警信息過后通過email、PagerDuty、HipChat、Slack 等方式發(fā)送消息提示。本文演示通過email發(fā)送告警信息。 中文技術(shù)文檔

    2024年02月14日
    瀏覽(26)
  • SpringBoot+Prometheus+Grafana搭建應(yīng)用監(jiān)控系統(tǒng)

    SpringBoot+Prometheus+Grafana搭建應(yīng)用監(jiān)控系統(tǒng)

    SpringBoot的應(yīng)用監(jiān)控方案比較多,SpringBoot+Prometheus+Grafana是比較常用的一種解決方案,主要的監(jiān)控?cái)?shù)據(jù)的處理邏輯如下: SpringBoot 的 actuator 提供了應(yīng)用監(jiān)控端點(diǎn),可以對外暴露監(jiān)控?cái)?shù)據(jù)信息。 Prometheus 是監(jiān)控系統(tǒng),可以從 Springboot 采集監(jiān)控?cái)?shù)據(jù),以時序數(shù)據(jù)的形式存儲,并對外

    2024年01月22日
    瀏覽(29)
  • Prometheus監(jiān)控添加監(jiān)控mongodb+docker+MySQL8.0+服務(wù)器系統(tǒng)進(jìn)程監(jiān)控+域名過期時間監(jiān)控

    Prometheus監(jiān)控添加監(jiān)控mongodb+docker+MySQL8.0+服務(wù)器系統(tǒng)進(jìn)程監(jiān)控+域名過期時間監(jiān)控

    環(huán)境: 192.168.1.144? Ubuntu系統(tǒng)已經(jīng)部署好Prometheus監(jiān)控部署教程請看本人前面的教程? 192.168.1.140? centos7系統(tǒng)已安裝docker+docker-compose 1、在被監(jiān)控端以docker-compose方式安裝mongodb mkdir /data/mangodb/ #創(chuàng)建mangodb的目錄 cd /data/mangodb/ #進(jìn)入目錄下 2,寫docker-compose.yaml文件 vim docker-compose.y

    2024年02月02日
    瀏覽(54)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包