我想将 Prometheus 中的实例名称设置为主机名

当在 Prometheus.yaml 中将目标指定为 IP 地址时,也会在指标的实例标签中记录 IP 地址。

解决方法有三种选项。

    • 方法①:DNSサーバで名前解決できるようにして、prometheus.yamlにホスト名を書く

 

    • 方法②:Prometheusサーバの/etc/hostsにホスト名とIPアドレスの対応を書き、prometheus.yamlにホスト名を書く

 

    方法③:relabel_configsを使う

在本文中,我将介绍一种容易尝试的方法三。

只需得出结论。

global:
  scrape_interval:     15s
  evaluation_interval: 15s
  external_labels:
      monitor: 'codelab-monitor'

scrape_configs:
  - job_name: 'linux'
    static_configs:
      - targets:
        - 192.168.1.101:9100:server1   #<IP>:<PORT>:<HOSTNAME>
        - 192.168.1.102:9100:server2
    relabel_configs:
      - source_labels: [__address__]  # targetsエントリを分解してinstanceラベルの値を生成する
        regex: '([^:]+):(\d+):(.*)'
        target_label: instance
        replacement: '${3}:${2}'      # instance=<HOSTNAME>:<PORT>
      - source_labels: [__address__]  # targetsエントリを分解して、実際のアクセス先を生成する
        regex: '([^:]+):(\d+):(.*)'
        target_label: __address__
        replacement: '${1}:${2}'      # __address__=<IP>:<PORT> 
bannerAds