1. 程式人生 > 其它 >Prometheus監控系統

Prometheus監控系統

普羅米修斯概述

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主介面可以通過關鍵字查詢監控項