AWS X-Ray 守护程序 - AWS X-Ray
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS X-Ray 守护程序

AWS X-Ray 守护程序是一个软件应用程序,它侦听 UDP 端口 2000 上的流量,收集原始分段数据,并将其中继到 AWS X-Ray API。守护程序与 AWS X-Ray 开发工具包结合使用,并且必须正在运行,这样开发工具包发送的数据才能到达 X-Ray 服务。

注意

X-Ray 守护程序是一个开源项目。您可以关注该项目并在 GitHub 上提交问题和提取请求:github.com/aws/aws-xray-daemon

在 AWS Lambda 和 AWS Elastic Beanstalk 上,使用这些服务与 X-Ray 的集成来运行该守护程序。每次对采样请求调用函数时,Lambda 都会自动运行该守护程序。在 Elastic Beanstalk 上,使用 XRayEnabled 配置选项在您环境中的实例上运行该守护程序。

要在本地、内部部署或其他 AWS 服务上运行 X-Ray 守护程序,请从 Amazon S3 下载它运行它,然后赋予其权限以将分段文档上传到 X-Ray。

下载守护程序

您可以从 Amazon S3 下载守护程序并在本地运行,或将它安装在 Amazon EC2 实例上(启动时)。

X-Ray 守护程序安装程序和可执行文件

这些链接始终指向最新版本的守护程序。要下载特定版本,请将 3.x 替换为版本号。例如:2.1.0

X-Ray 资产被复制到每个受支持区域的存储桶。要使用最接近您或您的 AWS 资源的存储桶,请将上述链接中的区域替换为您的区域。

https://aws-xray-assets.cn-north-1.s3.cn-north-1.amazonaws.com.cn/xray-daemon/aws-xray-daemon-3.x.rpm
注意

可用的本地区域为 cn-north-1cn-northwest-1

验证守护程序存档的签名

以 ZIP 存档格式压缩的守护程序资产会附带 GPG 签名文件。公有密钥在这里:aws-xray.gpg

您可以使用公有密钥来验证守护程序的 ZIP 存档是原始的且未经过修改。首先,使用 GnuPG 导入公有密钥。

导入公有密钥

  1. 下载公有密钥。

    $ BUCKETURL=https://aws-xray-assets.cn-north-1.s3.cn-north-1.amazonaws.com.cn/ $ wget $BUCKETURL/xray-daemon/aws-xray.gpg
  2. 将公有密钥导入到您的密钥环中。

    $ gpg --import aws-xray.gpg gpg: /Users/me/.gnupg/trustdb.gpg: trustdb created gpg: key 7BFE036BFE6157D3: public key "AWS X-Ray <aws-xray@amazon.com>" imported gpg: Total number processed: 1 gpg: imported: 1

使用导入的密钥来验证守护程序 ZIP 存档的签名。

验证存档的签名

  1. 下载存档和签名文件。

    $ BUCKETURL=https://aws-xray-assets.cn-north-1.s3.cn-north-1.amazonaws.com.cn/ $ wget $BUCKETURL/xray-daemon/aws-xray-daemon-linux-3.0.0.zip $ wget $BUCKETURL/xray-daemon/aws-xray-daemon-linux-3.0.0.zip.sig
  2. 运行 gpg --verify 来验证签名。

    $ gpg --verify aws-xray-daemon-linux-3.0.0.zip.sig aws-xray-daemon-linux-3.0.0.zip gpg: Signature made Wed 19 Apr 2017 05:06:31 AM UTC using RSA key ID FE6157D3 gpg: Good signature from "AWS X-Ray <aws-xray@amazon.com>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: EA6D 9271 FBF3 6990 277F 4B87 7BFE 036B FE61 57D3

请注意有关信任的警告。只有当您或您信任的某个人对文件进行了签名,密钥才是可信的。这并不意味着签名无效,只是您尚未验证公有密钥而已。

运行守护程序

在本地从命令行运行守护程序。使用 -o 选项以本地模式运行,-n 选项设置区域。

~/Downloads$ ./xray -o -n us-east-2

有关特定于平台的详细说明,请参阅下列主题:

您可以使用命令行选项或配置文件进一步自定义守护程序的行为。有关详细信息,请参阅配置 AWS X-Ray 守护程序

授予守护程序向 X-Ray 发送数据的权限

X-Ray 守护程序使用 AWS 开发工具包上传跟踪数据到 X-Ray,它需要具有权限的 AWS 凭证来完成此操作。

在 Amazon EC2 上,守护程序自动使用实例的实例配置文件角色。在本地,将您的访问密钥保存到您的用户目录中名为 credentials 的文件夹下名为 .aws 的文件内。

例 ~/.aws/credentials

[default] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

如果您在多个位置 (凭证文件、实例配置文件或环境变量) 指定凭证,开发工具包会提供证书链,决定使用哪个凭证。有关向开发工具包提供凭证的更多信息,请参阅适用于 Go 的 AWS 开发工具包中的指定凭证

守护程序的凭证所属的 IAM 角色或用户必须有权代表您写入数据到服务。

  • 要在 Amazon EC2 上使用守护程序,请创建新实例配置文件角色或者添加托管策略到现有角色。

  • 要在 Elastic Beanstalk 上使用守护程序,请将托管策略添加到 Elastic Beanstalk 默认实例配置文件角色。

  • 要在本地运行守护程序,请创建 IAM 用户并将其访问密钥保存到计算机上。

有关更多信息,请参阅适用于 AWS X-Ray 的 Identity and Access Management

X-Ray 守护程序日志

守护程序输出有关其当前配置和发送到 AWS X-Ray 的分段的信息。

2016-11-24T06:07:06Z [Info] Initializing AWS X-Ray daemon 2.1.0 2016-11-24T06:07:06Z [Info] Using memory limit of 49 MB 2016-11-24T06:07:06Z [Info] 313 segment buffers allocated 2016-11-24T06:07:08Z [Info] Successfully sent batch of 1 segments (0.123 seconds) 2016-11-24T06:07:09Z [Info] Successfully sent batch of 1 segments (0.006 seconds)

默认情况下,守护程序将日志输出到 STDOUT。如果您在后台运行守护程序,请使用 --log-file 命令行选项或配置文件来设置日志文件的路径。您也可以设置日志级别并禁用日志轮换。有关说明,请参阅配置 AWS X-Ray 守护程序

在 Elastic Beanstalk 中,平台将设置守护程序日志的位置。有关详细信息,请参阅在 AWS Elastic Beanstalk 上运行 X-Ray 守护程序