Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Prometheusでinstance名をホスト名にしたい

Prometheus.yamlでtargetにIPアドレスを指定すると、メトリクスのinstanceラベルにもIPアドレスで記録されてしまいます。

解決方法は3つあります。

  • 方法①:DNSサーバで名前解決できるようにして、prometheus.yamlにホスト名を書く
  • 方法②:Prometheusサーバの/etc/hostsにホスト名とIPアドレスの対応を書き、prometheus.yamlにホスト名を書く
  • 方法③:relabel_configsを使う

この記事では、簡単に試せる方法③を紹介します。

結論だけ。

prometheus.yaml
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> 
fkshom
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away