Prometheus監控系統
阿新 • • 發佈:2021-09-04
普羅米修斯概述
Prometheus(由go語言(golang)開發)是一套開源的監控&報警&時間序列資料庫
的組合。適合監控docker容器
。因為kubernetes(俗稱k8s)
的流行帶動了prometheus的發展。
https://prometheus.io/docs/introduction/overview/
時間序列資料
什麼是序列資料
時間序列資料
(TimeSeries Data) : 按照時間順序記錄系統、裝置狀態變化的資料被稱為時序資料。
應用的場景很多, 如:
- 無人駕駛車輛執行中要記錄的經度,緯度,速度,方向,旁邊物體的距離等等。每時每刻都要將資料記錄下來做分析。
- 某一個地區的各車輛的行駛軌跡資料
- 傳統證券行業實時交易資料
- 實時運維監控資料等
時間序列資料特點
- 效能好
關係型資料庫對於大規模資料的處理效能糟糕。NOSQL可以比較好的處理大規模資料,讓依然比不上時間序列資料庫。
- 儲存成本低
高效的壓縮演算法,節省儲存空間,有效降低IO
Prometheus有著非常高效的時間序列資料儲存方法,每個取樣資料僅僅佔用3.5byte左右空間,上百萬條時間序列,30秒間隔,保留60天,大概花了200多G(來自官方資料)
Prometheus的主要特徵
- 多維度資料模型
- 靈活的查詢語言
- 不依賴分散式儲存,單個伺服器節點是自主的
- 以HTTP方式,通過pull模型拉去時間序列資料
- 也可以通過中間閘道器支援push模型
- 通過服務發現或者靜態配置,來發現目標服務物件
- 支援多種多樣的圖表和介面展示
原理架構圖
環境準備
三臺機器,被監控伺服器、Prometheus伺服器、grafana伺服器
1.能上外網
2.主機名
各自配置好主機名
# hostnamectl set-hostname --static server.cluster.com
三臺都互相繫結IP與主機名
# vim /etc/hosts
10.1.1.13 server.cluster.com
10.1.1.14 agent1.cluster.com
10.1.1.15 grafana.cluster.com
3.時間同步
4.關閉防火牆,selinux
# systemctl stop firewalld
# systemctl disable firewalld
# iptables -F
安裝prometheus
第一步:從 https://prometheus.io/download/ 下載相應版本,上傳到伺服器上
第二步:官網提供的是二進位制版,解壓就能用,不需要編譯
[root@server ~]# tar xf prometheus-2.5.0.linux- amd64.tar.gz -C /usr/local/ [root@server ~]# mv /usr/local/prometheus-2.5.0.linux- amd64/ /usr/local/prometheus
第三步:啟動普羅米修斯
[root@server ~]# /usr/local/prometheus/prometheus -- config.file="/usr/local/prometheus/prometheus.yml" &
注:
& 連線符代表後臺執行,不佔用終端視窗
第四步:測試端口占用情況(判斷是否真正的啟動了)
確認埠(9090)
[root@server ~]# lsof -i:9090
[root@server ~]# ss -naltp |grep 9090
prometheus介面
通過瀏覽器訪問http://伺服器IP:9090
就可以訪問到prometheus的主介面
預設只監控了本機一臺,點Status --》點Targets --》可以看到只監控了本機
主機資料展示
通過http://伺服器IP:9090/metrics
可以檢視到監控的資料
在web主介面可以通過關鍵字查詢監控項