Loading
close

监控指标对接

time 更新时间:2024-08-20 19:36:26

联邦集群可以帮助用户根据不同的监控规模对集群的监控部署架构进行调整,其核心在于每一个集群都包含一个用于获取当前实例中监控样本的接口,可观测服务支持 /federate 接口来配置集群联邦。

Prometheus 集群联邦

对于 Prometheus Server 中心集群而言,可以同采集 Exporter 实例一样从其他集群的 Prometheus 实例获取指标数据。

./images/PrometheusFederate.png

中心集群配置示例如下:

scrape_configs:
  - job_name: 'federate'
    scrape_interval: 15s

    honor_labels: true
    metrics_path: '/federate'
    # 用户名和密码请向云管或者技术支持人员获取
    basic_auth:
      username: 'your_username'
      password: 'your_password'

    params:
      'match[]':
        - '{job="prometheus"}'
        - '{__name__=~"job:.*"}'

    # 以下域名请向云管或者技术支持人员获取
    static_configs:
      - targets:
          - 'ecms.web.test-1.easystack.io'
          - 'ecms.web.test-2.easystack.io'
          - 'ecms.web.test-3.easystack.io'

如果单个集群规模过大,比如超过500节点等,在进行指标拉取的时候,建议将指标分散,以防止因为指标过多而导致接口超时,如可根据节点来将指标分散,params 示例如下:

params:
  'match[]':
    - '{job="kubelet",node=~"node-1[0-9]*"}'
    - '{job="kubelet",node=~"node-2[0-9]*"}'
    - '{job="kubelet",node=~"node-3[0-9]*"}'
    - ......

kubernetes 默认使用 ClusterFirst 的 dnspolicy,如您的集群无法解析 ecms.web.test-1.easystack.io 等域名,需要在 prometheus 启动时添加参数 hostAliases,以支持当前 Pod 可以访问在配置中定义的域名。

Thanos 集群联邦

对于 Thanos 而言,支持通过服务发现的方式在 Thanos Query 服务的启动参数中配置其他集群的 Thanos 地址来完成对接。

./images/ThanosFederate.png

中心集群 Thanos Query 启动参数配置示例如下:

args:
  - query
  # 以下域名请向云管或者技术支持人员获取
  - --endpoint=ecms.grpc.test-1.easystack.io:443
  - --endpoint=ecms.grpc.test-2.easystack.io:443
  - --endpoint=ecms.grpc.test-3.easystack.io:443
  - --query.replica-label=prometheus_replica
  - --query.replica-label=thanos_ruler_replica
  - --log.level=info
  # 证书认证内容请向云管或者技术支持人员获取
  - --grpc-client-tls-secure
  - --grpc-client-tls-skip-verify
  - --grpc-client-tls-cert=/certs/tls.crt
  - --grpc-client-tls-key=/certs/tls.key
  - --grpc-client-tls-ca=/certs/ca.crt

kubernetes 默认使用 ClusterFirst 的 dnspolicy,如您的集群无法解析 ecms.grpc.test-1.easystack.io 等域名,需要在 thanos query 启动时添加参数 hostAliases,以支持当前 Pod 可以访问在启动参数中定义的域名。

此篇文章对你是否有帮助?
没帮助
locked-file

您暂无权限访问该产品