Azure监视器容器和Prometheus集成

时间:2020-06-24 16:53:02

标签: prometheus azure-aks

尝试使用Prometheus来为作为AKS中的Linux docker conatiner部署的ASP.NET Core webapi爬取指标。以下是有关AKS的更多详细信息:

  1. 使用Nginx Ingress内部负载均衡器并启用Prometheus度量标准收集。能够使用Prometheus收集Nigin Ingress指标,并且可以在Azure Monitor中查看容器的指标。 在ConfigMap(container-azm-ms-agentconfig.yaml)中添加了Nginx入口服务网址

  2. 对于抓取应用程序数据(ASP.NET核心webapi),请遵循以下步骤

a。使用了prometheus nuget软件包和检测应用程序。能够通过http:\ localhost:80 \ metrics

查看指标

b。创建了docker容器并能够浏览指标。

c。在dockercompose.yaml文件中,启用了prometheus.io/scrape的“ true”注释,并使用群集类型服务进行部署。

d。在启用的ConfigMap中,monitor_kubernetes_pods = true并在kubernates服务下添加了http://tododocker-one.ingress-basic:80/metrics。这里tododocker-one是ingress-basic名称空间中的群集类型服务。

在omsagent日志中未发现错误。通过所有这些步骤,无法在Azure监视器中看到应用程序指标,也无法获取输出

http://tododocker-one.ingress-basic:80/metrics

可能是问题所在。我将Nginx ingess内部负载平衡器与路由规则结合使用会产生任何影响。

1 个答案:

答案 0 :(得分:0)

您需要确保pod公开了度量标准路径(例如/ metrics),并且pod的服务允许prometheus通过k8s服务访问此端点。

从上面的错误中,假设四个不同的IP是您自己的服务提供的Pod IP,它们似乎没有在端口8080或9102上公开/ metrics。

请参阅这篇文章,了解如何通过端点使您的pod /服务服务的prometheus度量标准。

https://sysdig.com/blog/kubernetes-monitoring-prometheus/#monitoringkubernetesclusterwithprometheusandkubestatemetrics

还要确保使用正确的服务端点的端口和路径正确配置container-azm-ms-agentconfig.yaml(因为您没有将指标暴露在/ metrics上,而是暴露在其他指标上)

看看这些设置

https://github.com/microsoft/OMS-docker/blob/ci_feature_prod/Kubernetes/container-azm-ms-agentconfig.yaml#L65-L71