本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CloudWatch 客服人員疑難排解
您可以使用本節中的資訊來疑難排解您可能會遇到的 CloudWatch 客服人員問題。
主題
- CloudWatch 代理程式命令列參數
- 使用執行命令安裝 CloudWatch 代理程式失敗
- CloudWatch 客服人員不會啟動
- 確認 CloudWatch 代理程式正在執行
- CloudWatch 客服人員不會啟動,且錯誤提及 Amazon EC2區域
- CloudWatch 客服人員不會在 Windows Server 上啟動
- 指標在哪裡?
- CloudWatch 代理程式在容器中執行或記錄跳轉限制錯誤需要很長時間
- 我已更新客服人員組態,但無法在 CloudWatch 主控台中看到新的指標或日誌
- CloudWatch 代理程式檔案和位置
- 尋找 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 代理程式的狀態
在 開啟 Systems Manager 主控台https://console.aws.amazon.com/systems-manager/
。 在導覽窗格中,選擇 執行命令。
-或-
如果 AWS Systems Manager 首頁開啟,請向下捲動並選擇探索執行命令 。
-
選擇 執行命令。
-
在命令文件清單中,選擇 AmazonCloudWatch-ManageAgent 旁的按鈕。
-
在 Action (動作) 清單中,選擇 status (狀態)。
-
針對 Optional Configuration Source (選用組態來源),選擇 default (預設) 並將 Optional Configuration Location (選用組態位置) 維持空白。
-
在 Target (目標) 區域,選擇要檢查的執行個體。
-
選擇執行。
如果代理程式正在執行,輸出會如下所示。
{ "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 位置 |
---|---|---|
控制啟動、停用和重新啟動代理程式的控制指令碼。 |
|
|
代理程式寫入的日誌檔。聯絡 時,您可能需要附加此項目 AWS Support。 |
|
|
代理程式組態驗證檔案。 |
|
|
在精靈建立代理程式後立即用於設定代理程式JSON的檔案。如需詳細資訊,請參閱建立 CloudWatch 代理程式組態檔案。 |
|
|
如果已從 參數存放區下載此組態檔案,JSON則用於設定代理程式的檔案。 |
|
|
用來指定代理程式要使用的區域和憑證資訊TOML的檔案,覆寫系統預設值。 |
|
|
包含JSON組態TOML檔案轉換內容的檔案。 |
|
|
包含JSON組態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_NOTES
或https://amazoncloudwatch-agent-
region
.s3.region
.amazonaws.com/info/latest/RELEASE_NOTES -
https://amazoncloudwatch-agent.s3.amazonaws.com/info/latest/CWAGENT_VERSION
或https://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 代理程式
在 開啟 Systems Manager 主控台https://console.aws.amazon.com/systems-manager/
。 在導覽窗格中,選擇 執行命令。
-或-
如果 AWS Systems Manager 首頁開啟,請向下捲動並選擇探索執行命令 。
-
選擇 執行命令。
-
在命令文件清單中,選擇 AmazonCloudWatch-ManageAgent。
-
在目標區域中,選擇您安裝 CloudWatch 代理程式的執行個體。
-
在 Action (動作) 清單中,選擇 stop (停止)。
-
將 Optional Configuration Source (選用組態來源) 和 Optional Configuration Location (選用組態位置) 維持空白。
-
選擇執行。
使用命令列在本機停止 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 客服人員的常見組態和具名設定檔 中的說明操作。