五 Prometheus 基於檔案的服務發現

2021-10-20 18:01:23 字數 2493 閱讀 9831

。。。。。。 略過prometheus的安裝

1 )  基於檔案的服務發現是僅僅略優於靜態配置的服務發現方式, 它不依賴於任何平台或者第三方服務, 因為也是最為簡單和通用的方式.

1.1 檔案使用json和yaml 格式,它含有定義的target列表,以及可選的標籤資訊.

1.2 下面第乙個配置,能夠將prometheus 預設的靜態配置轉換為基於檔案的服務發現時所需的配置.

2 ) prometheus server 定期從檔案中載入target資訊:

3 ) prometheus 配置介紹:

#prometheus資料來源的配置主要分為靜態配置和動態發現, 常用的為以下幾類:

static_configs: #靜態服務發現

file_sd_configs: #檔案服務發現

dns_sd_configs: dns #服務發現

kubernetes_sd_configs: #kubernetes 服務發現

consul_sd_configs: consul #服務發現

...#在監控kubernetes的應用場景中,頻繁更新的pod,svc,等等資源配置應該是最能體現prometheus監控目標自動發現服務的好處

## 主配置檔案:

cd /data/soft/prometheus/

mkdir -p targets

scrape_configs:

- job_name: 'prometheus'

file_sd_configs:

- files:

- targets/prometheus-*.yaml

refresh_interval: 2m

# all node

- job_name: 'nodes'

file_sd_configs:

- files:

- targets/nodes-*.yaml # 引入配置檔案

- job_name: 'redis_exporter'

file_sd_configs:

- files:

- targets/redis-*.yaml

- job_name: 'mysql_exporter'

file_sd_configs:

- files:

- targets/mysql-*.yaml

- job_name: 'bj-nginx1'

file_sd_configs:

- files:

- targets/nginx-*.yaml

##  prometheus 監控:

cat targets/prometheus-servers.yaml

- targets:

- localhost:9090

labels:

job: prometheus

operator: 'ucloud'

area: '北京二d'

env: 'pord'

## node 監控

cat targets/nodes-linux.yaml

- targets:

- 10.10.0.111:9100

- 192.168.1.133:9100

labels:

job: nodes

operator: 'ucloud'

area: '北京二d'

env: 'pord'

## redis 服務:

cat targets/redis-exporter.yaml

- targets:

- 192.168.111.111:9121

labels:

operator: 'ucloud'

area: "北京二d"

env: 'prod'

## mysql 服務:

cat targets/mysql-exporter.yaml

- targets:

- 192.168.111.111:9104

labels:

operator: 'ucloud'

area: '北京二d'

env: 'pord'

# 啟動file 發現方式的prometheus:

./prometheus -config.file=./prometheus.yml

## 檢視targets 列表是否有其他主機存在:

http://ip:9090/targets # 檢視是否找到各類主機

## 測試注釋其中一台node:

Prometheus主配置檔案

全域性配置段 global scrape interval 15s 採集間隔時間 evaluation interval 15s 計算報警和預聚合間隔 scrape timeout 10s 採集超時時間 query log file opt logs prometheus query log 查詢日...

prometheus 動態載入配置檔案 熱更新

相關搭建文章 現通過docker啟動prometheus 的時候,需要動態載入新的target,啟動的時候需要新增乙個配置項 web.enable lifecycle 完整的啟動命令 docker run d p 9090 9090 v opt prometheus prometheus.yml e...

檔案操作 基於python

coding utf 8 from time import sleep import sys reload sys sys.setdefaultencoding utf8 f open r e test window.txt r 以讀的方式開啟 fp f.read 把讀取出來的內容放到快取 prin...