Prometheus監控系列之——安裝部署

Prometheus的特點

  • 多維度數據模型。
  • 靈活的查詢語言。
  • 不依賴分佈式存儲,單個服務器節點是自主的。
  • 通過基於HTTP的pull方式採集時序數據。
  • 可以通過中間網關進行時序列數據推送。
  • 通過服務發現或者靜態配置來發現目標服務對象。
  • 支持多種多樣的圖表和界面展示,比如Grafana等。

Prometheus相關組件

Prometheus生態系統由多個組件組成,它們中的一些是可選的。多數Prometheus組件是Go語言寫的,這使得這些組件很容易編譯和部署。

  • Prometheus Server

主要負責數據採集和存儲,提供PromQL查詢語言的支持。

  • 客戶端SDK

官方提供的客戶端類庫有go、java、scala、python、ruby,其他還有很多第三方開發的類庫,支持nodejs、php、erlang等。

  • Push Gateway

支持臨時性Job主動推送指標的中間網關。

  • PromDash

使用Rails開發可視化的Dashboard,用於可視化指標數據。

  • Exporter

Exporter是Prometheus的一類數據採集組件的總稱。它負責從目標處蒐集數據,並將其轉化為Prometheus支持的格式。與傳統的數據採集組件不同的是,它並不向中央服務器發送數據,而是等待中央服務器主動前來抓取。

Prometheus提供多種類型的Exporter用於採集各種不同服務的運行狀態。目前支持的有數據庫、硬件、消息中間件、存儲系統、HTTP服務器、JMX等。

  • alertmanager

警告管理器,用來進行報警。

  • prometheus_cli

命令行工具。

  • 其他輔助性工具

多種導出工具,可以支持Prometheus存儲數據轉化為HAProxy、StatsD、Graphite等工具所需要的數據存儲格式。

架構圖

Prometheus監控系列之——安裝部署

工作流程

  • Prometheus 服務器定期從配置好的 jobs 或者 exporters 中獲取度量數據;或者接收來自推送網關發送過來的 度量數據。
  • Prometheus 服務器在本地存儲收集到的度量數據,並對這些數據進行聚合;
  • 運行已定義好的 alert.rules,記錄新的時間序列或者向告警管理器推送警報。
  • 告警管理器根據配置文件,對接收到的警報進行處理,並通過email等途徑發出告警。
  • Grafana等圖形工具獲取到監控數據,並以圖形化的方式進行展示。

安裝及配置

linux:centos7.5

Prometheus:2.13.1

alertmanager:0.19.0

node_exporter: 0.18.1

wget https://github.com/prometheus/prometheus/releases/download/v2.13.1/prometheus-2.13.1.linux-amd64.tar.gz
wget https://github.com/prometheus/alertmanager/releases/download/v0.19.0/alertmanager-0.19.0.linux-amd64.tar.gz
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz

groupadd prometheus
useradd -g prometheus prometheus -d /data/prometheus
tar -xvf prometheus-2.13.1.linux-amd64.tar.gz

mv prometheus-2.13.1.linux-amd64 /data/prometheus
mkdir /data/prometheus/{data,config,logs} -p
mv prometheus promtool /usr/local/bin/
mv prometheus.yml config/
chown -R prometheus.prometheus *
  • 創建prometheus.service 的 systemd unit 文件
vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/bin/prometheus --config.file=/data/prometheus/config/prometheus.yml --storage.tsdb.path=/data/prometheus/data --web.enable-lifecycle --storage.tsdb.retention=1y
Restart=on-failure
[Install]
WantedBy=multi-user.target

說明:

--web.enable-lifecycle #這個是方便更改配置文件,不用重啟Prometheus服務,使用curl -XPOST http://172.20.20.224:9090/-/reload 重載配置

  • 啟動服務
systemctl daemon-reload
systemctl enable prometheus.service
systemctl start prometheus.service
  • prometheus 簡單web UI :http://172.20.20.224:9090/graph
Prometheus監控系列之——安裝部署

  • 效果圖
Prometheus監控系列之——安裝部署

如果對您有幫助,記得不要忘了給個關注哦!!! ,也可查看賬號統一系列。


分享到:


相關文章: