我正试图通过Terraform为每个systemCpuUtilizaiton
代理节点创建AWS警报。要创建AWS云监视报警,我需要提供AWS博士中提到的维度(节点名称和代理)。
因此,我希望从AWS中获取rabbitMQ broker节点名(通过CLI,或API或Terraform)
请注意:我可以在AWS Cloudwatch控制台中看到每个代理节点的矩阵,但不能从API、SDK或CLI中看到。
我浏览了下面的链接,但是没有得到任何方便的https://awscli.amazonaws.com/v2/documentation/api/latest/reference/mq/index.html#cli-aws-mq 经纪人
如果我遗漏了什么,请告诉我。
发布于 2021-07-22 03:04:58
我已经向AWS支持提出了上述问题,以下是解决方案:
首先,AWS团队的响应,AmazonMQ代理节点在内部由AWS管理,目前它没有通过API或SDK公开。
因此,无法通过API或SDK获取兔MQ代理节点名。因此,不可能在兔子MQ代理节点的systemCpuUtilizaiton
,因为节点名称是创建警报所必需的维度。上直接创建云监视警报。
有两种解决方案--
我使用了第二种方法,下面的值文件来获取我们感兴趣的矩阵。
prometheus-cloudwatch-exporter:
namespace: monitoring
enabled: true
override:
metrics:
alb: false
rds: false
# ... based on requirement
alerts:
ec2: false # based on requirement
additionalMetrics: |-
# below configuration will fetch the martics,
# containing Rabbit MQ broker node names
- aws_namespace: AWS/AmazonMQ
aws_metric_name: SystemCpuUtilization
aws_dimensions: [Broker, Node]
aws_statistics: [Average]
如果一切都配置正确,您应该能够在prometheus中使用aws_amazonmq_system_cpu_utilization_average
martic,如下所示。现在使用Prometheus警报管理器在此基础上创建警报。
发布于 2022-03-02 12:18:09
最近,AWS开始发布每个代理CPU/Mem/磁盘指标。
您应该在AmazonMQ/Broker metrics
下看到这些指标。现在,您可以在没有节点名称维度的情况下使用SystemCpuUtilization
度量,然后使用最大统计量来获取负载最多的节点。您可以根据此指标创建CloudWatch警报。
发布于 2021-07-13 17:44:01
用于云监视维度的AWS节点名称似乎没有通过API公开,但是知道IP地址的节点名是可预测的。我相信这可以用来为警报构造有效的节点名。
data "aws_region" "current" {}
resource "aws_mq_broker" "example" {
...
}
resource "aws_cloudwatch_metric_alarm" "bat" {
for_each = toset([
for instance in aws_mq_broker.example.instances : instance.ip_address
])
alarm_name = "terraform-test-foobar5"
comparison_operator = "GreaterThanOrEqualToThreshold"
evaluation_periods = "2"
metric_name = "SystemCpuUtilization"
namespace = "AWS/AmazonMQ"
period = "120"
statistic = "Average"
threshold = "80"
dimensions = {
Broker = aws_mq_broker.example.name
Node = "rabbitmq@ip-${replace(each.value, ".", "-")}.${data.aws_region.current.name}.compute.internal"
}
}
https://stackoverflow.com/questions/68370516
复制相似问题