簡介
????Prometheus/Process-Exporter/Grafana三件套嫁盲,用于監(jiān)控腳本/應(yīng)用是否一直在運(yùn)行篓叶,長時(shí)間運(yùn)行時(shí)的性能使用情況并用可視化的圖標(biāo)顯示出來烈掠。
一、Prometheus
Prometheus(普羅米修斯)是一套比較完備的監(jiān)控報(bào)警系統(tǒng)缸托,其主要架構(gòu)設(shè)計(jì)如圖:
1.?主要是由以下組件構(gòu)成:
? ? 1.1. Prometheus server:服務(wù)中心左敌,主要負(fù)責(zé)拉取和存儲(chǔ)時(shí)序書庫(Prometheus有自帶的時(shí)序數(shù)據(jù)庫)
? ? 1.2. Client Libraries:客戶端庫,主要用于和具體的服務(wù)進(jìn)行集成俐镐,采集監(jiān)控?cái)?shù)據(jù)矫限,例如Micrometer
? ? 1.3. Push gateway:另外一種數(shù)據(jù)push的采集方式(Prometheus默認(rèn)使用pull的方式主動(dòng)采集應(yīng)用數(shù)據(jù)),用于適配一些沒有長期穩(wěn)定的進(jìn)程? ?的服務(wù)
? ? 1.4. Exporter:用于針對(duì)某些特定服務(wù)的數(shù)據(jù)采集工具佩抹,例如:mysql/kafka/HA等..
? ? 1.5. Alert Manager:Prometheus的監(jiān)控告警工具叼风,主要通過webhook和其他告警系統(tǒng)進(jìn)行集成告警,能夠進(jìn)行告警規(guī)則的配置
? ? 1.6. 其他工具
同時(shí)棍苹,Prometheus也有一套自己的查詢語法无宿,用于已經(jīng)采集的數(shù)據(jù)的結(jié)果查詢,具體可以參考:
https://prometheus.io/docs/prometheus/latest/querying/basics/
或者中文翻譯:?http://www.reibang.com/p/3bdc4cfa08da
2. 安裝部署
我使用的是Windows枢里,首先在Prometheus官方下載安裝包
官網(wǎng)高速入口:“點(diǎn)我孽鸡!點(diǎn)我!點(diǎn)我栏豺!”
下載完畢后安裝軟件其目錄結(jié)構(gòu)如下:
1. data為Prometheus 是自帶時(shí)序數(shù)據(jù)庫持久化的目錄
2. pometheus.yml 為整個(gè)Prometheus的配置文件
3. pometheus.exe 為服務(wù)啟動(dòng)應(yīng)用彬碱,雙擊直接啟動(dòng)
這個(gè)時(shí)候Prometheus會(huì)使用最基本的默認(rèn)配置,運(yùn)行在本地9090端口奥洼,采集自身的運(yùn)行的數(shù)據(jù)并持久化到時(shí)序數(shù)據(jù)
prometheus.yml的配置規(guī)則參考文檔:
https://prometheus.io/docs/prometheus/latest/configuration/configuration/
4.當(dāng)Prometheus啟動(dòng)完畢后巷疼,本地瀏覽器訪問:http://localhost:9090? 能夠訪問,說明安裝并啟動(dòng)成功灵奖。
二嚼沿、Process-Exporter
????Process-Exporter就是用來監(jiān)控進(jìn)程的,其中一項(xiàng)能力桑寨,便是監(jiān)控進(jìn)程的狀態(tài)伏尼。如果機(jī)器上運(yùn)行了一些小腳本,想要對(duì)其進(jìn)行監(jiān)控但又不想用上一些在代碼里做信息采集的SDK那么重尉尾,比如:單純想要監(jiān)控該腳本是否一直在運(yùn)行爆阶,運(yùn)行時(shí)CPU、內(nèi)存使用情況沙咏,那么Process-Exporter會(huì)是一個(gè)現(xiàn)成的好選擇辨图。
1.安裝部署
? ?1.1 下載最新發(fā)布/舊的版本的適合你機(jī)器的就可以,我用的是當(dāng)時(shí)的最新版process-exporter-0.7.10.linux-arm64.tar.gz肢藐,可以用wget + 下載鏈接 命令直接下載到服務(wù)器上也可以下載下來拖進(jìn)去解壓
下載高速入口:“點(diǎn)我故河!點(diǎn)我!點(diǎn)我吆豹!”
????1.2 進(jìn)入解壓出的目錄鱼的,我們開始設(shè)置我們需要監(jiān)控的進(jìn)程理盆。Process-Exporter的做法是配置需要監(jiān)控的進(jìn)程的名稱,他會(huì)去搜索該進(jìn)程從而得到其需要的監(jiān)控信息凑阶,其實(shí)也就是我們常做的“ps -efl | grep xxx”命令來查看對(duì)應(yīng)的進(jìn)程猿规。解壓出來配置文件是沒有的,需要?jiǎng)?chuàng)建宙橱,名字隨便姨俩。
以監(jiān)控 “java” 為例:
process_names:
? ? ? ? - name: "{{.Matches}}"
? ? ? ? ? cmdline:
? ? ? ? ? - 'java'
這里,在配置文件(process-conf.yaml)中师郑,我添加了1個(gè)監(jiān)控的進(jìn)程“java”环葵,一個(gè)process_names就定義了要監(jiān)控的一組進(jìn)程,{{.Matches}}模板表示映射包含應(yīng)用命令行所產(chǎn)生的所有匹配項(xiàng)宝冕,還有其他模板如下:
????1.3模板變量:
? ? {{.Comm}} contains the basename of the original executable, i.e. 2nd field in /proc/<pid>/stat
????{{.ExeBase}} contains the basename of the executable
????{{.ExeFull}} contains the fully qualified path of the executable
????{{.Username}} contains the username of the effective user
????{{.Matches}} map contains all the matches resulting from applying cmdline regexps
1.4 配置好后张遭,我們依據(jù)此配置文件來運(yùn)行process-exporter:
./process-exporter -config.path process-conf.yaml &
1.5 查看是否運(yùn)行成功,有沒有數(shù)據(jù)
curl http://localhost:9256/metrics
1.6 添加到開機(jī)自啟動(dòng)(xxx使用絕對(duì)路徑)
xxx/xxx/process-exporter -config.path xxx/xxx/process-conf.yaml &
三猬仁、Grafana
????Grafana是一個(gè)開源的度量分析與可視化套件帝璧。經(jīng)常被用作基礎(chǔ)設(shè)施的時(shí)間序列數(shù)據(jù)和應(yīng)用程序分析的可視化,它在其他領(lǐng)域也被廣泛的使用包括工業(yè)傳感器湿刽、家庭自動(dòng)化、天氣和過程控制等褐耳。
Grafana支持許多不同的數(shù)據(jù)源诈闺。每個(gè)數(shù)據(jù)源都有一個(gè)特定的查詢編輯器,該編輯器定制的特性和功能是公開的特定數(shù)據(jù)來源。
其工作模式主要分為三步:
設(shè)置數(shù)據(jù)源:可視化的基礎(chǔ)數(shù)據(jù)來源铃芦,例如從數(shù)據(jù)庫/Prometheus/ElasticSearch
配置數(shù)據(jù)抽取方式:例如通過數(shù)據(jù)庫的SQL/Prometheus的ProQuery等進(jìn)行數(shù)據(jù)查詢
數(shù)據(jù)面板配置:Grafana支持多樣的數(shù)據(jù)呈現(xiàn)方式雅镊,例如折線圖/直方圖/熱力圖等等,通過簡單的配置刃滓,即可通過多樣化的數(shù)據(jù)呈現(xiàn)方式去展示監(jiān)控?cái)?shù)據(jù)
安裝部署
????Grafana的部署和Prometheus的部署差不多仁烹,我使用的是Windows,首先從官方下載安裝包:
官網(wǎng)高速入口:“點(diǎn)我咧虎!點(diǎn)我卓缰!點(diǎn)我!”
1. 下載安裝程序如下:
?2. 直接雙擊 nssm.exe 啟動(dòng)
?3. 訪問地址?http://127.0.0.1:3000(默認(rèn)端口為3000砰诵,默認(rèn)用戶名和密碼均為admin)
四征唬、Prometheus/Process-Exporter/Grafana三件套組合使用
1.?Prometheus配置prometheus.yml
2.訪問:http://localhost:9090?查看連接狀態(tài),以下為正常狀態(tài)
3.?grafana配置Prometheus數(shù)據(jù)庫茁彭,添加數(shù)據(jù)源总寒。
4.搭建展示Prometheus數(shù)據(jù)的儀表盤
????官網(wǎng)有很多模板,根據(jù)你自己的需要和喜歡去選擇即可
某園類似的帖子:https://www.cnblogs.com/cghuang/p/15384847.html