windows環(huán)境下使用Prometheus監(jiān)控腳本/應(yīng)用

簡介

????Prometheus/Process-Exporter/Grafana三件套,用于監(jiān)控腳本/應(yīng)用是否一直在運行,長時間運行時的性能使用情況并用可視化的圖標(biāo)顯示出來。

一、Prometheus

Prometheus(普羅米修斯)是一套比較完備的監(jiān)控報警系統(tǒng),其主要架構(gòu)設(shè)計如圖:


設(shè)計架構(gòu)圖

1.?主要是由以下組件構(gòu)成:

? ? 1.1. Prometheus server:服務(wù)中心,主要負(fù)責(zé)拉取和存儲時序書庫(Prometheus有自帶的時序數(shù)據(jù)庫)

? ? 1.2. Client Libraries:客戶端庫,主要用于和具體的服務(wù)進(jìn)行集成,采集監(jiān)控數(shù)據(jù),例如Micrometer

? ? 1.3. Push gateway:另外一種數(shù)據(jù)push的采集方式(Prometheus默認(rèn)使用pull的方式主動采集應(yīng)用數(shù)據(jù)),用于適配一些沒有長期穩(wěn)定的進(jìn)程? ?的服務(wù)

? ? 1.4. Exporter:用于針對某些特定服務(wù)的數(shù)據(jù)采集工具,例如:mysql/kafka/HA等..

? ? 1.5. Alert Manager:Prometheus的監(jiān)控告警工具,主要通過webhook和其他告警系統(tǒng)進(jìn)行集成告警,能夠進(jìn)行告警規(guī)則的配置

? ? 1.6. 其他工具

同時,Prometheus也有一套自己的查詢語法,用于已經(jīng)采集的數(shù)據(jù)的結(jié)果查詢,具體可以參考:

https://prometheus.io/docs/prometheus/latest/querying/basics/

或者中文翻譯:?http://www.itdecent.cn/p/3bdc4cfa08da

2. 安裝部署

我使用的是Windows,首先在Prometheus官方下載安裝包

官網(wǎng)高速入口:“點我!點我!點我!

下載完畢后安裝軟件其目錄結(jié)構(gòu)如下:


解壓后的目錄內(nèi)容

1. data為Prometheus 是自帶時序數(shù)據(jù)庫持久化的目錄

2. pometheus.yml 為整個Prometheus的配置文件

3. pometheus.exe 為服務(wù)啟動應(yīng)用,雙擊直接啟動

這個時候Prometheus會使用最基本的默認(rèn)配置,運行在本地9090端口,采集自身的運行的數(shù)據(jù)并持久化到時序數(shù)據(jù)

prometheus.yml的配置規(guī)則參考文檔:

https://prometheus.io/docs/prometheus/latest/configuration/configuration/

4.當(dāng)Prometheus啟動完畢后,本地瀏覽器訪問:http://localhost:9090? 能夠訪問,說明安裝并啟動成功。

二、Process-Exporter

????Process-Exporter就是用來監(jiān)控進(jìn)程的,其中一項能力,便是監(jiān)控進(jìn)程的狀態(tài)。如果機器上運行了一些小腳本,想要對其進(jìn)行監(jiān)控但又不想用上一些在代碼里做信息采集的SDK那么重,比如:單純想要監(jiān)控該腳本是否一直在運行,運行時CPU、內(nèi)存使用情況,那么Process-Exporter會是一個現(xiàn)成的好選擇。

1.安裝部署

? ?1.1 下載最新發(fā)布/舊的版本的適合你機器的就可以,我用的是當(dāng)時的最新版process-exporter-0.7.10.linux-arm64.tar.gz,可以用wget + 下載鏈接 命令直接下載到服務(wù)器上也可以下載下來拖進(jìn)去解壓

下載高速入口:“點我!點我!點我!

????1.2 進(jìn)入解壓出的目錄,我們開始設(shè)置我們需要監(jiān)控的進(jìn)程。Process-Exporter的做法是配置需要監(jiān)控的進(jìn)程的名稱,他會去搜索該進(jìn)程從而得到其需要的監(jiān)控信息,其實也就是我們常做的“ps -efl | grep xxx”命令來查看對應(yīng)的進(jìn)程。解壓出來配置文件是沒有的,需要創(chuàng)建,名字隨便。


被監(jiān)控的程序

以監(jiān)控 “java” 為例:

process_names:

? ? ? ? - name: "{{.Matches}}"

? ? ? ? ? cmdline:

? ? ? ? ? - 'java'

