设置 Kinesis Data Generator

有了Firehose 之后, 设置 Kinesis 数据生成器开始向其发送测试数据

Amazon Kinesis 数据生成器 (KDG) 可轻松将数据发送到 Kinesis Streams 或 Kinesis Firehose。

注意:在 AWS 账户中设置 Kinesis 数据生成器 (KDG) 将创建一组 Cognito 凭证。能够使用这些凭证进行身份验证的用户将能够向账户中的所有 Kinesis 数据流和 Kinesis Firehoses 发布。在将数据发送到 Kinesis 之前,必须先在 AWS 账户中创建一个具有访问 Amazon Kinesis 权限的 Amazon Cognito 用户。

为了简化此过程,使用 Amazon CloudFormation 模板来创建用户并分配足够的权限以使用 KDG。打开下面链接:

https://console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks/new?stackName=Kinesis-Data-Generator-Cognito-User&templateURL=https://aws-kdg-tools.s3.us-west-2.amazonaws.com/cognito-setup.yaml

输入 cognito的用户名和密码:

image-20240616191109590

一直点击下一步,直到最后的创建:

image-20240616191145360

成功创建 CloudFormation 堆栈后,需要使用特殊 URL 来访问 KDG。CloudFormation 在堆栈生成过程中创建此 URL,可以在 CloudFormation 堆栈的“输出”部分找到它。

image-20240616191347720

使用用户名和密码登录:

登录成功后从 区域 下拉菜单中选择region 和stream:

image-20240616191532173

KDG 扩展了 faker.js,这是一个开源随机数据生成器。有关 faker.js 可以“伪造”的项目的完整文档,请参阅 faker.js 文档。

接下来, 向下滚动到 Record template 部分

  • 在写着 Template 1 的文本字段中, 将其更改为 Web Access Log
  • 在下面的空文本框中, 复制/粘贴以下内容:
{
    "host": "{{internet.domainName}}",
    "ident": "-",
    "auth": "-",
    "@timestamp": "{{date.utc("YYYY-MM-DDTHH:mm:ss")}}",
    "bytes": {{random.number(1000000)}},
    "verb": "{{random.weightedArrayElement(
        {
            "weights": [0.8,0.1,0.1],
            "data": ["GET","PUT","POST"]
        }
    )}}",
    "url": "{{internet.url}}",
    "http": "HTTP/1.1",
    "status": {{random.weightedArrayElement(
        {
            "weights": [0.9,0.05,0.05],
            "data": ["200","404","503"]
        }
    )}},
    "agent": "{{internet.userAgent}}",
    "clientip": "{{internet.ip}}",
    "geo": {
        "src": "{{address.countryCode}}",
        "dest": "{{address.countryCode}}",
        "coordinates": {
            "lat": "{{address.latitude}}",
            "lon": "{{address.longitude}}"
        }
    }
}

image-20240616224511303

我们定义了样本数据将使用的数据模板。 要验证将发送的确切数据类型, 请单击 Test Template 按钮

验证我们的样本数据格式正确后, 单击 Send Data 按钮.

现在已完成数据管道设置, 并开始向集群传输示例 Web 日志数据

请保持此选项卡打开并在后台发送数据