CloudWatch 客服人員疑難排解 - Amazon CloudWatch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CloudWatch 客服人員疑難排解

您可以使用本節中的資訊來疑難排解您可能會遇到的 CloudWatch 客服人員問題。

CloudWatch 代理程式命令列參數

若要查看 CloudWatch 代理程式支援的完整參數清單,請在安裝代理程式的電腦的命令列中輸入下列項目:

amazon-cloudwatch-agent-ctl -help

使用執行命令安裝 CloudWatch 代理程式失敗

若要使用 Systems Manager Run Command 安裝 CloudWatch 代理程式,目標伺服器上的SSM代理程式必須是 2.2.93.0 版或更新版本的SSM代理程式代理程式。如果您的SSM客服人員版本不正確,您可能會看到包含下列訊息的錯誤:

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

如需更新SSM客服人員版本的相關資訊,請參閱 AWS Systems Manager 使用者指南中的安裝和設定SSM客服人員

CloudWatch 客服人員不會啟動

如果 CloudWatch 代理程式無法啟動,您的組態中可能會出現問題。組態資訊會記錄在 configuration-validation.log 檔案中。此檔案在 Linux 伺服器上位於 /opt/aws/amazon-cloudwatch-agent/logs/configuration-validation.log,在執行 Windows Server 的伺服器上則位於 $Env:ProgramData\Amazon\AmazonCloudWatchAgent\Logs\configuration-validation.log

確認 CloudWatch 代理程式正在執行

您可以查詢 CloudWatch 代理程式,以尋找其是否正在執行或已停止。您可以使用 AWS Systems Manager 從遠端執行此操作。您也可以使用命令列,但只會檢查本機伺服器。

使用執行命令查詢 CloudWatch 代理程式的狀態
  1. 在 開啟 Systems Manager 主控台https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 執行命令

    -或-

    如果 AWS Systems Manager 首頁開啟,請向下捲動並選擇探索執行命令

  3. 選擇 執行命令

  4. 命令文件清單中,選擇 AmazonCloudWatch-ManageAgent 旁的按鈕。

  5. Action (動作) 清單中,選擇 status (狀態)

  6. 針對 Optional Configuration Source (選用組態來源),選擇 default (預設) 並將 Optional Configuration Location (選用組態位置) 維持空白。

  7. Target (目標) 區域,選擇要檢查的執行個體。

  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

CloudWatch 客服人員不會啟動,且錯誤提及 Amazon EC2區域

如果代理程式未啟動,且錯誤訊息提及 Amazon EC2區域端點,則您可能已設定代理程式需要存取 Amazon EC2端點,而不授予該存取。

例如,如果您在取決於 Amazon EC2中繼資料的代理程式組態檔案中指定 append_dimensions 參數的值,則必須確保伺服器可以存取 Amazon 的端點EC2。如需這些端點的詳細資訊,請參閱 中的 Amazon Elastic Compute Cloud (Amazon EC2)Amazon Web Services 一般參考

CloudWatch 客服人員不會在 Windows 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 秒的時間進行啟動,因此這會導致代理程式失敗,並出現類似以下的錯誤:

若要修正此問題,請增加服務逾時值。如需詳細資訊,請參閱服務未啟動,且事件 7000 和 7011 已記錄在 Windows 事件記錄檔中

指標在哪裡?

如果 CloudWatch 代理程式已執行,但您在 AWS Management Console 或 中找不到其收集的指標 AWS CLI,請確認您使用的是正確的命名空間。根據預設,代理程式所收集指標的命名空間為 CWAgent。您可以使用代理程式組態檔案中 metrics 區段的 namespace 欄位來自訂此命名空間。如果看不到您預期的指標,請檢查組態檔案以確認所使用的命名空間。

當您第一次下載 CloudWatch 代理程式套件時,代理程式組態檔案為 amazon-cloudwatch-agent.json。此檔案位於您當初執行設定精靈的目錄,或者您可能已將它移到不同的目錄。如果您使用設定精靈,精靈輸出的代理程式組態檔案名為 config.json。如需有關組態檔案的詳細資訊,包括 namespace 欄位,請參閱 CloudWatch 代理程式組態檔案:指標區段

CloudWatch 代理程式在容器中執行或記錄跳轉限制錯誤需要很長時間

當您以容器服務執行 CloudWatch 代理程式,並想要將 Amazon EC2 指標維度新增至代理程式收集的所有指標時,您可能會在代理程式的 1.247354.0 版中看到下列錯誤:

