2017-12-14 5 views
0

현재 프로 메테우스를 사용하여 Kubernetes 포드를 모니터링 중입니다. 내 기본 설정은 다음과 같습니다포드 IP 주소를 호스트 IP 주소로 바꾸십시오. 경로와 포트를 동일하게 유지하십시오.

- 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를 알리는 끝점 열이 오히려 포드가 배포 된 호스트의 IP 주소보다 주소를 발생합니다.

enter image description here

나는 실제 호스트의 IP 주소로 포드의 IP 주소를 변경하고 싶습니다.

- source_labels: [__meta_kubernetes_pod_host_ip] 
    target_label: __address__ 
    regex: (.*) 
    replacement: $1 

지금 무엇 임 보는 것은 IP를 확실히 변경되었다고하지만 : 후 몇 가지 이유 모든 것을 잘못을 정확하게 동일합니다

는 그래서 아래 설정을 추가했습니다.

enter image description here

는 정규식에 뭔가 문제가 있나요?

답변

1

__address__에는 포트 번호가 포함되어 있으므로 다른 레이블에서 유지하거나 보존해야합니다. 예 :

- source_labels: [__meta_kubernetes_pod_host_ip, __address__] 
    target_label: __address__ 
    regex: (.*);.*:(\d+) 
    replacement: $1:$2 
+0

감사합니다. 하지만 내 측정 항목 경로가 동일한 즉 측정 항목/측정 항목 인 경우에만 작동한다고 가정합니다. 내 다른 광고 모음에는 다른 측정 항목 경로가 있습니다./깍지 이름/건강. –

+1

그건'__metrics_path__' 라벨에 의해 제어됩니다. 이것은 독립적입니다. –