2-服務發現

立勋發表於2024-05-10

2.服務發現

基於檔案的服務發現

1.建立json或yaml檔案
mkdir -p /usr/local/prometheus/files_sd/targets

以下為yaml格式

vim nodes.yaml

  • targets:
    • 192.168.13.140:9100
    • 192.168.13.120:9100
      labels:
      app: node-exporter
      job: node

以下為json格式

vim nodes.json
[{
"targets": [
"192.168.13.140:9100",
"192.168.13.141:9100",
],
"labels": {
"datacenter": "beijing"
}
}]

2.修改prometheus配置檔案
vim prometheus.yml
scrape_configs:

  • job_name: 'prometheus'
    file_sd_configs:

    • files: # 自定義的和Prometheus程式同級目錄的targets目錄
      • targets/prometheus-server.yaml # 指定服務發現的檔案
        refresh_interval: 5m
  • job_name: 'node'
    file_sd_configs:

    • files:
      • targets/nodes.yaml # 可以使用json或yaml格式
        refresh_interval: 5m

基於consul的服務發現

基於DNS的服務發現

基於DNS的服務發現

  • job_name: webapp
    dns_sd_configs:
    • name: [ '_prometheus._tcp.example.com’ ]

預設情況下, Prometheus的DNS服務發現假定你會查詢SRV或服務記錄。
服務記錄是一種在DNS配置中定義服務的方法,服務通常由執行服務的一個或多個目標主機和埠組合組成。

DNS SRV條目的格式如下所示:
_service._proto.name. TTL class SRV priority weight port target

_service 服務名稱,字首 _ 是為了防止與DNS 標籤(域名)衝突
proto 服務使用的通訊協議 通常是 tcp udp
name 此記錄有效域名
TTL 標準DNS class 欄位,通常為IN
priority 記錄優先順序,數值越小,優先順序越高。 [0-65535]
weight 記錄權重,數值越大,權重越高。[0-65535]
port 服務使用埠
target 使用服務的主機地址名稱

示例SRV記錄
_prometheus._tcp.example.com. 300 IN SRV 10 1 9100 webapp1.
_prometheus._tcp.example.com. 300 IN SRV 10 1 9100 webapp2.

DNS A記錄服務發現作業

  • job_name: webapp
    dns_sd_configs:
    • name: ['example.com']
      type: A
      port: 9100

相關文章