CloudWatch 的故障排查agent - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

CloudWatch 的故障排查agent

可以使用以下信息帮助解决 CloudWatch 代理问题。

CloudWatcha绅士c奥曼德lineparameters

要查看 CloudWatch 代理支持的参数的完整列表,请在安装了此代理的计算机上的命令行处输入以下命令:

amazon-cloudwatch-agent-ctl -help

安装 CloudWatcha绅士u唱 Run Commandfails

要使用 Systems Manager 运行命令安装 CloudWatch 代理,目标服务器上的 SSM 代理必须为 2.2.2.93.0 或更高版本。如果 SSM 代理不是正确的版本,您可能会看到以下错误消息:

no latest version found for package AmazonCloudWatchAgent on platform linux
failed to download installation package reliably

有关更新 SSM 代理版本的信息,请参阅安装和配置 SSM 代理中的Amazon Systems Manager用户指南

CloudWatcha绅士w上没有start

如果 CloudWatch 代理无法启动,则您的配置可能存在问题。配置信息会记录到 configuration-validation.log 文件中。在 Linux 服务器上,该文件位于 /opt/aws/amazon-cloudwatch-agent/logs/configuration-validation.log 中,在运行 Windows Server 的服务器上,该文件位于 $Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\configuration-validation.log 中。

VerifytCloudWatcha绅士isrunning

您可以查询 CloudWatch 代理以确定它是正在运行还是已停止。可使用 Amazon Systems Manager 远程执行此操作。也可以使用命令行,但仅用于检查本地服务器。

使用运行命令查询 CloudWatch 代理的状态

  1. 通过以下网址打开 Systems Manager 控https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择Run Command

    -或者-

    如果Amazon Systems Manager主页打开,向下滚动并选择浏览 Run Command

  3. 选择运行命令

  4. Command document (命令文档) 列表中,选择 AmazonCloudWatch-ManageAgent 旁边的按钮。

  5. 操作列表中,选择状态

  6. 对于 Optional Configuration Source (可选的配置源),选择 default (默认值) 并将 Optional Configuration Location (可选的配置位置) 保留为空。

  7. 目标区域,选择要检查的实例。

  8. 选择运行

如果该代理正在运行,输出将类似于以下内容。

{ "status": "running", "starttime": "2017-12-12T18:41:18", "version": "1.73.4" }

如果该代理已停止,"status" 字段将显示 "stopped"

使用命令行在本地查询 CloudWatch 代理的状态

  • 在 Linux 服务器上,输入以下命令:

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status

    在运行 Windows Server 的服务器上,以管理员身份在 PowerShell 中输入以下命令:

    & $Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1 -m ec2 -a status

CloudWatcha绅士w上没有s挞,和errorm使用 Amazon EC2 地区

如果代理将不会启动,并且错误消息中提及了 Amazon EC2 区域终端节点,则您可能已将代理配置为需要访问 Amazon EC2 终端节点但未授予该访问权限。

例如,如果为append_dimensions参数(取决于 Amazon EC2 元数据),并且您使用代理,则必须确保服务器能够访问 Amazon EC2 的终端节点。有关这些终端节点的更多信息,请参阅Amazon Elastic Compute Cloud (Amazon EC2)中的Amazon Web Services 参考

CloudWatcha绅士w上没有sWindows Server 上的馅饼

在 Windows Server 上,您可以可能看到以下错误:

Start-Service : Service 'Amazon CloudWatch Agent (AmazonCloudWatchAgent)' cannot be started due to the following error: Cannot start service AmazonCloudWatchAgent on computer '.'. At C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1:113 char:12 + $svc | Start-Service + ~~~~~~~~~~~~~ + CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service], ServiceCommandException + FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceCommand

要修复此问题,请首先确保该服务器服务正在运行。如果代理尝试在服务器服务未运行时启动,则可以看到此错误。

如果服务器服务已在运行中,则可能出现以下问题。在某些 Windows Server 安装中,CloudWatch 代理需要超过 30 秒才能启动。由于默认情况下,Windows Server 的服务启动超时只有 30 秒,因此这会导致代理失败,并出现类似于以下内容的错误:

若要解决此问题,请增加服务超时值。有关详细信息,请参阅服务无法启动,并在 Windows 事件日志中记录事件 7000 和 7011

无法更改f印度cWindows Server 上的重新安排

在 Windows Server 上,如果凭证所在的位置不是 $SystemDrive\\Users\\Administrator\\.aws(在 Windows Server 2008 R2 或 Windows Server 2012 上)或 “$SystemDrive\\Documents and Settings\\Administrator\\.aws(在 Windows Server 2003 上),您可以在 common.toml 中使用 shared_credential_file 选项指定自己的凭证路径。

