本文環境 Redhat Linux 6.7, Prometheus 2.2.1,node_exporter 1.5.2
介紹
Prometheus 是2012年由 SoundCloud 開源的系統監控和報警工具集,在 《Google SRE 運維解密》一書中也提到與Google內部的Borgmon思想一致。使用 Go 語言開發,適用於各個平台。
安裝
[root@bj1eccap01 ~]# tar -xvzf prometheus-2.2.1.linux-amd64.tar.gz
[root@bj1eccap01 ~]# cd prometheus-2.2.1.linux-amd64
[root@bj1eccap01 prometheus-2.2.1.linux-amd64]# ./prometheus --help
usage: prometheus [<flags>]
配置
安裝包下有一個默認的配置文件,是 YAML 格式,默認配置文件包括三個分區:global、rule_files、scrape_configs。
global控制 Prometheus 服務器的全局配置。scrape_interval 決定數據抓取的間隔。evaluation_interval 決定數據計算的間隔,Prometheus會根據rule_file來產生新的時間序列值。
rule_files決定規則文件的保存路徑。
scrape_config決定Prometheus監控的資源。Prometheus通過HTTP暴露自己的數據,因此也可以監控自己的健康狀況。
啟動
啟動非常簡單
[root@bj1eccap01 prometheus-2.2.1.linux-amd64]# ./prometheus --config.file=prometheus.yml
這之后就可以通過瀏覽查看服務的運行狀況了,打開瀏覽器輸入 http://localhost:9090/graph

Prometheus 提供了兩種方式查看指標 graph 模式可以直接看到指標曲線,metrics 則看到原始的監控數據。通過切換到 console 界面可以看到。


node_exporter 安裝
node_exporter 用來收集服務器的監控信息,目前穩定版本為1.15.2。node_exporter 默認使用 9100 端口監聽,Prometheus 會從 node_exporter 中獲取信息。
[root@bj1eccap01 ~]# tar -xzvf node_exporter-0.15.2.linux-amd64.tar.gz
[root@bj1eccap01 ~]# cd node_exporter-0.15.2.linux-amd64
[root@bj1eccap01 node_exporter-0.15.2.linux-amd64]# ./node_exporter

運算與統計
Prometheus 提供了一套查詢語言,支持運算以及一些常用的統計運算。
運算符號
Prometheus 支持如下運算符。
| 運算符 | 說明 |
|---|---|
| + | 加法 |
| - | 減法 |
| * | 相乘 |
| / | 相除 |
| % | 取摸運算 |
| == | 相等 |
| != | 不相等 |
| > | 大於 |
| < | 小於 |
| >= | 大於或等於 |
| <= | 小於或等於 |
| and | 邏輯和 |
| or | 邏輯或 |
| unless | 除非,取補集 |
統計函數
| 方法名 | 介紹 |
|---|---|
| sum | 求和 |
| min | 求最小值 |
| max | 求最大值 |
| avg | 取平均值 |
| stddev | 計算標准差 |
| stdvar | |
| count | 計算總數 |
| count_values | 計算相同值的數量 |
| bottomk | 最小的k個元素 |
| topk | 最大的k個元素 |
| quantile |
本文為作者原創,如果您覺得本文對您有幫助,請隨意打賞,您的支持將鼓勵我繼續創作。

參考資料:
1、Prometheus
2、Prometheus First Step
3、Prometheus 入門嘗試
