prometheus-入門
Prometheus 是由 SoundCloud 開源監控告警解決方案2015 年在 github 上開源以來,已經吸引了 很多大公司的使用;2016 年 Prometheus 成為繼 k8s 后,第二名 CNCF(Cloud Native Computing Foundation) 成員。
實戰
安裝prometheus軟件
cd /usr/local/src/
wget https://github.com/prometheus/prometheus/releases/download/v1.7.1/prometheus-1.7.1.linux-amd64.tar.gz
tar -zxf prometheus-1.7.1.linux-amd64.tar.gz
mv prometheus-1.7.1.linux-amd64 /data/app/
ln -s /data/app/prometheus-1.7.1.linux-amd64/ /data/app/prometheus
修改配置文件
global:
scrape_interval: 15s
evaluation_interval: 15s
external_labels:
monitor: 'codelab-monitor'
rule_files:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'linux'
static_configs:
- targets: ['192.168.56.12:9100']
labels:
alias: linux-node2
啟動prometheus並訪問
./prometheus -config.file=prometheus.yml
安裝exporter 端
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz
wget https://github.com/prometheus/node_exporter/releases/download/v0.14.0/node_exporter-0.14.0.linux-amd64.tar.gz
tar -zxf mysqld_exporter-0.10.0.linux-amd64.tar.gz
tar -zxf node_exporter-0.14.0.linux-amd64.tar.gz
mv node_exporter-0.14.0.linux-amd64 /data/app/
mv mysqld_exporter-0.10.0.linux-amd64 /data/app/
ln -s /data/app/node_exporter-0.14.0.linux-amd64/ /data/app/node_exporter
ln -s /data/app/mysqld_exporter-0.10.0.linux-amd64/ /data/app/mysqld_exporter
啟動node_exporter
screen -R node_exporter
cd /data/app/node_exporter
./node_exporter
登錄圖像頁面檢查服務是否配置成功
http://localhost:9090/metrics
: 監控指標http://localhost:9090/graph
: 圖像界面
metrics返回的結果包含多個標簽的值。如果想只看延遲是0.99的值可以輸入如下參數:
prometheus_target_interval_length_seconds{quantile="0.99"}
你也可以對返回結果做個count值:
count(prometheus_target_interval_length_seconds)
輸入以下表達式來繪制在Prometheus中發生的所有存儲塊操作的每秒速率:
rate(prometheus_local_storage_chunk_ops_total[1m])
你也可以輸出其他參數查看監控后服務器的信息,比如:使用up參數判斷linux-node2是否存活。
up{job="linux-node2"}
其他高級的例子
avg(rate(rpc_durations_seconds_count[5m])) by (job, service)
級聯同步數據
promtheus 配置文件中增加如下內容:
scrape_configs:
- job_name: 'federate'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]': ##定義要同步的監控項
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
- '{job="node_discovery"}'
static_configs:
- targets:
- 'linux-node1:9090' ## 目標庫可以寫多行。
參考文檔
prometheus-官網
Prometheus 實戰
PROMETHEUS 監控系統介紹與實踐總結
prometheus-監控mysql
prometheus中文文檔
官方容器站
Prometheus 監控方案