1. 程式人生 > 實用技巧 >Prometheus環境搭建

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 every 
15 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驗證來驗證是否正在匯出指標