目前,我正在使用Prometheus监控Kubernetes Pod。我的基本配置是:
- 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: (.+)这基本上会导致Endpoint列声明内部Kubernetes IP地址,而不是部署pods的主机IP地址。

我想将pod IP地址更改为实际的主机IP地址。
因此,我添加了以下配置:
- source_labels: [__meta_kubernetes_pod_host_ip]
target_label: __address__
regex: (.*)
replacement: $1现在我看到的是,Im确实已经改变了,但是由于某些原因,:之后的一切都是完全一样的,这是错误的。

正则表达式有什么问题吗?
发布于 2017-12-15 01:54:14
__address__包含端口号,因此您需要保留该端口号或从另一个标签中获取端口号。例如:
- source_labels: [__meta_kubernetes_pod_host_ip, __address__]
target_label: __address__
regex: (.*);.*:(\d+)
replacement: $1:$2https://stackoverflow.com/questions/47819127
复制相似问题