Elastic Load Balancing
应用程序负载均衡器
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

应用程序负载均衡器的 AWS CloudTrail 日志记录

Elastic Load Balancing 与 AWS CloudTrail 相集成,后者可捕获由您的 AWS 账户或代表该账户向 AWS 发出的 API 调用,并将日志文件传输到您指定的 Amazon S3 存储桶。使用 CloudTrail 不产生任何费用。但是,将按照 Amazon S3 的标准费率收费。

无论您是直接使用还是通过 AWS 管理控制台间接使用 AWS API (包括 Elastic Load Balancing API),CloudTrail 都将记录对这些 API 的调用。您可以使用 CloudTrail 收集的信息,来确定发出了哪些 API 调用、使用了哪个源 IP 地址、发出调用的用户以及发出调用的时间等。

要了解有关 CloudTrail 的更多信息,包括如何对其进行配置和启用,请参阅 AWS CloudTrail User Guide。有关 Elastic Load Balancing API 操作的完整列表,请参阅 Elastic Load Balancing API 参考第 2015-12-01 版

要监控负载均衡器的其他操作 (例如,当客户端向负载均衡器发出请求时),请使用访问日志。有关更多信息,请参阅 应用程序负载均衡器的访问日志

启用 CloudTrail 事件日志记录

如果您还没有为您的账户启用 CloudTrail 事件日志记录,请按照下面的步骤操作。

启用 CloudTrail 事件日志记录

  1. https://console.amazonaws.cn/cloudtrail/ 打开 CloudTrail 控制台。

  2. 选择 Get Started Now

  3. 对于 Trail name,键入跟踪的名称。

  4. Apply trail to all regions 保留为 Yes

  5. 为您的 CloudTrail 日志文件选择现有的 S3 存储桶,或者创建新存储桶。要创建新的存储桶,请为 S3 bucket 键入唯一名称。要使用现有存储桶,请将 Create a new S3 bucket 更改为 No,然后从 S3 bucket 中选择您的存储桶。

  6. 选择 Turn on

日志文件写入到 S3 存储桶中的以下位置:

my-bucket/AWSLogs/123456789012/CloudTrail/region/yyyy/mm/dd/

有关更多信息,请参阅 AWS CloudTrail User Guide

CloudTrail 日志文件中的 Elastic Load Balancing 事件记录

CloudTrail 中的日志文件包含以 JSON 格式表示的事件信息。一条事件记录表示一次 AWS API 调用,并包含有关所请求操作的信息,例如请求操作的用户、请求的日期和时间、请求参数以及响应元素等。

这些日志文件包含 AWS 账户的所有 AWS API 调用 (而不只是 Elastic Load Balancing API 调用) 的相关事件。您可通过检查是否有包含值 elasticloadbalancing.amazonaws.comeventSource 元素来查找对 Elastic Load Balancing API 的调用。要查看特定操作 (如 CreateLoadBalancer) 的记录,请检查是否有具有操作名称的 eventName 元素。要查看由 Elastic Load Balancing 代表您对 Amazon EC2 API 进行的调用的记录,请检查是否有包含值 ec2.amazonaws.comeventSource 元素和包含值 elasticloadbalancing.amazonaws.cominvokedBy 元素的记录。例如,当您的负载均衡器扩展以应对流量的变化时,它将调用 Amazon EC2 API 创建和删除网络接口。

以下示例显示了一位用户的 CloudTrail 日志记录,该用户使用 AWS CLI 创建了一个负载均衡器,然后又删除了该负载均衡器。您可以使用 userAgent 元素标识 CLI。可使用 eventName 元素标识请求的 API 调用。有关用户 (Alice) 的信息可在 userIdentity 元素中找到。有关 CloudTrail 日志文件中不同元素和值的更多信息,请参阅 AWS CloudTrail User Guide 中的 CloudTrail 事件参考

{
   "Records": [
   . . .
   {
      "eventVersion: "1.03",
      "userIdentity": { 
         "type": "IAMUser",
         "principalId": "123456789012",
         "arn": "arn:aws:iam::123456789012:user/Alice",
         "accountId": "123456789012",
         "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
         "userName": "Alice"
      },
      "eventTime": "2016-04-01T15:31:48Z",
      "eventSource": "elasticloadbalancing.amazonaws.com",
      "eventName": "CreateLoadBalancer",
      "awsRegion": "us-west-2",
      "sourceIPAddress": "198.51.100.1",
      "userAgent": "aws-cli/1.10.10 Python/2.7.9 Windows/7 botocore/1.4.1",
      "requestParameters": {
         "subnets": ["subnet-8360a9e7","subnet-b7d581c0"],
         "securityGroups": ["sg-5943793c"],
         "name": "my-load-balancer",
         "scheme": "internet-facing"
      },
      "responseElements": {
         "loadBalancers":[{
            "type": "application",
            "loadBalancerName": "my-load-balancer",
            "vpcId": "vpc-3ac0fb5f",
            "securityGroups": ["sg-5943793c"],
            "state": {"code":"provisioning"},
            "availabilityZones": [
               {"subnetId":"subnet-8360a9e7","zoneName":"us-west-2a"},
               {"subnetId":"subnet-b7d581c0","zoneName":"us-west-2b"}
            ],
            "dNSName": "my-load-balancer-1836718677.us-west-2.elb.amazonaws.com",
            "canonicalHostedZoneId": "Z2P70J7HTTTPLU",
            "createdTime": "Apr 11, 2016 5:23:50 PM",
            "loadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/ffcddace1759e1d0",
            "scheme": "internet-facing"
         }]
      },
      "requestID": "b9960276-b9b2-11e3-8a13-f1ef1EXAMPLE",
      "eventID": "6f4ab5bd-2daa-4d00-be14-d92efEXAMPLE",
      "eventType": "AwsApiCall",
      "apiVersion": "2015-12-01",
      "recipientAccountId": "123456789012"
   },
   . . .
   {
      "eventVersion: "1.03",
      "userIdentity": { 
         "type": "IAMUser",
         "principalId": "123456789012",
         "arn": "arn:aws:iam::123456789012:user/Alice",
         "accountId": "123456789012",
         "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
         "userName": "Alice"
      },
      "eventTime": "2016-04-01T15:31:48Z",
      "eventSource": "elasticloadbalancing.amazonaws.com",
      "eventName": "DeleteLoadBalancer",
      "awsRegion": "us-west-2",
      "sourceIPAddress": "198.51.100.1",
      "userAgent": "aws-cli/1.10.10 Python/2.7.9 Windows/7 botocore/1.4.1",
      "requestParameters": {
         "loadBalancerArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/ffcddace1759e1d0"
      },
      "responseElements": null,
      "requestID": "349598b3-000e-11e6-a82b-298133eEXAMPLE",
      "eventID": "75e81c95-4012-421f-a0cf-babdaEXAMPLE",
      "eventType": "AwsApiCall",
      "apiVersion": "2015-12-01",
      "recipientAccountId": "123456789012"
   },
   . . . 
]}

您还可以使用与 CloudTrail 集成的 Amazon 合作伙伴解决方案之一来读取和分析 CloudTrail 日志文件。有关更多信息,请参阅 AWS CloudTrail 合作伙伴页面。