AWS ec2 指标集
编辑AWS ec2 指标集编辑
aws 模块的 ec2 指标集允许您监控您的 AWS EC2 实例,包括 cpu
、network
、disk
和 status
。 ec2
指标集从 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 指标集附带一个预定义的仪表盘。例如
配置示例编辑
- 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" } }