下載Prometheus
tar xvfz prometheus-*.tar.gz
cd prometheus-*
在啟動Prometheus之前,讓我們對其進行配置。
配置Prometheus
Prometheus配置為YAML。Prometheus下載隨附一個名為的文件中的示例配置,prometheus.yml這是一個入門的好地方。
我們刪除了示例文件中的大多數注釋,以使其更加簡潔(注釋以開頭的行#)。
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
有示例配置文件中配置的三個模塊:global,rule_files,和scrape_configs。
該global塊控制Prometheus服務器的全局配置。
scrape_interval:控制Prometheus多久刷新一次目標。您可以為單個目標覆蓋此目標。在這種情況下,全局設置是每15秒刷新一次。
evaluation_interval:控制Prometheus多久評估一次規則。Prometheus使用規則來創建新的時間序列並生成警報。
該rule_files塊指定了我們希望Prometheus服務器加載的任何規則的位置。
最后一塊,scrape_configs控制Prometheus監視哪些資源。由於Prometheus還將有關自身的數據公開為HTTP端點,因此它可以抓取並監視自身的運行狀況。在默認配置中,有一個名為的作業,prometheus它會刮擦Prometheus服務器公開的時間序列數據。該作業包含一個靜態配置的目標localhost端口9090。Prometheus希望指標可用於路徑上的目標/metrics。因此,此默認作業是通過以下網址進行抓取:http://localhost:9090/metrics。
返回的時間序列數據將詳細說明Prometheus服務器的狀態和性能。
scrape_configs 主要用於配置拉取數據節點,每一個拉取配置主要包含以下參數:
job_name:任務名稱
honor_labels: 用於解決拉取數據標簽有沖突,當設置為 true, 以拉取數據為准,否則以服務配置為准
params:數據拉取訪問時帶的請求參數
scrape_interval: 拉取時間間隔
scrape_timeout: 拉取超時時間
metrics_path: 拉取節點的 metric 路徑
scheme: 拉取數據訪問協議
sample_limit: 存儲的數據標簽個數限制,如果超過限制,該數據將被忽略,不入存儲;默認值為0,表示沒有限制
relabel_configs: 拉取數據重置標簽配置
metric_relabel_configs:metric 重置標簽配置
服務發現
在 Prometheus 的配置中,一個最重要的概念就是數據源 target,而數據源的配置主要分為靜態配置和動態發現, 大致為以下幾類:
static_configs: 靜態服務發現
dns_sd_configs: DNS 服務發現
file_sd_configs: 文件服務發現
consul_sd_configs: Consul 服務發現
serverset_sd_configs: Serverset 服務發現
nerve_sd_configs: Nerve 服務發現
marathon_sd_configs: Marathon 服務發現
kubernetes_sd_configs: Kubernetes 服務發現
gce_sd_configs: GCE 服務發現
ec2_sd_configs: EC2 服務發現
openstack_sd_configs: OpenStack 服務發現
azure_sd_configs: Azure 服務發現
triton_sd_configs: Triton 服務發現
啟動Prometheus
./prometheus --config.file=prometheus.yml
-- storage.tsdb.path指定數據文件存儲的位置
--web.enable-lifecycle支持熱更新,就是你修改了這個Prometheus.yaml文件之后
promethus會根據這些url進行拉取
curl -X POST
http://localhost:9090/-/reload