适用于 Microsoft Windows 的 Amazon Kinesis 代理入门 - 适用于 Microsoft Windows 的 Amazon Kinesis 代理

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

适用于 Microsoft Windows 的 Amazon Kinesis 代理入门

您可以使用适用于微软 Windows 的 Amazon Kinesis 代理程序(适用于 Windows 的 Kinesis 代理)从 Windows 队列收集、分析、转换和流式传输日志、事件和指标到各种 AWS 服务。以下信息包含用于 Windows 的 Kinesis 代理程序的先决条件和分步说明。

Prerequisites

在安装 Windows Kinesis 代理之前,请确保您具备以下先决条件:

设置 AWS 账户

如果您还没有 AWS 账户,请完成以下步骤创建一个账户。

如何注册 AWS 账户
  1. 打开 https://portal.aws.amazon.com/billing/signup

  2. 按照屏幕上的说明进行操作。

    在注册时,您将接到一通电话,要求您使用电话键盘输入一个验证码。

自行创建管理员用户并将该用户添加到管理员组(控制台)
  1. 登录到IAM 控制台作为帐户所有者,方法是选择根用户并输入您的 AWS 账户电子邮件地址。在下一页上,输入您的密码。

    注意

    强烈建议您遵守以下最佳实践:使用AdministratorIAM 用户,遵守并妥善保存根用户凭证。只在执行少数账户和服务管理任务时才作为根用户登录。

  2. 在导航窗格中,选择用户,然后选择添加用户

  3. 对于 User name (用户名),输入 Administrator

  4. 选中 AWS Management Console access (AWS 管理控制台访问) 旁边的复选框。然后选择自定义密码,并在文本框中输入新密码。

  5. (可选)默认情况下,AWS 要求新用户在首次登录时创建新密码。您可以清除 User must create a new password at next sign-in (用户必须在下次登录时创建新密码) 旁边的复选框以允许新用户在登录后重置其密码。

  6. 选择后续:权限。

  7. 设置权限下,选择将用户添加到组

  8. 选择创建组

  9. Create group (创建组) 对话框中,对于 Group name (组名称),输入 Administrators

  10. 选择筛选策略,然后选择AWS 托管-工作职能来过滤表格内容。

  11. 在策略列表中,选中 AdministratorAccess 的复选框。然后选择 Create group (创建组)

    注意

    您必须先激活 IAM 用户和角色对账单的访问权限,然后才能使用 AdministratorAccess 权限访问 AWS 账单和成本管理控制台。为此,请按照“向账单控制台委派访问权限”教程第 1 步中的说明进行操作。

  12. 返回到组列表中,选中您的新组所对应的复选框。如有必要,选择 Refresh 以在列表中查看该组。

  13. 选择后续:标签

  14. (可选)通过以键值对的形式附加标签来向用户添加元数据。有关在 IAM 中使用标签的更多信息,请参阅标记 IAM 实体中的IAM 用户指南

  15. 选择后续:审核以查看要添加到新用户的组成员资格的列表。如果您已准备好继续,请选择 Create user

您可使用此相同的流程创建更多的组和用户,并允许您的用户访问 AWS 账户资源。要了解有关使用策略限制用户对特定 AWS 资源的权限的信息,请参阅访问管理示例策略

注册 AWS 并创建管理员账户
  1. 如果您没有 AWS 账户,请打开https://aws.amazon.com/。选择创建 AWS 账户,然后按照联机说明操作。

    作为注册流程的一部分,您会收到一个电话,需要您使用电话键盘输入一个 PIN 码。

  2. 登录 AWS 管理控制台,并通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  3. 在导航窗格中,选择 Groups (组),然后选择 Create New Group (创建新组)

  4. 对于组名,输入组的名称,例如 Administrators,然后选择 下一步

  5. 在策略列表中,选中 AdministratorAccess 策略旁边的复选框。您可以使用 Filter (筛选) 菜单和 Search (搜索) 框来筛选策略列表。

  6. 选择 Next Step。选择创建组,您的新组将显示在组名下。

  7. 在导航窗格中选择用户,然后选择创建新用户

  8. 在框 1 中,输入用户名,清除为每个用户生成访问密钥旁的复选框,然后选择创建

  9. 在用户列表中,选择您刚创建的用户的名称(而不是复选框)。您可以使用搜索框来搜索该用户名称。

  10. 选择选项卡,然后选择将用户添加到多个组

  11. 选中管理员组旁的复选框,然后选择添加到多个组

  12. 选择 Security Credentials (安全证书) 选项卡。在 Sign-In Credentials (登录证书) 下,选择 Manage Password (管理密码)

  13. 选择分配自定义密码,在密码确认密码框中输入密码,然后选择应用

