プロメテウスタグ管理(6)

前の5つの章では、プロメテウスに関連する知識ポイントについて説明しました。この章では、主にプロメテウスの別の知識ポイントを補足します。

プロメテウスのラベル管理

プロメテウス監視システムでは、ラベルラベルは非常に重要なパラメータです。ラベルを合理的に使用するには、特に複雑な環境で、サービス全体を管理および制御するために標準ラベルを使用する必要があります。

1.いくつかの一般的なラベル操作のケース

1、重命名标签名
2、删除标签
3、过滤目标

上記の操作には特別な注意が払われています。ラベルで操作できるステージは2つだけです。

最初の段階は、サービス検出からターゲットを再マークすることです。
サービス検出のメタデータラベル情報は、メトリックのラベルを参照します。これは、relabel_configsモジュールで実行されます。

2番目の段階は、スクレイプ後、ストレージシステムに保存する前です。
これにより、これらのメトリクスを保存し、それらのメトリクスを削除し、これらのメトリクスがどのように表示されるかを確認できます。これは、metric_relabel_configsモジュールで実行されます。

実際、スクレイプの前にrelabel_configsを使用し、スケープの後にmetric_relabel_configsを使用します。

2、アクション:アクションにラベルを付け直します

replace:默认,通过regex匹配source_label的值,使用replacement来引用表达式匹配的分组
keep:删除regex与连接不匹配的目标 source_labels
drop:删除regex与连接匹配的目标 source_labels
labeldrop:删除regex匹配的标签
labelkeep:删除regex不匹配的标签
hashmod:设置target_label为modulus连接的哈希值source_labels
labelmap:匹配regex所有标签名称。然后复制匹配标签的值进行分组,replacement分组引用(${1},${2},…)替代

3.アクションの形式

relable_configs:
  # 源标签
  [ source_labels: '[' <labelname> [, ...] ']' ]
  
  # 多个源标签时连接的分隔符
  [ separator: <string> | default = ; ]
  
  # 重新标记的标签
  [ target_label: <labelname> ]
  
  # 整则表达式匹配源标签的值
  [ regex: <regex> | default = (.*) ]
  
  # 用的少,占时略
  [ modulus: <uint64> ]
  
  # 替换正则表达式匹配的分组,分组引用 $1,$2,$3,....
  [ replacement: <string> | default = $1 ]
  
  # 基于正则表达式匹配执行的操作
  [ action: <relabel_action> | default = replace ]

構成ケース

1.タグを追加します

1)タグのキーと値のペアを追加します

cat /home/monitor/prometheus/conf.d/es_cluster.json 
[
	{
    
    
		"labels": {
    
        #labels下的键值对都是标签,可以根据实际需要添加即可
			"desc": "es-21",
			"group": "es_cluster",
			"host_ip": "192.168.16.21",
			"hostname": "wg-16-21",
            "nodes": "es651"   #新增的标签键值对
		},
		"targets": [
			"192.168.16.21:4221"
		]
	}
]

2)ホットスタートサービスビュー

curl -XPOST http://192.168.16.115:9090/-/reload   #重载服务

インターフェースビュー
ここに画像の説明を挿入

2、relabel_configs:action是交換

1)prometheus.ymlのタスクを再定義します

cat  /home/monitor/prometheus/prometheus.yml
...
...
...
  - job_name: 'es_cluster'  
    relabel_configs:     #添加relabel_configs配置,添加在job_name是es_cluster的下面
    - source_labels:  ["job"]   #匹配原labels名称,此处匹配是job
      regex: "(.*)"  #正则匹配所有
      action: replace  #动作是替换,除了替换别的动作
      replacement: $1  #替换第一个值
      target_label: "es651"  #新的label的key值

    scrape_interval: 1m
    static_configs:
    file_sd_configs:
      - files:
        - /home/monitor/prometheus/conf.d/es_cluster.json
    honor_labels: true
...
...
...

2)ホットスタートサービスビュー

cd /home/monitor/prometheus && ./promtool check config prometheus.yml  #校验配置文件
curl -XPOST http://192.168.16.115:9090/-/reload   #重载服务

インターフェースビュー
ここに画像の説明を挿入

3. relabel_configs:アクションはドロップアクションです

1)prometheus.ymlのタスクを削除します

cat  /home/monitor/prometheus/prometheus.yml
...
...
...
  - job_name: 'es_cluster'  
    relabel_configs:     #添加relabel_configs配置,添加在job_name是es_cluster的下面
    - source_labels:  ["job"]   #匹配原labels名称,此处匹配是job
      regex: "(.*)"  #正则匹配所有
      action: replace  #动作是替换,除了替换别的动作
      replacement: $1  #替换第一个值
      target_label: "es651"  #重新定义的job的label值
      
    - source_labels: ["job"]  #匹配原labels名称,此处匹配是job
      action: drop   #将原标签为job实例均删除,即不采集

    scrape_interval: 1m
    static_configs:
    file_sd_configs:
      - files:
        - /home/monitor/prometheus/conf.d/es_cluster.json
    honor_labels: true
...
...
...

2)ホットスタートサービスビュー

ロード後、次の図に示すように、データなし-データなし
ここに画像の説明を挿入

4、relabel_configs:action

1)prometheus.ymlでタスクを予約します

cat  /home/monitor/prometheus/prometheus.yml
...
...
...
  - job_name: 'es_cluster'  
    relabel_configs:     #添加relabel_configs配置,添加在job_name是es_cluster的下面
    - source_labels:  ["job"]   #匹配原labels名称,此处匹配是job
      regex: "(.*)"  #正则匹配所有
      action: replace  #动作是替换,除了替换别的动作
      replacement: $1  #替换第一个值
      target_label: "es651"  #重新定义的job的label值
      
    - source_labels: ["job"]  #匹配原labels名称,此处匹配是job
      action: keep   #将原标签为job实例保留

    scrape_interval: 1m
    static_configs:
    file_sd_configs:
      - files:
        - /home/monitor/prometheus/conf.d/es_cluster.json
    honor_labels: true
...
...
...

2)ホットスタートサービスビュー

以下に示すように、ロード後
ここに画像の説明を挿入

5、relabel_configs:action是ラベルドロップ

1)prometheus.ymlのタスクの元のラベルを削除します

cat  /home/monitor/prometheus/prometheus.yml
...
...
...
  - job_name: 'es_cluster'  
    relabel_configs:     #添加relabel_configs配置,添加在job_name是es_cluster的下面
    - source_labels:  ["job"]   #匹配原labels名称,此处匹配是job
      regex: "(.*)"  #正则匹配所有
      action: replace  #动作是替换,除了替换别的动作
      replacement: $1  #替换第一个值
      target_label: "es651"  #重新定义的job的label值
      
    - source_labels: ["job"]  #匹配原labels名称,此处匹配是job
      action: keep   #将原标签为job实例保留
      
    - action: labeldrop  #将原标签为job删除
      regex: "job"  #匹配名称为job的标签

    scrape_interval: 1m
    static_configs:
    file_sd_configs:
      - files:
        - /home/monitor/prometheus/conf.d/es_cluster.json
    honor_labels: true
...
...
...

2)ホットスタートサービスビュー

以下に示すように、ロード後
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_44729138/article/details/109776074