這里,在配置文件(process-conf.yaml)中,我添加了1個監(jiān)控的進(jìn)程“java”,一個process_names就定義了要監(jiān)控的一組進(jìn)程,{{.Matches}}模板表示映射包含應(yīng)用命令行所產(chǎn)生的所有匹配項,還有其他模板如下:

????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ù)此配置文件來運行process-exporter:

./process-exporter -config.path process-conf.yaml &

1.5 查看是否運行成功,有沒有數(shù)據(jù)

curl http://localhost:9256/metrics

1.6 添加到開機自啟動(xxx使用絕對路徑)

xxx/xxx/process-exporter -config.path xxx/xxx/process-conf.yaml &

三、Grafana

????Grafana是一個開源的度量分析與可視化套件。經(jīng)常被用作基礎(chǔ)設(shè)施的時間序列數(shù)據(jù)和應(yīng)用程序分析的可視化,它在其他領(lǐng)域也被廣泛的使用包括工業(yè)傳感器、家庭自動化、天氣和過程控制等。

Grafana支持許多不同的數(shù)據(jù)源。每個數(shù)據(jù)源都有一個特定的查詢編輯器,該編輯器定制的特性和功能是公開的特定數(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)控數(shù)據(jù)

安裝部署

????Grafana的部署和Prometheus的部署差不多,我使用的是Windows,首先從官方下載安裝包:

官網(wǎng)高速入口:“點我!點我!點我!

1. 下載安裝程序如下:

?2. 直接雙擊 grafana-cli.exe 啟動

?3. 訪問地址?http://127.0.0.1:3000(默認(rèn)端口為3000,默認(rèn)用戶名和密碼均為admin)

四、Prometheus/Process-Exporter/Grafana/NSSM四件套組合使用

1.?Prometheus配置prometheus.yml


我用到的配置文件修改內(nèi)容

2.訪問:http://localhost:9090?查看連接狀態(tài),以下為正常狀態(tài)


連接狀態(tài)

3.?grafana配置Prometheus數(shù)據(jù)庫,添加數(shù)據(jù)源。


添加數(shù)據(jù)源
填寫數(shù)據(jù)源?Prometheus地址

4.搭建展示Prometheus數(shù)據(jù)的儀表盤


添加儀表盤

????官網(wǎng)有很多模板,根據(jù)你自己的需要和喜歡去選擇即可

我用的是4202,用于監(jiān)控應(yīng)用的CPU、內(nèi)存使用情況


5.下載 NSSM

????從NSSM 官方網(wǎng)站下載最新版本的 NSSM 工具(選擇與系統(tǒng)位數(shù)匹配的版本),解壓到任意目錄(例如C:\Tools\nssm)。


2. 配置 Prometheus 服務(wù)

????以管理員身份打開命令提示符(CMD),執(zhí)行以下命令:

????進(jìn)入D盤:D:

????進(jìn)入指定目錄:cd?\Tools\nssm

3.注冊服務(wù):nssm install?

????此時會彈出 NSSM 配置窗口,需填寫以下關(guān)鍵信息:

? ??Application:Prometheus 可執(zhí)行文件路徑(例如C:\Prometheus\prometheus.exe)。

? ??App parameters:啟動參數(shù)(例如--config.file=C:\Prometheus\prometheus.yml,需根據(jù)實際配置文件路徑填寫)。

? ??Startup directory:工作目錄(設(shè)置為 Prometheus 所在目錄,如C:\Prometheus)。

? ??Output:日志路徑(例如C:\Prometheus\logs\stdout.log和C:\Prometheus\logs\stderr.log,需提前創(chuàng)建目錄)。

4.啟動服務(wù)

? ??配置完成后,在命令提示符中執(zhí)行:net start prometheus

????服務(wù)啟動后,Prometheus 將在后臺運行,任務(wù)管理器中僅顯示nssm.exe進(jìn)程,不會出現(xiàn)控制臺窗口。

5.其他注意事項

? ??自動啟動:在 NSSM 配置窗口的Startup選項卡中,將啟動類型設(shè)置為Automatic,確保系統(tǒng)重啟后服務(wù)自動運行。

? ??路徑空格處理:若路徑包含空格(如Program Files),建議使用短路徑(例如Progra~1)或用引號包裹完整路徑。

? ??參數(shù)配置:根據(jù)需求調(diào)整 Prometheus 的啟動參數(shù),例如數(shù)據(jù)存儲路徑(--storage.tsdb.path)、保留時間(--storage.tsdb.retention.time)等。

某園類似的帖子:https://www.cnblogs.com/cghuang/p/15384847.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容