安装适用于 Windows 的 Kinesis 代理

在 Windows 上有三种方法来安装适用于 Windows 的 Kinesis 代理:

  • 使用 MSI(Windows 安装程序包)进行安装。

  • 从安装AWS Systems Manager,这是一组用于管理服务器和台式机的服务。

  • 运行 PowerShell 脚本。

注意

下列说明偶尔会使用术语 KinesisTapAWSKinesisTap。这些单词表达的含义与 Windows Kinesis 代理相同,但在执行这些指令时,您必须原样指定它们。

使用 MSI 安装适用于 Windows 的 Kinesis 代理

您可以从 Windows MSI 软件包下载最新的 Kinesis 代理程序包从GitHub 上的动态代理窗口存储库。下载 MSI 后,请使用 Windows 启动它并按照安装程序提示进行操作。安装后,你可以像卸载任何 Windows 应用程序一样。

此外,也可以使用密西西克命令以静默方式安装、打开日志记录和卸载,如以下示例所示。ReplaceAWSKinesisTap.1.1.216.4.msi with the appropriate version of Kinesis Agent for Windows for your application.

要以静默方式安装适用于 Windows 的 Kinesis 代理:

msiexec /i AWSKinesisTap.1.1.216.4.msi /q

将安装消息记录到名为logfile.log

msiexec /i AWSKinesisTap.1.1.216.4.msi /q /L*V logfile.log

要使用命令提示符卸载适用于 Windows 的 Kinesis 代理,请执行以下操作:

msiexec.exe /x {ADAB3982-68AA-4B45-AE09-7B9C03F3EBD3} /q

使用 AWS Systems Manager 安装适用于 Windows 的 Kinesis 代理

使用 Systems Manager Run Command,按照以下步骤安装适用于 Windows 的 Kinesis 代理。有关 Run Command 的更多信息,请参阅AWS Systems Manager Run Command中的AWS Systems Manager 用户指南。除了使用 Systems Manager Run Command 之外,您还可以使用 Systems Manager维护时段状态管理器来自动部署适用于 Windows 的 Kinesis 代理程序。

注意

适用于 Windows 的 Kinesis 代理的 Systems Manager 安装在AWS Systems Manager但以下情况除外:

  • cn-north-1

  • cn-northwest-1

  • 所有 AWS GovCloud 区域。

使用 Systems Manager 安装适用于 Windows 的 Kinesis 代理
  1. 确保在您希望安装适用于 Windows 的 Kinesis 代理程序的实例上,已经安装了版本 2.2.58.0 或更高版本。有关更多信息,请参阅 。在 Windows 实例上安装和配置 SSM 代理中的AWS Systems Manager 用户指南

  2. 打开 AWS Systems Manager 控制台,网址为https://console.aws.amazon.com/systems-manager/

  3. 从导航窗格的Node Management中,选择Run Command,然后选择Run Command

  4. 命令文档列表中,选择AWS 配置 AWS-ConfigreAWSPackage文档.

    选择 AWS-ConfigreAWSPackage 文档。
  5. UDER命令参数, 用于名称,输入冬奥会。将其他设置保留默认值。

    注意

    离开版本空白以指定 AWSKinesiStap 软件包的最新版本。(可选)您可以输入要安装的特定版本。

    在命令参数中指定 AWSKINE 软件包。
  6. UDER目标中,指定要对其运行命令的实例。您可以选择根据与实例关联的标签指定实例,也可以手动选择实例,也可以指定包含实例的资源组。

  7. 将所有其他设置保留默认值,然后选择运行

使用 PowerShell 安装适用于 Windows 的 Kinesis 代理

使用文本编辑器将以下命令复制到文件中,然后将其保存为 PowerShell 脚本。我们使用InstallKinesisAgent.ps1,请参阅以下示例。

