Prometheus簡介
Prometheus 是由 SoundCloud 開發的開源監控報警系統和時序列數據庫(TSDB),自2012年起,許多公司及組織已經采用 Prometheus,並且該項目有着非常活躍的開發者和用戶社區,現在已經成為一個獨立的開源項目,並且保持獨立於任何公司,Prometheus 在2016加入 CNCF ( Cloud Native Computing Foundation ), 作為在 kubernetes 之后的第二個由基金會主持的項目。github地址(https://github.com/prometheus)
- prometheus server:主要用於抓取數據和存儲時序數據,另外還提供查詢和 Alert Rule 配置管理
- client libraries:用於對接 Prometheus Server, 可以查詢和上報數據
- push gateway:用於批量,短期的監控數據的匯總節點,主要用於業務數據匯報等
- exporters:各種匯報exporter,例如node_exporter,mysql_exporter,mongodb_exporter
- alertmanager:告警通知管理
Prometheus官方架構圖
Prometheus端口
- 9090:prometheus server
- 9091:pushgateway
- 9092:未分配
- 9093:alertmanager
- 9094:alertmanager cluster
Prometheus配置
prometheus使用啟動參數和配置文件進行配置,啟動參數配置系統參數,配置文件配置作業和實例內容
啟動參數
- --config.file:配置文件絕對路徑,默認值"prometheus.yml"
- --web.listen-address:UI/API監聽地址,默認值"0.0.0.0:9090"
- --web.max-connections:最大連接數,默認值512
- --web.external-url:外部訪問prometheus地址
- --web.enable-admin-api:啟用管理端api
- --web.enable-lifecycle :可以通過HTTP重啟或者關閉服務
- --web.console.templates:絕對路徑,默認值"consoles"
- --web.console.libraries:絕對路徑,默認值"console_libraries"
- --storage.tsdb.path:絕對路徑,默認值"data/"
- --storage.tsdb.retention:數據樣本存儲時間,默認值15d
配置文件
prometheus.yml
# Prometheus 啟動的時候,可以加載運行參數 -config.file 指定配置文件,默認為 prometheus.yml
# 全局配置
global:
scrape_interval:
15s
# 拉取 targets 的默認時間間隔
scrape_timeout:
15s
# 拉取一個 target 的超時時間
evaluation_interval:
15s
# 執行 rules 的時間間隔
# 額外的屬性,會添加到拉取的數據並存到數據庫中
external_labels:
monitor:
'codelab-monitor'
# 告警配置
alerting:
# 動態修改 alert 屬性的規則配置
alert_relabel_configs:
[
- <relabel_config> ...
]
# 動態發現 Alertmanager 的配置
alertmanagers:
[
- <alertmanager_config> ...
]
# 規則配置
rule_files:
-
"rules/node.rules"
-
"rules2/*.rules"
# 數據拉取配置
scrape_configs:
-
job_name
:
'prometheus'
# 任務名稱
scrape_interval:
5s
# 拉取時間間隔
# scrape_timeout: 拉取超時時間
metrics_path:/prometheus/metrics
# 拉取節點的 metric 路徑
# scheme: 拉取數據訪問協議
# 靜態服務發現
static_configs:
-
targets
:
[
'localhost:9090'
]
|