2022-06-07T03:36:11Z E! [processors.ec2tagger] ec2tagger: Unable to retrieve Instance Metadata Tags. This plugin must only be used on an EC2 instance. 2022-06-07T03:36:11Z E! [processors.ec2tagger] ec2tagger: Please increase hop limit to 2 by following this document https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html#configuring-IMDS-existing-instances. 2022-06-07T03:36:11Z E! [telegraf] Error running agent: could not initialize processor ec2tagger: EC2MetadataRequestError: failed to get EC2 instance identity document caused by: EC2MetadataError: failed to make EC2Metadata request status code: 401, request id: caused by:

如果客服人員嘗試從容器IMDSv2內取得中繼資料,而沒有適當的躍點限制,您可能會看到此錯誤。在比 v1.247354.0 更早的代理程式版本中,您可能會遇見此問題但看不到此日誌訊息。

若要解決此問題,請依照設定執行個體中繼資料選項中的指示將跳轉限制增加至 2。

我已更新客服人員組態,但無法在 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

CloudWatch 代理程式檔案和位置

下表列出 CloudWatch 代理程式安裝和搭配使用的檔案,以及其在執行 Linux 或 Windows Server 的伺服器上的位置。

檔案 Linux 位置 Windows Server 位置

控制啟動、停用和重新啟動代理程式的控制指令碼。

/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

代理程式寫入的日誌檔。聯絡 時,您可能需要附加此項目 AWS 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的檔案。如需詳細資訊,請參閱建立 CloudWatch 代理程式組態檔案

/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

包含JSON組態TOML檔案轉換內容的檔案。amazon-cloudwatch-agent-ctl 指令碼會產生此檔案。使用者不應直接修改此檔案。確認JSON要TOML翻譯是否成功非常有用。

/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml/etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.toml

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

包含JSON組態YAML檔案轉換內容的檔案。amazon-cloudwatch-agent-ctl 指令碼會產生此檔案。不應直接修改此檔案。此檔案對於驗證 JSON至 YAML 轉譯是否成功很有用。

/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.yaml or /etc/amazon/amazon-cloudwatch-agent/amazon-cloudwatch-agent.yaml

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

尋找 CloudWatch 客服人員版本的相關資訊

若要在 Linux 伺服器上尋找 CloudWatch 代理程式的版本編號,請輸入下列命令:

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

若要在 Windows Server 上尋找 CloudWatch 代理程式的版本編號,請輸入下列命令:

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

使用此命令是尋找 CloudWatch 代理程式版本的正確方法。如果您使用控制面板中的程式和功能,您會看到不正確的版本編號。

您也可以下載有關代理程式最新變更README的檔案,以及指出目前可供下載的版本編號的檔案。這些檔案位於下列位置 :

  • https://amazoncloudwatch-agent.s3.amazonaws.com/info/latest/RELEASE_NOTEShttps://amazoncloudwatch-agent-region.s3.region.amazonaws.com/info/latest/RELEASE_NOTES

  • https://amazoncloudwatch-agent.s3.amazonaws.com/info/latest/CWAGENT_VERSIONhttps://amazoncloudwatch-agent-region.s3.region.amazonaws.com/info/latest/CWAGENT_VERSION

客服人員產生的 CloudWatch日誌

代理程式會在執行時產生日誌。此日誌包含故障診斷資訊。此日誌是 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。然後,重新設定並重新啟動代理程式。如需詳細資訊,請參閱手動建立或編輯 CloudWatch 代理程式組態檔案

在 1.247350.0 版及更新版本的 CloudWatch 代理程式中,您可以選擇將代理程式組態檔案 agent區段中的 aws_sdk_log_level 欄位設定為下列一或多個選項。如有多個選項,請使用 | 字元進行分隔。

  • LogDebug

  • LogDebugWithSigning

  • LogDebugWithHTTPBody

  • LogDebugRequestRetries

  • LogDebugWithEventStreamBody

如需這些選項的詳細資訊,請參閱 LogLevelType

停止和重新啟動 CloudWatch 代理程式

您可以使用 AWS Systems Manager 或 命令列手動停止 CloudWatch 代理程式。

使用執行命令停止 CloudWatch 代理程式
  1. 在 開啟 Systems Manager 主控台https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 執行命令

    -或-

    如果 AWS Systems Manager 首頁開啟,請向下捲動並選擇探索執行命令

  3. 選擇 執行命令

  4. 命令文件清單中,選擇 AmazonCloudWatch-ManageAgent

  5. 目標區域中,選擇您安裝 CloudWatch 代理程式的執行個體。

  6. Action (動作) 清單中,選擇 stop (停止)

  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

若要重新啟動代理程式,請按照 (選用) 修改 CloudWatch 客服人員的常見組態和具名設定檔 中的說明操作。