監控必讀!什麼是prometheus?

Prometheus簡介

      Prometheus 是由 SoundCloud 開發的開源監控報警系統和時序列數據庫(TSDB),自2012年起,許多公司及組織已經採用 Prometheus,而且該項目有着很是活躍的開發者和用戶社區,如今已經成爲一個獨立的開源項目,而且保持獨立於任何公司,Prometheus 在2016加入 CNCF ( Cloud Native Computing Foundation ), 做爲在 kubernetes 以後的第二個由基金會主持的項目。github地址(https://github.com/prometheusnode

  • 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使用啓動參數和配置文件進行配置,啓動參數配置系統參數,配置文件配置做業和實例內容mysql

啓動參數

  • --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' ]
相關文章
相關標籤/搜索