Param( [ValidateSet("prod", "beta", "test")] [string] $environment = 'prod', [string] $version, [string] $baseurl ) # Self-elevate the script if required. if (-Not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')) { if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000) { $CommandLine = '-File "' + $MyInvocation.MyCommand.Path + '" ' + $MyInvocation.UnboundArguments Start-Process -FilePath PowerShell.exe -Verb Runas -ArgumentList $CommandLine Exit } } # Allows input to change base url. Useful for testing. if ($baseurl) { if (!$baseUrl.EndsWith("/")) { throw "Invalid baseurl param value. Must end with a trailing forward slash ('/')" } $kinesistapBaseUrl = $baseurl } else { $kinesistapBaseUrl = "https://s3-us-west-2.amazonaws.com/kinesis-agent-windows/downloads/" } Write-Host "Using $kinesistapBaseUrl as base url" $webClient = New-Object System.Net.WebClient try { $packageJson = $webClient.DownloadString($kinesistapBaseUrl + 'packages.json' + '?_t=' + [System.DateTime]::Now.Ticks) | ConvertFrom-Json } catch { throw "Downloading package list failed." } if ($version) { $kinesistapPackage = $packageJson.packages | Where-Object { $_.packageName -eq "AWSKinesisTap.$version.nupkg" } if ($null -eq $kinesistapPackage) { throw "No package found matching input version $version" } } else { $packageJson = $packageJson.packages | Where-Object { $_.packageName -match ".nupkg" } $kinesistapPackage = $packageJson[0] } $packageName = $kinesistapPackage.packageName $checksum = $kinesistapPackage.checksum #Create %TEMP%/kinesistap if not exists $kinesistapTempDir = Join-Path $env:TEMP 'kinesistap' if (![System.IO.Directory]::Exists($kinesistapTempDir)) {[void][System.IO.Directory]::CreateDirectory($kinesistapTempDir)} #Download KinesisTap.x.x.x.x.nupkg package $kinesistapNupkgPath = Join-Path $kinesistapTempDir $packageName $webClient.DownloadFile($kinesistapBaseUrl + $packageName, $kinesistapNupkgPath) $kinesistapUnzipPath = $kinesistapNupkgPath.Replace('.nupkg', '') # Calculates hash of downloaded file. Downlevel compatible using .Net hashing on PS < 4 if ($PSVersionTable.PSVersion.Major -ge 4) { $calculatedHash = Get-FileHash $kinesistapNupkgPath -Algorithm SHA256 $hashAsString = $calculatedHash.Hash.ToLower() } else { $sha256 = New-Object System.Security.Cryptography.SHA256CryptoServiceProvider $calculatedHash = [System.BitConverter]::ToString($sha256.ComputeHash([System.IO.File]::ReadAllBytes($kinesistapNupkgPath))) $hashAsString = $calculatedHash.Replace("-", "").ToLower() } if ($checksum -eq $hashAsString) { Write-Host 'Local file hash matches checksum.' -ForegroundColor Green } else { throw ("Get-FileHash does not match! Package may be corrupted.") } #Delete Unzip path if not empty if ([System.IO.Directory]::Exists($kinesistapUnzipPath)) {Remove-Item –Path $kinesistapUnzipPath -Recurse -Force} #Unzip KinesisTap.x.x.x.x.nupkg package $null = [System.Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem') [System.IO.Compression.ZipFile]::ExtractToDirectory($kinesistapNupkgPath, $kinesistapUnzipPath) #Execute chocolaeyInstall.ps1 in the package and wait for completion. $installScript = Join-Path $kinesistapUnzipPath '\tools\chocolateyInstall.ps1' & $installScript # Verify service installed. $serviceName = 'AWSKinesisTap' $service = Get-Service -Name $serviceName -ErrorAction Ignore if ($null -eq $service) { throw ("Service not installed correctly.") } else { Write-Host "Kinesis Tap Installed." -ForegroundColor Green Write-Host "After configuring run the following to start the service: Start-Service -Name $serviceName." -ForegroundColor Green }

打开提升的命令提示符窗口。在文件下载到的目录中,使用以下命令来运行脚本:

PowerShell.exe -File ".\InstallKinesisAgent.ps1"

若要安装适用于 Windows 的特定版本的 Kinesis 代理,请将-version选项:

PowerShell.exe -File ".\InstallKinesisAgent.ps1" -version "version"

Replaceversion使用 Windows 版本号的有效 Kinesis 代理程序。有关版本信息,请参阅GitHub 上的动态代理窗口存储库

有许多部署工具可以远程执行 PowerShell 脚本。它们可用于在服务器机群或台式机上自动完成的 Windows Kinesis 代理安装。

配置和启动适用于 Windows 的 Kinesis 代理

安装适用于 Windows 的 Kinesis 代理后,您必须配置并启动代理。在此之后,应该无需进一步的操作干预。

配置和启动适用于 Windows 的 Kinesis 代理的步骤
  1. 创建和部署适用于 Windows 配置文件的 Kinesis 代理。此文件配置源、接收器和管道,以及其他全局配置项。

    有关 Windows 配置 Kinesis 代理的更多信息,请参阅为微软 Windows 配置 Amazon Kinesis 运行代理

    有关您可以自定义并安装的完整配置文件示例,请参阅适用于 Windows 的 Kinesis 代理配置示例

  2. 打开一个提升的 PowerShell 命令提示符窗口,然后使用以下 PowerShell 命令启动 Windows Kinesis 代理程序:

    Start-Service -Name AWSKinesisTap