amazon-ec2 - 如何过滤 prometheus.yml 中的 EC2 实例?

标签 amazon-ec2 monitoring prometheus

我正在尝试过滤 prometheus.yml 中的 EC2 实例。假设以下是 yml 文件的一部分。我如何在值中使用正则表达式来返回以 prodqa 或其他标签开头的实例?如果不配置 relabeling 是否可行?

  ec2_sd_configs:
- region: us-east-1
  access_key: access
  secret_key: mysecret
  profile: profile
  filters:
    - name: tag:Name
      values:
        - prod.*
        - qa.*

最佳答案

Prometheus 现在似乎不支持过滤 API 中的正则表达式,但如果他们可以在未来的版本中添加它,那将是一个不错的功能。在这种情况下可以做的是,您可以在 EC2 实例上添加一个单独的标签,这样您就可以根据这些标签进行过滤。如果您有大量实例,则在早期阶段进行过滤非常有用。否则,您将获得一个巨大的列表,您需要通过重新标记来经历丢弃/保留阶段,这仍然会在服务发现面板中保留一长串列表并使其难以阅读。

在下一步中,您可以使用重新标记将每个发现的实例的地址从私有(private) IP 替换为公共(public) IP。作为最后一步,您可以将实例名称替换为标签名称,例如,所有 QA 实例都标记为 QA。

     ec2_sd_configs:
      - region: value
        access_key: value
        secret_key: value
        port: value
        filters:
          - name: tag:Name
            values:
              - qa
              - prod
              - some other types
    relabel_configs:
      - source_labels: [__meta_ec2_public_ip]
        replacement: '${1}:your port number'
        target_label: __address__
      - source_labels: [__meta_ec2_tag_Name]
        target_label: instance

关于amazon-ec2 - 如何过滤 prometheus.yml 中的 EC2 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57293968/

相关文章:

linux - 在找不到的 EC2 Linux 命令上安装 Composer

java - 通过 Java API 获取 AWS 实例的主机名

amazon-web-services - 如何在 AWS 中创建和查看组织中的实例?

google-cloud-platform - GKE 磁盘使用率监控/警报

kubernetes - Prometheus 没有发现我的 Pod 监视器

prometheus - 使用 Prometheus 监控短暂的 Python 批处理作业进程

amazon-web-services - 如何在不打开 ssh 管道的情况下在 Amazon EC2 上运行脚本?

java - 在 Glassfish 中运行时,HystrixCommand 未通过 JMX 公开

alert - 如何确保基于 stackdriver 日志的指标获得 0 值而不是没有数据?

memory - 为什么 Prometheus 消耗这么多内存?