prometheus服务自动发现之aws ec2

目录

1. 前言

2. 配置说明

3. 配置ec2_sd_config


1. 前言

由于公司海外用的是aws,在建设prometheus监控告警系统的时候,想通过prometheus <ec2_sd_config>的配置实现自动发现ec2实例,在网上搜了一圈,实在没找到比较通俗易懂带实例的文章,所以打算自己写一个,希望能帮到有需要的人

2. 配置说明

我在上一个文章中说过(prometheus服务自动发现之阿里云ecs_lv2的博客-CSDN博客),prometheus官方支持aws及azure自动发现ecs实例,具体可以参考官方文档:配置|普罗 米修斯 (prometheus.io)

 <ec2_sd_config>和<azure_sd_config>这两个配置部分的说明,这里主要说说ec2的sd_config配置

EC2 SD 配置允许从 AWS EC2 实例中检索抓取目标。默认情况下使用内网 IP 地址,但可以通过重新标记更改为公网 IP 地址。

在重新标记期间,目标上可以使用以下元标签

  • __meta_ec2_ami:EC2 亚马逊系统映像
  • __meta_ec2_architecture:实例的体系结构
  • __meta_ec2_availability_zone:运行实例的可用区
  • __meta_ec2_availability_zone_id:运行实例的可用区 ID(需要ec2:DescribeAvailabilityZones)
  • __meta_ec2_instance_id:EC2 实例 ID
  • __meta_ec2_instance_lifecycle:EC2 实例的生命周期,仅为“spot”或“scheduleed”实例设置,否则不存在
  • __meta_ec2_instance_state:EC2 实例的状态
  • __meta_ec2_instance_type:EC2 实例的类型
  • __meta_ec2_ipv6_addresses:分配给实例网络接口的 IPv6 地址的逗号分隔列表(如果存在)
  • __meta_ec2_owner_id:拥有 EC2 实例的 AWS 账户的 ID
  • __meta_ec2_platform:操作系统平台,在 Windows 服务器上设置为“windows”,否则不存在
  • __meta_ec2_primary_subnet_id:主网络接口的子网 ID(如果可用)
  • __meta_ec2_private_dns_name:实例的私有 DNS 名称(如果可用)
  • __meta_ec2_private_ip:实例的私有 IP 地址(如果存在)
  • __meta_ec2_public_dns_name:实例的公有 DNS 名称(如果可用)
  • __meta_ec2_public_ip:实例的公有 IP 地址(如果可用)
  • __meta_ec2_subnet_id:运行实例的子网 ID 的逗号分隔列表(如果可用)
  • __meta_ec2_tag_<tagkey>:实例的每个标签值
  • __meta_ec2_vpc_id:运行实例的 VPC 的 ID(如果可用)

以上是官方文档对元标签的说明,可根据需要使用相应的元标签进行重写。配置部分说明感觉看不懂,下面是我整理的

3. 配置ec2_sd_config

vim /usr/local/prometheus/prometheus.yml

global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  - job_name: aws-ec2-sd
    honor_timestamps: true
    scrape_interval: 30s
    scrape_timeout: 10s
    metrics_path: /metrics
    scheme: http
    ec2_sd_configs: # 这里表示使用的发现配置
      - port:  9100
        refresh_interval: 30s
        region: us-west-1  # 抓取的可用区,一个可用区有多个区,如1a/1b/1c,这里只用us-west-1即能抓取可用区下的所有实例
        access_key: '******'   # api key,不用说了吧
        secret_key: '******'

配置后重载prometheus,效果如下

元标签如下

 

 其它的就根据需要自行修改了,关于aws ec2自动发现的配置就到这了,觉得有用点个收藏吧

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值