如果您没有凭证文件,则必须创建一个。有关更多信息,请参阅(可选)修改c永蒙c的配置pRoxy 或区域information

其中a重新m电视?

如果 CloudWatch 代理已运行,但您在Amazon Web Services Management Console或Amazon CLI下方,确认您使用了正确的命名空间。默认情况下,该代理收集的指标的命名空间为 CWAgent。您可以使用代理配置文件的 metrics 部分中的 namespace 字段自定义该命名空间。如果未看到所需的指标,请检查配置文件以确认正在使用该命名空间。

在首次下载 CloudWatch 代理软件包时,代理配置文件为amazon-cloudwatch-agent.json。该文件位于运行配置向导的目录中,或者您可能已将其移到其他目录中。如果使用配置向导,该向导的代理配置文件输出命名为 config.json。有关配置文件(包括 namespace 字段)的更多信息,请参阅 CloudWatcha绅士c配置file 指标section

我更新了代理配置,但在 CloudWatch 控制台中看不到新的指标或日志

如果您更新 CloudWatch 代理配置文件,则下次启动代理时需要使用fetch-config选项。例如,如果您将更新的文件存储在本地计算机上,请输入以下命令:

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -s -m ec2 -c file:configuration-file-path

CloudWatcha绅士fIles 和locations

下表列出了 CloudWatch 代理安装和使用的文件及其在运行 Linux 或 Windows Server 的服务器上的位置。

文件 LinuxLocation Windows ServerLocation

控制代理的启动、停止和重新启动的控制脚本。

/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl 或者 /usr/bin/amazon-cloudwatch-agent-ctl

$Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1

代理写入的日志文件。联系 Amazon Web Services Support 时,您可能需要附上此信息。

/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log 或者 /var/log/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.log

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log

代理配置验证文件。

/opt/aws/amazon-cloudwatch-agent/logs/configuration-validation.log 或者 /var/log/amazon/amazon-cloudwatch-agent/configuration-validation.log

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\configuration-validation.log

在向导创建后立即用于配置代理的 JSON 文件。有关更多信息,请参阅创建 CloudWatcha绅士c配置file

/opt/aws/amazon-cloudwatch-agent/bin/config.json

$Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\config.json

此 JSON 文件用于配置代理(如果此配置文件已从参数存储中下载)。

/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json 或者 /etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.json

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json

用于指定代理使用的区域和凭证信息的 TOML 文件(覆盖系统默认值)。

/opt/aws/amazon-cloudwatch-agent/etc/common-config.toml 或者 /etc/amazon/amazon-cloudwatch-agent/common-config.toml

$Env:ProgramData\Amazon\AmazonCloudWatchAgent\common-config.toml

日志gCloudWatch 的精力agent

该代理在运行时生成一个日志。该日志包含故障排除信息。该日志是 amazon-cloudwatch-agent.log 文件。在 Linux 服务器上,该文件位于 /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log 中,在运行 Windows Server 的服务器上,该文件位于 $Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\amazon-cloudwatch-agent.log 中。

您可以将代理配置为在 amazon-cloudwatch-agent.log 文件中记录其他详细信息。在代理配置文件中,在agent部分中,设置debug字段将更改为true,然后重新配置并重新启动 CloudWatch 代理。要禁止记录该额外信息,请将 debug 字段设置为 false,然后重新配置并重新启动该代理。有关更多信息,请参阅 手动方式c雷达或eCloudWatcha绅士c配置file

停止和r安装 CloudWatch 的 CloudWatchagent

您可 CloudWatch 使用Amazon Systems Manager或命令行。

使用 “运行命令” 停止 CloudWatch 代理

  1. 通过以下网址打开 Systems Manager 控https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择Run Command

    -或者-

    如果Amazon Systems Manager主页打开,向下滚动并选择浏览 Run Command

  3. 选择运行命令

  4. 命令文档列表中,选择 AmazonCloudWatch-ManageAgent

  5. 目标区域中,选择安装了 CloudWatch 代理的实例。

  6. 操作列表中,选择停止

  7. Optional Configuration Source (可选的配置源)Optional Configuration Location (可选的配置位置) 保留空白。

  8. 选择运行

使用命令行在本地停止 CloudWatch 代理

  • 在 Linux 服务器上,输入以下命令:

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a stop

    在运行 Windows Server 的服务器上,以管理员身份在 PowerShell 中输入以下命令:

    & $Env:ProgramFiles\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1 -m ec2 -a stop

要重新启动该代理,请按照启动 CloudWatchagent中的说明进行操作。