Relabel_configs構成の紹介と使用
1.relabel_configs relabel
1.1。ラベルの付け直しの意味
再ラベル付けとは、ラベルを再定義することです
relabel_configs:この構成アイテムを使用すると、収集前に任意のターゲットとラベルを変更できます
再ラベル付けの意味:元のラベルの名前を変更し、ラベルを削除し、ターゲットをフィルタリングし、ラベルの特定の値をフィルタリングできます
prometheusは、監視インジケーターをクエリするときに、この監視インジケーターが含まれている限り、すべての監視データを一覧表示します。これは非常に面倒なようですが、クエリ時にラベルを指定して、指定したホストを見つけることができます。
relabel_configsラベルは非常に重要です。job_nameを特定の領域として定義し、収集前にラベルを書き換えて、ラベルの値を新しいラベルに渡すことができます。これにより、統計が容易になります。
1.2。再ラベル付け構成の概要
relabel_cofnigs:
[ source_labels: '[' <labelname> [, ...] ']' ] //定义源标签,指定源标签是谁,多个原标签用逗号隔开
[ separator: <string> | default = ; ] //源标签的值,多个值用分号隔开
[ target_label: <labelname> ] //重新标记后的标签名,也就是要把标签重命名成什么
[ regex: <regex> | default = (.*) ] //匹配源标签的值,可以采用正则表达式
[ modulus: <int> ]
[ replacement: <string> | default = $1 ] //将正则匹配到的标签值传给新的标签
[ action: <relabel_action> | default = replace ] //执行正则匹配时的动作
1.3。監視ホストにidcタグを追加するようにprometheusを構成します
最初に簡単なラベルを使用しましょう
1.修改配置文件,增加idc标签
[root@prometheus-server prometheus]# vim prometheus.yml
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['prometheus-server:9090']
labels:
idc: "bj"
2.加载配置文件
[root@prometheus-server prometheus]# curl -XPOST prometheus-server:9090/-/reload
ページにラベルの増加が表示されているかどうかを確認します
タグidcをbjとしてCPU使用率を検索します
構文形式:監視メトリック名{タグ名= "タグ値"}
process_cpu_seconds_total{idc="bj"}
統計ラベルidcは、bjのCPU使用率の合計です。
Promqlは多くの関数をサポートしており、sum関数を使用して合計することができます
コマンド形式:sum(metrics name {label name = "label value"})
sum(process_cpu_seconds_total{idc="bj"})
1.4.relabel_configsを使用してジョブラベルを書き換えます
1.4.1.job_nameをbjに変更します
このステップは、ジョブタグを書き換えることです
1.修改主配置文件
[root@prometheus-server ~]# vim /data/prometheus/prometheus.yml
scrape_configs:
- job_name: 'bj'
static_configs:
- targets: ['prometheus-server:9090']
2.加载配置
[root@prometheus-server ~]# curl -XPOST prometheus-server:9090/-/reload
変更されました
2つのレコードの理由:prometheusはホストを監視するため、デフォルトでインスタンスとジョブの2つのラベルが生成されます。インスタンスは構成ファイルのターゲットに対応し、ジョブはjob_nameに対応します。ここでの元のjob_nameは次のとおりです。すでにここにあるprometheus。ラベルがあります。このラベルを明示的に削除せず、ラベルの値を変更しただけなので、そのまま残ります。
1.4.2。ジョブラベルのラベルを変更します
現在のジョブラベル値がbjであることがわかりました。収集する前に、ジョブラベル名をidcに変更できます。これは、統計を作成するのにも便利です。
構成の説明
scrape_configs: - job_name: 'job' #实例名称 static_configs: - targets: ['prometheus-server:9090'] #监控主机ip relabel_configs: #重新标记标签 - action: replace #动作,replace动作就是将原来标签的值传给新标签 source_labels: ['job'] #源标签的名字 regex: (.*) #使用正则取出原标签的值,.*表示和原来的值保持一致 replacement: $1 #将正则表达式匹配到的结果值引用给新标签 target_label: idc #新标签的名称
1.修改主配置文件
scrape_configs:
- job_name: 'job'
static_configs:
- targets: ['prometheus-server:9090']
relabel_configs:
- action: replace
source_labels: ['job']
regex: (.*)
replacement: $1
target_label: idc
2.检查语法
[root@prometheus-server ~]# promtool check config /data/prometheus/prometheus.yml
Checking /data/prometheus/prometheus.yml
SUCCESS: 0 rule files found
3.重载配置
[root@prometheus-server ~]# curl -XPOST prometheus-server:9090/-/reload
ジョブタグがidcで再マークされ、元のジョブは保持されますが、しばらくすると消えます。
2.relabel_configsの再ラベル付けアクション
2.1。ラベルアクションの概要
アクションラベル変更アクション:
- replace:デフォルトのアクションは、通常の照合によってソースラベル(source_label)の値を照合し、replacementを使用して、元のラベルの値を新しいラベルに渡す式と一致するグループを参照します。
- keep:規則性と接続に一致しないターゲットソースラベルを削除します。たとえば、ソースラベルジョブを指定した場合、指定したアクションはkeepであり、ソースラベルから検出された監視インジケータは削除されません。メトリックにジョブがあるため、ラベル、ラベルがない場合は削除されます
- ドロップ:接続に一致するターゲットソースラベルを削除します。たとえば、指定するソースラベルがジョブで、メトリック値にジョブが含まれている場合、ソースラベルはすでに一致しているため、メトリックは削除されます。
- labeldrop:規則性に一致するラベルを削除します。つまり、このラベルがメトリックに含まれている場合、ラベルは削除されます。
- labelkeep:正規表現と一致しないラベルを削除します
- hashmod;モジュラスリンクsource_labelsという名前の新しいラベルのハッシュ値を設定します
- labelmap:正規表現のすべてのラベル名に一致します。次に、一致するタグの値をグループにコピーすると、置換グループは代わりに$ 1、$ 2を参照します
2.2。ドロップアクションの例
ジョブタグに一致するメトリックが削除されます
アクションを追加するだけです
1.修改主配置
[root@prometheus-server ~]# vim /data/prometheus/prometheus.yml
scrape_configs:
- job_name: 'bj'
static_configs:
- targets: ['prometheus-server:9090']
relabel_configs:
- action: replace
source_labels: ['job']
regex: (.*)
replacement: $1
target_label: idc
- action: drop
source_labels: ['job']
2.加载配置
[root@prometheus-server ~]# curl -XPOST prometheus-server:9090/-/reload
少し前に存在しました
再収集すると削除されます
2.3。アクションの例を維持する
まだデータがありません
Keepは一致しないものを削除し、ジョブは最初に一致したため、構成をロードした後、再収集時に表示されます
1.修改主配置文件
[root@prometheus-server ~]# vim /data/prometheus/prometheus.yml
scrape_configs:
- job_name: 'bj'
static_configs:
- targets: ['prometheus-server:9090']
relabel_configs:
- action: replace
source_labels: ['job']
regex: (.*)
replacement: $1
target_label: idc
- action: keep
source_labels: ['job']
2.加载配置
[root@prometheus-server ~]# curl -XPOST prometheus-server:9090/-/reload
2.4。ラベルドロップアクションの例
labeldropを使用してjobという名前のラベルを削除します
Labeldropは、一致するラベルを削除します。labeldropアクションでは、source_labelsを使用して一致させることはできませんが、通常の正規表現に一致させることができます。複数の値を一致させるには、コンマで区切ります。
それでもこのレーベル
1.修改主配置
[root@prometheus-server ~]# vim /data/prometheus/prometheus.yml
scrape_configs:
- job_name: 'bj'
static_configs:
- targets: ['prometheus-server:9090']
relabel_configs:
- action: labeldrop
regex: job
2.重载
[root@prometheus-server ~]# curl -XPOST prometheus-server:9090/-/reload
このラベルは、labeldropが構成され、再度収集されると削除されます。
2.5。ラベルキープアクションの例
少し欠陥があり、最終的にはすべて削除され、監視データが見つかりません。
labelkeepは、一致しないラベルを削除することです。ジョブを除くすべてのラベルを削除します
2.5.1。削除されたジョブタグを復元する
現在のジョブはまだ削除されているので、復元する必要があります。そうしないと、labelkeepが使用されている場合に削除され、データが見つかりません。
それを復元する方法は、構成ファイルに書き込んだばかりのラベルドロップを削除することです。
復元されました
2.5.2。ジョブを除くすべてのタグを削除します
1.修改主配置
[root@prometheus-server ~]# vim /data/prometheus/prometheus.yml
scrape_configs:
- job_name: 'bj'
static_configs:
- targets: ['prometheus-server:9090']
relabel_configs:
- action: labelkeep
regex: job
2.重载
[root@prometheus-server ~]# curl -XPOST prometheus-server:9090/-/reload