AWS ec2 指标集

编辑

aws 模块的 ec2 指标集允许您监控您的 AWS EC2 实例,包括 cpunetworkdiskstatusec2 指标集从 Cloudwatch AWS EC2 指标中获取一组值。

我们获取以下数据

  • cpu.total.pct:实例上当前正在使用的已分配 EC2 计算单元的百分比。
  • cpu.credit_usage:实例用于 CPU 利用率的 CPU 积分花费数量。
  • cpu.credit_balance:实例自启动或启动以来累积的已赚取 CPU 积分数量。
  • cpu.surplus_credit_balance:当其 CPUCreditBalance 值 为零时,无限制实例所花费的剩余积分数量。
  • cpu.surplus_credits_charged:已花费的剩余积分数量,这些积分未被赚取的 CPU 积分支付,因此会产生额外费用。
  • network.in.packets:实例在所有网络接口上接收的数据包数量。
  • network.out.packets:实例在所有网络接口上发送的数据包数量。
  • network.in.bytes:实例在所有网络接口上接收的字节数。
  • network.out.bytes:实例在所有网络接口上发送的字节数。
  • diskio.read.bytes:从实例可用的所有实例存储卷读取的字节数。
  • diskio.write.bytes:写入实例可用的所有实例存储卷的字节数。
  • diskio.read.ops:在指定时间段内,从实例可用的所有实例存储卷完成的读取操作次数。
  • diskio.write.ops:在指定时间段内,对实例可用的所有实例存储卷完成的写入操作次数。
  • status.check_failed:报告实例是否在最后一分钟内通过了实例状态检查和系统状态检查。
  • status.check_failed_system:报告实例是否在最后一分钟内通过了系统状态检查。
  • status.check_failed_instance:报告实例是否在最后一分钟内通过了实例状态检查。
  • instance.core.count:实例的 CPU 核心数。
  • instance.image.id:用于启动实例的映像 ID。
  • instance.monitoring.state:指示是否启用了详细监控。
  • instance.private.dns_name:网络接口的私有 DNS 名称。
  • instance.private.ip:与网络接口关联的私有 IPv4 地址。
  • instance.public.dns_name:实例的公有 DNS 名称。
  • instance.public.ip:绑定到网络接口的弹性 IP 地址(IPv4)地址。
  • instance.state.code:实例的状态,为 16 位无符号整数。
  • instance.threads_per_core:实例的状态(pending | running | shutting-down | terminated | stopping | stopped)。

AWS 权限

编辑

IAM 用户需要一些特定的 AWS 权限才能收集 AWS EC2 指标。

ec2:DescribeInstances
ec2:DescribeRegions
cloudwatch:GetMetricData
cloudwatch:ListMetrics
sts:GetCallerIdentity
iam:ListAccountAliases

仪表盘

编辑

aws ec2 指标集附带预定义的仪表盘。例如

metricbeat aws ec2 overview

配置示例

编辑
- module: aws
  period: 300s
  metricsets:
    - ec2
  access_key_id: '<access_key_id>'
  secret_access_key: '<secret_access_key>'
  session_token: '<session_token>'
  tags_filter:
    - key: "Organization"
      value: ["Engineering", "Product"]

tags_filter 可以指定为仅收集具有特定标签键/值的指标。例如,使用上面的配置示例,ec2 指标集将仅从标签键等于“Organization”且标签值等于“Engineering”或“Product”的 EC2 实例收集指标。

这是一个默认指标集。如果未配置主机模块,则默认启用此指标集。

字段

有关指标集中每个字段的描述,请参阅导出的字段部分。

这是此指标集生成的示例文档

{
    "@timestamp": "2017-10-12T08:05:34.853Z",
    "aws": {
        "cloudwatch": {
            "namespace": "AWS/EC2"
        },
        "dimensions": {
            "InstanceId": "i-05b6228ff8d8c5d49"
        },
        "ec2": {
            "cpu": {
                "credit_balance": 144,
                "credit_usage": 0.007318,
                "surplus_credit_balance": 0,
                "surplus_credits_charged": 0
            },
            "diskio": {
                "read": {
                    "bytes_per_sec": 0,
                    "count_per_sec": 0
                },
                "write": {
                    "bytes_per_sec": 0,
                    "count_per_sec": 0
                }
            },
            "instance": {
                "core": {
                    "count": 1
                },
                "image": {
                    "id": "ami-058b1b7fe545997ae"
                },
                "monitoring": {
                    "state": "disabled"
                },
                "private": {
                    "dns_name": "ip-172-31-31-247.eu-west-1.compute.internal",
                    "ip": "172.31.31.247"
                },
                "public": {
                    "dns_name": "ec2-54-194-39-129.eu-west-1.compute.amazonaws.com",
                    "ip": "54.194.39.129"
                },
                "state": {
                    "code": 16,
                    "name": "running"
                },
                "threads_per_core": 1
            },
            "network": {
                "in": {
                    "bytes_per_sec": 18.343333333333334,
                    "packets_per_sec": 0.15666666666666668
                },
                "out": {
                    "bytes_per_sec": 15.326666666666666,
                    "packets_per_sec": 0.16
                }
            },
            "status": {
                "check_failed": 0,
                "check_failed_instance": 0,
                "check_failed_system": 0
            }
        }
    },
    "cloud": {
        "account": {
            "id": "428152502467",
            "name": "elastic-beats"
        },
        "availability_zone": "eu-west-1a",
        "instance": {
            "id": "i-05b6228ff8d8c5d49"
        },
        "machine": {
            "type": "t2.micro"
        },
        "provider": "aws",
        "region": "eu-west-1"
    },
    "event": {
        "dataset": "aws.ec2",
        "duration": 115000,
        "module": "aws"
    },
    "host": {
        "cpu": {
            "usage": 0.1005649717511616
        },
        "disk": {
            "read": {
                "bytes": 0
            },
            "write": {
                "bytes": 0
            }
        },
        "id": "i-05b6228ff8d8c5d49",
        "name": "i-05b6228ff8d8c5d49",
        "network": {
            "egress": {
                "bytes": 4598,
                "packets": 48
            },
            "ingress": {
                "bytes": 5503,
                "packets": 47
            }
        }
    },
    "metricset": {
        "name": "ec2",
        "period": 10000
    },
    "service": {
        "type": "aws"
    }
}