本文環境 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 入門嘗試