注:以下所有環境均為mac筆記本
一、安裝prometheus
brew install prometheus
安裝完后,默認的安裝路徑為:
/usr/local/Cellar/prometheus/2.16.0/
同時還會生成一個默認配置文件:/usr/local/etc/prometheus.yml
global: scrape_interval: 15s scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"]
進入安裝路徑后,輸入以下命令:
./prometheus --config.file=/usr/local/etc/prometheus.yml
順利的話,應該能正常啟動,然后瀏覽器輸入 http://localhost:9090
菜單切換到status,還能看到一些關鍵參數,比如數據默認保存天數:(默認15天)
二、安裝grafana
要展示各種漂亮的圖表,就得借助grafana,仍用brew安裝
brew install grafana
默認安裝路徑:
/usr/local/Cellar/grafana/6.7.0
啟動:
grafana-server --config=/usr/local/etc/grafana/grafana.ini --homepath /usr/local/share/grafana --packaging=brew cfg:default.paths.logs=/usr/local/var/log/grafana cfg:default.paths.data=/usr/local/var/lib/grafana cfg:default.paths.plugins=/usr/local/var/lib/grafana/plugins
啟動完成后,瀏覽http://localhost:3000/進入首頁(注:如需修改默認端口,可修改/usr/local/etc/grafana/grafana.ini 這個文件),默認用戶名/密碼,都是admin,使用前必須更改密碼
grafana只是一個圖表展示工具,必須添加數據源,才能讀取到數據,參考下圖:
選擇prometheus數據源,指定URL地址,然后保存即可
三、安裝pushgateway
從官網https://prometheus.io/download/ 下載pushgateway-1.2.0.darwin-amd64.tar.gz
解壓到本地運行
./pushgateway
啟動正常的話,瀏覽http://localhost:9091 可以看到
為什么要安裝這個玩意兒,看下面的示意圖(從網上淘的):
客戶端(不管是寫代碼,還是直接終端敲命令行)把數據push到網關(pushgateway),然后prometheus從網關pull數據。
安裝好之后,還要修改/usr/local/etc/prometheus.yml 不然prometheus感知不到網關的存在
global: scrape_interval: 15s scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] # 加入下面這幾行 - job_name: "push-metrics" static_configs: - targets: ["localhost:9091"] honor_labels: true
加入最后這幾行即可,改完后最好把prometheus重啟一下,以便讓配置文件生效。
接下來測試數據寫入:先准備1個文件data.txt
blog_visit_total{blogid="12345",domain="yjmyzz.cnblogs.com",clientip="10.0.1.1"} 20 blog_visit_total{blogid="34567",domain="yjmyzz.cnblogs.com",clientip="10.0.1.2"} 30 blog_visit_total{blogid="56789",domain="yjmyzz.cnblogs.com",clientip="10.0.1.3"} 40
解釋一下,blog_visit_total相當於指標名稱,{ }里面的東西,相當於tag,可以根據tag在查詢時過濾,最后的20、30、40相當於具體的指標值。
命令行下,輸入:
curl -XPOST --data-binary @/Users/jimmy/Downloads/data.txt http://localhost:9091/metrics/job/cnblogs
就把這3行數據push到網關了,注意下格式:http://localhost:9091/metrics/job/cnblogs 紅色的部分,這是job名稱,大家可以根據需要自己修改。
此時再到http://localhost:9091查看一下,應該能看到剛push的數據:
感興趣的同學,還可以看下http://localhost:9090 ,這時候prometheus里也能感知剛添加的數據
prometheus底層存儲是一個時序數據庫,上面的curl命令,可以多跑幾次,相當於持續在向時序數據庫時添加記錄,后面會用到。
四、配置grafana
到目前為止,grafana好象一直在打醬油,沒派上用場,該它發揮點作用了。
4.1 新建dashboard
參考上圖,新建1個dashboard,然后隨便起個名字(上圖中我已經創建了一個名為“菩提樹下的楊過”的dashboard),命名的地方,在settings里(如下)
4.2 添加圖表
接下來,添加一個查詢(Add Query)
參考下圖,將剛才的指標blog_visit_total添加進來(還可以用sum/max/min/avg這類聚合函數處理)
圖表名稱可以參考下圖設置:
最后保存,這樣一個基本的prometheus監控系統(單機環境)就搭建完成了。
參考文章:
https://prometheus.io/docs/practices/pushing/
https://prometheus.io/download/
https://prometheus.io/docs/introduction/overview/
https://www.liuyixiang.com/post/96100.html
https://blog.csdn.net/Holly_walker/article/details/103820509