我有3个kubernetes集群(prod,测试,监控)。我是prometheus的新手,所以我在我的测试环境中安装了它,并使用舵机图表进行了测试:
# https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack
helm install [RELEASE_NAME] prometheus-community/kube-prometheus-stack但是,如果我想从prod和测试集群中获得度量标准,我必须重复相同的舵机安装,并且每个“kube堆栈”将在其自己的集群中独立。这一点也不理想。我试图找到一种方法来拥有一个单一的prometheus/grafana,它将联合/累积来自每个集群的prometheus服务器的度量。
我找到了这个链接,说到普罗米修斯联合会:
https://prometheus.io/docs/prometheus/latest/federation/如果安装舵图“堆栈”并在另外两个集群上去掉grafana,我如何才能使第三个“堆栈”在第三个集群中从其他两个集群中获取度量标准?
谢谢
发布于 2020-11-20 15:43:36
您必须修改prometheus联邦成员的配置,以便它可以从其他集群中刮取指标,如所描述的在文件中。
scrape_configs:
- job_name: 'federate'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- '{job="prometheus"}'
- '{__name__=~"job:.*"}'
static_configs:
- targets:
- 'source-prometheus-1:9090'
- 'source-prometheus-2:9090'
- 'source-prometheus-3:9090'params字段检查刮胡子的工作指标。在这个特殊的例子中
它将使用标签job=" Prometheus“或以job开头的公制名称从prometheus服务器上刮取任何系列-prometheus-{1,2,3}:9090。
您可以查看以下文章,以便更深入地了解prometheus联邦:
发布于 2022-05-11 08:27:34
你在这里没有什么选择:
备选案文1:
您可以在prod和测试集群中购买vmagent或地堑剂,并将它们配置为远程写到监视集群。
但是在这种情况下,您需要将kube状态度量和节点导出分别安装到prod和测试集群中。
此外,在将指标发送到远程写入之前,必须为集群名称(或任何唯一标识符)添加额外的标签,以确保“堆栈”中的记录规则正确工作。
备选案文2:
您可以安装维多利亚-度量-k8s-堆栈图表。它具有与kube类似的功能--堆栈--还安装了大量的组件、记录规则和仪表板。
在这种情况下,您可以在每个集群中安装victoria-metrics-k8s-stack,但是具有不同的值。对于监视群集,可以使用默认值
grafana:
sidecar:
dashboards:
multicluster: true和适当配置的vmsingle入口
对于prod和测试集群,您需要禁用一组组件。
defaultRules:
create: false
vmsingle:
enabled: false
alertmanager:
enabled: false
vmalert:
enabled: false
vmagent:
spec:
remoteWrite:
- url: "<vmsingle-ingress>/api/v1/write"
externalLabels:
cluster: <cluster-name>
grafana:
enabled: false
defaultDashboardsEnabled: false在本例中,图表将部署vmagent、kube状态度量、节点导出和vmagent的刮取配置。
发布于 2020-11-19 21:56:20
你可以试着看看波前。这是一个商业工具,但你可以得到30天的免费试用-而且,它了解promQL。因此,基本上,您可以在所有集群中使用相同的prometheus规则和配置,然后使用wavefront来连接到所有那些prom实例。
另一种选择可能是萨诺斯,但我从未亲自使用过。
https://stackoverflow.com/questions/64918491
复制相似问题