在 mesosphere DCOS 集群上为 prometheus 设置云监视导出器
Posted
技术标签:
【中文标题】在 mesosphere DCOS 集群上为 prometheus 设置云监视导出器【英文标题】:Setting up cloud watch exporter for prometheus on mesosphere DCOS cluster 【发布时间】:2015-11-03 04:49:00 【问题描述】:我已经在我的 AWS mesosphere DCOS 集群上为 Prometheus 设置了云手表导出器。我启用了“CloudWatchFullAccess”政策。但是仪表,“cloudwatch_exporter_scrape_error
”显示非零值。我想知道为什么刮擦会出错。
在哪里可以查看日志或如何调试此问题?
我使用的配置文件也是
"region": "ap-southeast-1",
"metrics": [
"aws_namespace": "AWS/ELB", "aws_metric_name": "HealthyHostCount",
"aws_dimensions": ["AvailabilityZone", "LoadBalancerName"],
"aws_dimension_select": "LoadBalancerName": ["name of my LB"],
"aws_statistics": ["Sum"]
]
但是除了米我没有任何米-cloudwatch_requests_total
,
cloudwatch_exporter_scrape_duration_seconds
, cloudwatch_exporter_scrape_error
暴露于普罗米修斯。
如何从 cloudwatch_exporter 获取额外的仪表?
【问题讨论】:
cloudwatch_exporter 的作者在这里,您能验证一下curl http://169.254.169.254/latest/meta-data/iam/security-credentials/ROLENAME
下显示的凭据吗?另外,stderr/stdout 有输出吗?
感谢您调查这个问题。当我尝试执行 curl 命令时,出现“无法连接到 169.254.169.254 端口 80:连接被拒绝”错误
在我的设置中,cloudwatch_exporter 正在侦听端口“9106”。所以我在 http://您似乎在尝试使用 IAM 实例配置文件,但您无法访问 http://169.254.169.254。这是您的网络设置的某种形式的问题,因为这应该在 EC2 上开箱即用。
你有两个选择。
-
您可以修复网络设置,以便再次访问 169.254.169.254。
或者您可以创建一个具有
cloudwatch:ListMetrics
和cloudwatch:GetMetricStatistics
IAM 权限的IAM 用户,并生成访问密钥并将它们放入AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
或~/.aws/credentials
。
见https://github.com/prometheus/cloudwatch_exporter#credentials-and-permissions
【讨论】:
我正在运行 cloudwatch_exporter docker 容器。如何向 docker 容器提供 AWS 凭证? 在 docker 容器中提供正确的凭据后,我从 cloud watch exporter 获得了相关指标。感谢您的帮助!【参考方案2】:下面是我的配置文件
"region": "us-west-2",
"metrics": [
"aws_namespace": "AWS/ELB", "aws_metric_name": "HealthyHostCount",
"aws_dimensions": ["us-west-2a", "test"], "aws_statistics": ["Average"],
"aws_namespace": "AWS/ELB", "aws_metric_name": "UnHealthyHostCount",
"aws_dimensions": ["us-west-2a", "test"], "aws_statistics": ["Average"],
"aws_namespace": "AWS/ELB", "aws_metric_name": "RequestCount",
"aws_dimensions": ["us-west-2a", "test"], "aws_statistics": ["Sum"],
"aws_namespace": "AWS/ELB", "aws_metric_name": "Latency",
"aws_dimensions": ["us-west-2a", "test"], "aws_statistics": ["Average"],
"aws_namespace": "AWS/ELB", "aws_metric_name": "SurgeQueueLength",
"aws_dimensions": ["us-west-2a", "test"], "aws_statistics": ["Maximum", "Sum"],
]
我可以看到下面的输出
cloudwatch_requests_total 10.0
cloudwatch_exporter_scrape_duration_seconds 2.571412647
cloudwatch_exporter_scrape_error 0.0
但为什么不是其他指标呢?
【讨论】:
对于命名空间 AWS/ELB,有效的 aws_dimensions 是 LoadBalancerName 和 AvailabilityZone。请参阅link。您需要更改配置文件,并输入有效的维度或不输入维度来获取命名空间 AWS/ELB 的指标。希望这会有所帮助。 它对我有用,我有疑问,所以如果我们在 docker 中部署它,它只会在原生主机时废弃指标?以上是关于在 mesosphere DCOS 集群上为 prometheus 设置云监视导出器的主要内容,如果未能解决你的问题,请参考以下文章