目前我正在使用普罗米修斯监控Kubernetes Pods。我的基本配置是:
- job_name: 'kubernetes_pods'
tls_config:
insecure_skip_verify: true
kubernetes_sd_configs:
- api_server: http://k8s_master:8080
role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: pod_name
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
这基本上会导致端点列说明内部Kubernetes IP地址,而不是部署pod的主机IP地址。
我想将pod IP地址更改为实际的主机IP地址。
所以我添加了以下配置:
- source_labels: [__meta_kubernetes_pod_host_ip]
target_label: __address__
regex: (.*)
replacement: $1
现在我看到的是IP肯定已被改变,但出于某种原因,:
之后的所有内容完全相同,这是错误的。
正则表达式有问题吗?
答案 0 :(得分:0)
__address__
包含端口号,因此您需要保留该端口号或从另一个标签中获取该端口号。例如:
- source_labels: [__meta_kubernetes_pod_host_ip, __address__]
target_label: __address__
regex: (.*);.*:(\d+)
replacement: $1:$2