我可以将 Prometheus 部署到每个 Azure Kubernetes 服务 (AKS),并从 AKS 外部的虚拟机创建的 Prometheus 监控每个 Prometheus 吗?换句话说,我想将中心的 Prometheus 与每个集群中的所有 Prometheus 连接起来。换句话说,我想将中心的 Prometheus 与每个集群中的所有 Prometheus 连接起来。
如果您能告诉我与此高度相关的参考资料,我将不胜感激。我们正在考虑的构图如下。
答案1
看起来你正在寻找 Prometheus 服务器联合。官方文档这里。
基本上,您需要配置中央 Prometheus 实例以从路径中的中间实例抓取数据/federate
。
您的案例的简单配置示例如下:
scrape_configs:
- job_name: 'federate'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{__name__=~".+"}'
static_configs:
- targets:
- 'cluster-1-address:9090'
- 'cluster-2-address:9090'
- 'cluster-3-address:9090'
请注意,联合不会保留时间戳。因此,中央服务器和中间服务器之间的数据可能会出现细微差异。
一定要scrape_interval
根据scrape_interval
中间实例进行配置:如果中央服务器的间隔较小,则会导致数据点成倍增加,占用的存储空间也会增加。如果中央服务器的间隔较大,则会丢失一些数据点。
答案2
是的,可以将 Prometheus 部署到每个 Azure Kubernetes 服务 (AKS),并从 AKS 外部虚拟机创建的 Prometheus 监视每个 Prometheus。这可以通过在 Prometheus 中使用联合来实现。