Prometheus環境搭建
一、prometheus基本認識
1、什麼是prometheus
Prometheus是最初在SoundCloud上構建的開源系統監視和警報工具包。
2、特徵
普羅米修斯的主要特點是:
- 一個多維資料模型,其中包含通過度量標準名稱和鍵/值對標識的時間序列資料
- PromQL,一種靈活的查詢語言,可利用此維度
- 不依賴分散式儲存;單伺服器節點是自治的
- 時間序列收集通過HTTP上的拉模型進行
- 通過中間閘道器支援推送時間序列
- 通過服務發現或靜態配置發現目標
- 多種圖形和儀表板支援模式
3、元件
Prometheus生態系統包含多個元件,其中許多是可選的:
- Prometheus主伺服器,它會刮取並存儲時間序列資料
- 客戶端庫,用於檢測應用程式程式碼
- 一個支援短期工作的推送閘道器
- 諸如HAProxy,StatsD,Graphite等服務的專用出口商
- 一個alertmanager處理警報
- 各種支援工具
下圖說明了Prometheus的體系結構及其某些生態系統元件:
Prometheus直接或通過中間推送閘道器從已檢測的作業中刪除指標,以處理短暫的作業。它在本地儲存所有報廢的樣本,並對這些資料執行規則,以彙總和記錄現有資料中的新時間序列,或生成警報。Grafana或其他API使用者可以用來視覺化收集的資料。
以上摘自官網:https://prometheus.io/docs/introduction/overview/
二、安裝prometheus
1、安裝包下載:https://github.com/prometheus/prometheus/releases/download/v2.6.1/prometheus-2.6.1.linux-amd64.tar.gz
2、解壓安裝
# tar zxf prometheus-2.6.1.linux-amd64.tar.gz -C /usr/local/ # cd /usr/local/prometheus-2.6.1.linux-amd64/
# cat prometheus.yml #修改prometheus.yml配置檔案
# my global config global: scrape_interval: 15s # Set the scrape interval to every15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: # - targets: ["localhost:9093"] # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "rules/*.yml" # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['172.16.68.169:9090'] #修改prometheus監聽的IP和埠,預設9090
- job_name: 'centos7-machine1'
scrape_interval: 10s
static_configs:
- targets: ['172.16.68.169:9100']
labels:
instance: node1
# ./prometheus --version #檢視prometheus版本號 prometheus, version 2.6.1 (branch: HEAD, revision: b639fe140c1f71b2cbad3fc322b17efe60839e7e) build user: root@4c0e286fe2b3 build date: 20190115-19:12:04 go version: go1.11.4
修改完成,可直接啟動
./prometheus --config.file=prometheus.yml
3、設定開機啟動
# useradd prometheus -s /sbin/nologin prometheus #建立prometheus使用者 # chown -R prometheus:prometheus /usr/local/prometheus-2.6.1.linux-amd64
# vim /usr/lib/systemd/system/prometheus.service
[Unit] Description=Prometheus Documentation=https://prometheus.io/ After=network.target [Service] # Type設定為notify時,服務會不斷重啟 Type=simple User=prometheus ExecStart=/usr/local/prometheus-2.6.1.linux-amd64/prometheus --config.file=/usr/local/prometheus-2.6.1.linux-amd64/prometheus.yml Restart=on-failure [Install] WantedBy=multi-user.target
# chown prometheus:prometheus /usr/lib/systemd/system/prometheus.service
# systemctl start prometheus # systemctl enable prometheus
三、頁面驗證
1、web頁面:http://IP:9090/
現在還都是down的狀態,需要在監控伺服器上裝exporter
四、安裝exporter
1、安裝node_exporter
下載包:https://github.com/prometheus/node_exporter/releases/download/v0.18.0/node_exporter-0.18.0.linux-amd64.tar.gz
# tar zxf node_exporter-0.18.0.linux-amd64.tar.gz -C /usr/local/ # /usr/local/node_exporter/node_exporter &
prometeus頁面centos7-benji監控狀態已經UP,通過http://IP:9100抓取指標。
可以通過對/metrics
端點進行URL驗證來驗證是否正在匯出指標: