首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用API、CLI或Terraform为RabbitMQ代理获取RabbitMQ节点

如何使用API、CLI或Terraform为RabbitMQ代理获取RabbitMQ节点
EN

Stack Overflow用户
提问于 2021-07-14 00:00:36
回答 3查看 624关注 0票数 0

我正试图通过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 经纪人

如果我遗漏了什么,请告诉我。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-07-22 11:04:58

我已经向AWS支持提出了上述问题,以下是解决方案:

首先,AWS团队的响应,AmazonMQ代理节点在内部由AWS管理,目前它没有通过API或SDK公开。

因此,无法通过API或SDK获取兔MQ代理节点名。因此,不可能在兔子MQ代理节点的systemCpuUtilizaiton因为节点名称是创建警报所必需的维度。上直接创建云监视警报。

有两种解决方案--

  1. 查询RabbitMQ API以获取节点名。
  2. 使用普罗米修斯/云表出口商,从可用节点名称的云表中获取矩阵的详细信息。

我使用了第二种方法,下面的值文件来获取我们感兴趣的矩阵。

代码语言:javascript
代码运行次数:0
运行
复制
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警报管理器在此基础上创建警报。

票数 0
EN

Stack Overflow用户

发布于 2022-03-02 20:18:09

最近,AWS开始发布每个代理CPU/Mem/磁盘指标

您应该在AmazonMQ/Broker metrics下看到这些指标。现在,您可以在没有节点名称维度的情况下使用SystemCpuUtilization度量,然后使用最大统计量来获取负载最多的节点。您可以根据此指标创建CloudWatch警报。

票数 3
EN

Stack Overflow用户

发布于 2021-07-14 01:44:01

用于云监视维度的AWS节点名称似乎没有通过API公开,但是知道IP地址的节点名是可预测的。我相信这可以用来为警报构造有效的节点名。

代码语言:javascript
代码运行次数:0
运行
复制
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"
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68370516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档