Amazon X-Ray 进程守护程序
注意
终止支持通知:2027 年 2 月 25 日,Amazon X-Ray 将停止对 Amazon X-Ray SDK 和进程守护程序的支持。2027 年 2 月 25 日之后,您将不会再收到更新或发行版本。有关支持时间表的更多信息,请参阅 X-Ray SDK 和进程守护程序终止支持时间表。我们建议迁移到 OpenTelemetry。有关迁移到 OpenTelemetry 的更多信息,请参阅从 X-Ray 检测迁移到 OpenTelemetry 检测。
注意
现在,可以使用 CloudWatch 代理从 Amazon EC2 实例和本地服务器中收集指标、日志和跟踪信息。CloudWatch 代理版本 1.300025.0 及更高版本可以从 OpenTelemetry 或 X-Ray 客户端开发工具包中收集跟踪数据,并将这些跟踪数据发送到 X-Ray。使用 CloudWatch 代理,而不是适用于 OpenTelemetry 的 Amazon Distro(ADOT)收集器或 X-Ray 进程守护程序来收集跟踪数据,可以帮助您减少管理的代理数量。有关更多信息,请参阅《CloudWatch 用户指南》中的 CloudWatch 代理。
Amazon X-Ray 进程守护程序是一个软件应用程序,它侦听 UDP 端口 2000 上的流量,收集原始分段数据,并将其中继到 Amazon X-Ray API。进程守护程序与 Amazon X-Ray SDK 结合使用,并且必须正在运行,这样 SDK 发送的数据才能到达 X-Ray 服务。X-Ray 进程守护程序是一个开源项目。您可以关注该项目并在 GitHub 上提交问题和提取请求:github.com/aws/aws-xray-daemon
在 Amazon Lambda 和 Amazon Elastic Beanstalk 上,使用这些服务与 X-Ray 的集成来运行该进程守护程序。每次对采样请求调用函数时,Lambda 都会自动运行该进程守护程序。在 Elastic Beanstalk 上,使用 XRayEnabled 配置选项在您环境中的实例上运行该进程守护程序。有关更多信息,请参阅
要在本地、内部部署或其他 Amazon Web Services 服务 服务上运行 X-Ray 进程守护程序,请下载并运行它,然后赋予其权限以将分段文档上传到 X-Ray。
下载进程守护程序
可以从 Amazon S3、Amazon ECR 或 Docker Hub 下载该进程守护程序,然后在本地运行它,或在启动时在 Amazon EC2 实例上安装它。
验证进程守护程序存档的签名
以 ZIP 存档格式压缩的进程守护程序资产会附带 GPG 签名文件。公有密钥在这里:aws-xray.gpg
您可以使用公有密钥来验证进程守护程序的 ZIP 存档是原始的且未经过修改。首先,使用 GnuPG
导入公有密钥
-
下载公有密钥。
$BUCKETURL=https://aws-xray-assets.cn-north-1.s3.cn-north-1.amazonaws.com.cn/$wget $BUCKETURL/xray-daemon/aws-xray.gpg -
将公有密钥导入到您的密钥环中。
$gpg --import aws-xray.gpggpg: /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 存档的签名。
验证存档的签名
-
下载存档和签名文件。
$BUCKETURL=https://aws-xray-assets.cn-north-1.s3.cn-north-1.amazonaws.com.cn/$wget $BUCKETURL/xray-daemon/aws-xray-daemon-linux-3.x.zip$wget $BUCKETURL/xray-daemon/aws-xray-daemon-linux-3.x.zip.sig -
运行
gpg --verify来验证签名。$gpg --verify aws-xray-daemon-linux-3.x.zip.sig aws-xray-daemon-linux-3.x.zipgpg: 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
有关特定于平台的详细说明,请参阅下列主题:
-
Linux(本地)-在 Linux 上运行 X-Ray 进程守护程序
-
Windows(本地)-在 Windows 上运行 X-Ray 进程守护程序
-
Elastic Beanstalk – 在 Amazon Elastic Beanstalk上运行 X-Ray 进程守护程序
-
Amazon EC2 – 在 Amazon EC2 上运行 X-Ray 进程守护程序
-
Amazon ECS – 在 Amazon ECS 上运行 X-Ray 进程守护程序
您可以使用命令行选项或配置文件进一步自定义进程守护程序的行为。有关详细信息,请参阅配置 Amazon X-Ray 进程守护程序。
授予进程守护程序向 X-Ray 发送数据的权限
X-Ray 进程守护程序使用 Amazon SDK 上传跟踪数据到 X-Ray,它需要具有权限的 Amazon 凭证来完成此操作。
在 Amazon EC 上,进程守护程序自动使用实例的实例配置文件角色。有关在本地运行该进程守护程序所需凭证的相关信息,请参阅在本地运行应用程序。
如果您在多个位置(凭证文件、实例配置文件或环境变量)指定凭证,SDK 会提供证书链,决定使用哪个凭证。有关向 SDK 提供凭证的更多信息,请参阅《Amazon SDK for Go 开发人员指南》中的指定凭证
进程守护程序的凭证所属的 IAM 角色或用户必须有权代表您写入数据到服务。
-
要在 Amazon EC2 上使用进程守护程序,请创建新实例配置文件角色,或者为现有角色添加托管策略。
-
要在 Elastic Beanstalk 上使用进程守护程序,请将托管策略添加到 Elastic Beanstalk 默认实例配置文件角色。
-
请参阅在本地运行应用程序,了解如何在本地运行进程守护程序。
有关更多信息,请参阅 对 Amazon X-Ray 进行身份和访问管理。
X-Ray 进程守护程序日志
进程守护程序输出有关其当前配置和发送到 Amazon X-Ray 的分段的信息。
2016-11-24T06:07:06Z [Info] Initializing Amazon 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 命令行选项或配置文件来设置日志文件的路径。您也可以设置日志级别并禁用日志轮换。有关说明,请参阅配置 Amazon X-Ray 进程守护程序:
在 Elastic Beanstalk 中,平台将设置进程守护程序日志的位置。有关详细信息,请参阅在 Amazon Elastic Beanstalk上运行 X-Ray 进程守护程序。