本章內容如下:
Prometheus 介紹
Prometheus 部署和配置
Node Exporter 采集數據
Pushgateway 采集數據
PromQL 查詢語言
Grafana 圖形化展示
Prometheus 標簽管理
Prometheus 告警機制
Prometheus 服務發現
各種 Exporter 高級功能
Prometheus 實現容器監控
Prometheus 聯邦 Federation
Prometheus 遠程存儲 VictoriaMetrics
Kubernetes 集成 Prometheus
1.Prometheus 介紹
官方文檔:
https://prometheus.io/docs/
https://prometheus.io/docs/introduction/overview/
Prometheus 的主要模塊包括:
●prometheus 時序數據存儲、監控指標管理
●可視化
Prometheus web UI : 集群狀態管理、promQL
Grafana:非常全面的可視化套件
●數據采集
Exporter: 為當前的客戶端暴露出符合 Prometheus 規格的數據指標,Exporter 以守護進程的模式運行井開始采集數據,Exporter 本身也是一個http_server 可以對http請求作出響應返回數據 (K/V形式的metrics)
Pushgateway : 拉模式下數據的采集工具
●監控目標 服務發現 :文件方式、dns方式、console方式、k8s方式
●告警: alertmanager
Prometheus 由幾個主要的軟件組件組成,其職責概述如下:
工作流程
●Prometheus server 定期從配置好的 jobs 或者 exporters 中拉取Pull metrics,或者接收來自
? Pushgateway 發過來的 metrics,或者從其他的 Prometheus server 中拉 metrics。
●Prometheus server 在本地存儲收集到的 metrics,并運行已定義好的 alert rules,記錄新的時間? ? 序列或者向 Alertmanager 推送警報,實現一定程度上的完全冗余功能。
●Alertmanager 根據配置文件,對接收到的警報進行去重分組,根據路由配置,向對應主機發出? ? ? 告警。
●集成Grafana或其他API作為圖形界面,用于可視化收集的數據。
Prometheus 只負責時序型指標數據的采集及存儲
2.Prometheus 部署和配置
①ubuntu包安裝
apt install prometheus? ? ? ? ? ? 其他安裝略
#訪問如下鏈接可以看到如下顯示
http://<prometheus服務器IP>:9090
#瀏覽器訪問prometheus的指標:
http://<prometheus服務器IP>:9090/metrics
Dashboard 菜單說明
我們選擇一個監控項"scrape_duration_seconds",然后點擊"Execute",查看效果
查看所有的監控項: 10.0.0.203:9090/api/v1/label/__name__/values
API訪問
https://prometheus.io/docs/prometheus/latest/management_api/
https://prometheus.io/docs/prometheus/latest/querying/api/
注意:{ip:port} 是Prometheus所在的IP和端口
●健康檢查 GET {ip:port}/-/healthy? 該端點始終返回200,應用于檢查Prometheus的運行狀況。
●準備檢查 GET {ip:port}/-/ready? ? 當Prometheus準備服務流量(即響應查詢)時,此端點返回200。
●加載配置 PUT {ip:port}/-/reload? ?POST {ip:port}/-/reload
●關閉服務? PUT {ip:port}/-/quit? ? ? POST {ip:port}/-/quit
[root@ubuntu2204 ~]#cat /lib/systemd/system/prometheus.service
......
......
[Service]
ExecStart=/usr/local/prometheus/bin/prometheus --
config.file=/usr/local/prometheus/conf/prometheus.yml --web.enable-lifecycle
......
[root@ubuntu2204 ~]#curl http://prometheus.wang.org:9090/-/healthy
[root@ubuntu2204 ~]#curl http://prometheus.wang.org:9090/-/ready

優化配置
Prometheus 命令支持選項如下:
https://prometheus.io/docs/prometheus/latest/command-line/prometheus/
②Node Exporter 安裝??
其他安裝方式略
安裝 Node Exporter 用于收集各 node 主機節點上的監控指標數據,監聽端口為9100
?
?
github 鏈接? ?https://github.com/prometheus/node_exporter
官方下載??https://prometheus.io/download/
在需要監控的所有節點主機上進行安裝
[root@node1 ~]#wget -P /usr/local/
https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-
1.2.2.linux-amd64.tar.gz
[root@node1 ~]#cd /usr/local
[root@node1 local]#tar xvf node_exporter-1.2.2.linux-amd64.tar.gz
[root@node1 local]#ln -s node_exporter-1.2.2.linux-amd64 node_exporter
[root@node1 local]#cd node_exporter
[root@node1 node_exporter]#mkdir bin
[root@node1 node_exporter]#mv node_exporter bin/
[root@node1 ~]#useradd -r -s /sbin/nologin prometheus
[root@node1 ~]#chown -R prometheus:prometheus /usr/local/node_exporter/
Prometheus 采集 Node Exporter 數據
修改 Prometheus 配置文件

關鍵點兒提煉:
- job_name: 'node_exporter' ? #添加以下行,指定監控的node exporter節點metrics_path: /metrics ? ? ?#指定路徑,此為默認值,可省略scheme: http ? ? ? ? ? ? ? ?#指定協議,此為默認值,可省略static_configs: ?
- targets: ['10.0.0.104:9100','10.0.0.105:9100','10.0.0.106:9100']
個人實際實踐,只需要在原有的node上添加即可
Prometheus 驗證 Node 節點狀態數據 node_cpu_seconds_total