

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

# CloudWatch 解決方案：Amazon EC2 上的 Tomcat 工作負載
<a name="Solution-Tomcat-On-EC2"></a>

此解決方案可協助您透過 CloudWatch 代理程式，為在 EC2 執行個體上執行的 Tomcat 伺服器設定開箱即用的指標收集功能。除此之外，還可協助您設定預先設定的 CloudWatch 儀表板。如需所有 CloudWatch 可觀測性解決方案的一般資訊，請參閱[CloudWatch 可觀測性解決方案](Monitoring-Solutions.md)。

**Topics**
+ [要求](#Solution-Tomcat-On-EC2-Requirements)
+ [優勢](#Solution-Tomcat-On-EC2-Benefits)
+ [成本](#Solution-Tomcat-On-EC2-Costs)
+ [此解決方案的 CloudWatch 代理程式組態](#Solution-Tomcat-CloudWatch-Agent)
+ [部署解決方案的代理程式](#Solution-Tomcat-Agent-Deploy)
+ [建立 Tomcat 解決方案儀表板](#Solution-Tomcat-Dashboard)

## 要求
<a name="Solution-Tomcat-On-EC2-Requirements"></a>

此解決方案適用於下列情況：
+ 支援的版本：Tomcat 版本 9、10.1 和 11 (Beta 版)
+ 運算：Amazon EC2
+ 支援特定 中所有 Tomcat 工作負載最多 500 個 EC2 執行個體 AWS 區域
+ CloudWatch 代理程式的最新版本
+ EC2 執行個體上安裝的 SSM 代理程式
**注意**  
AWS Systems Manager (SSM 代理程式） 預先安裝在由 AWS 和信任的第三方提供的一些 [Amazon Machine Image AMIs)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) 上。如果未安裝代理程式，您可以依循適用於您作業系統類型的程序手動安裝。  
[在適用於 Linux 的 EC2 執行個體上手動安裝和解除安裝 SSM 代理程式](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html)
[在適用於 macOS 的 EC2 執行個體上手動安裝和解除安裝 SSM 代理程式](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-macos.html)
[在適用於 Windows Server 的 EC2 執行個體上手動安裝和解除安裝 SSM 代理程式](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-windows.html)

## 優勢
<a name="Solution-Tomcat-On-EC2-Benefits"></a>

此解決方案提供 Tomcat 伺服器監控功能，針對下列使用案例提供寶貴洞察：
+ 偵測 Tomcat 伺服器錯誤及效能問題。
+ 監控網路流量是否有資料傳輸問題。
+ 追蹤執行緒用量與作用中的使用者工作階段。
+ 分析 Tomcat 伺服器的底層 JVM 效能。

以下是此解決方案的主要優勢：
+ 透過 CloudWatch 代理程式組態自動執行 Apache Tomcat 和底層 JVM 指標收集，免除手動檢測需求。
+ 提供預先設定的整合式 CloudWatch 儀表板，專門用於監控 Apache Tomcat 和 JVM 指標。儀表板將自動處理透過此解決方案設定之新 Tomcat EC2 執行個體產生的指標，即使您第一次建立儀表板時這些指標不存在。透過它，您還可以將指標分組到邏輯應用程式中，以便於監控和管理。

下圖是此解決方案之儀表板的範例。

![\[Apache Tomcat 解決方案的儀表板範例。\]](http://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/images/TomcatDashboard.png)


## 成本
<a name="Solution-Tomcat-On-EC2-Costs"></a>

此解決方案會在您的帳戶中建立並使用資源。您需要支付標準用量的費用，包括下列項目：
+ CloudWatch 代理程式收集的所有指標以自訂指標計費。此解決方案使用的指標數目取決於 EC2 主機的數目。
  + 為解決方案設定的每個 Tomcat 主機總共會發布 27 個指標，外加一項指標 (`disk_used_percent`)，其指標數目取決於該主機的磁碟路徑數目。
+ 一個自訂儀表板。
+ CloudWatch 代理程式請求的 API 操作，用於發布指標。在此解決方案的預設組態下，CloudWatch 代理程式每分鐘會呼叫 **PutMetricData** 一次。這表示在一個 30 天的月份，針對每個 EC2 主機，系統將呼叫 **PutMetricData** API `30*24*60=43,200` 次。

如需 CloudWatch 定價的詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

定價計算器可協助您估算使用此解決方案的每月大致費用。

**使用定價計算器來估算解決方案的每月費用**

1. 開啟 [Amazon CloudWatch 定價計算器](https://calculator.aws/#/createCalculator/CloudWatch)。

1. 在**指標**區段中，對於**指標數目**，輸入 **(27 \$1 average number of disk paths per EC2 host) \$1 number of EC2 instances configured for this solution**。

1. 在 **API** 區段中，對於 **API 請求數目**，輸入 **43200 \$1 number of EC2 instances configured for this solution**。

   依預設，解決方案每分鐘會為每個 EC2 主機執行 **PutMetricData** 操作一次。

1. 在**儀表板和警示**區段中，對於**儀表板數目**，輸入 **1**。

1. 可以在定價計算器底部查看每月預估費用。

## 此解決方案的 CloudWatch 代理程式組態
<a name="Solution-Tomcat-CloudWatch-Agent"></a>

CloudWatch 代理程式是在您的伺服器和容器化環境中持續自主執行的軟體。它從您的基礎結構和應用程式收集指標、日誌和追蹤，並將其傳送到 CloudWatch 和 X-Ray。

如需 CloudWatch 代理程式的詳細資訊，請參閱[使用 CloudWatch 代理程式收集指標、日誌和追蹤](Install-CloudWatch-Agent.md)。

此解決方案中的代理程式組態會收集 Tomcat、JVM 和 EC2 的基礎指標。CloudWatch 代理程式可以設定為，收集的 JVM 指標數多於儀表板預設顯示的指標數。如需您可以收集之所有 Tomcat 指標的清單，請參閱[收集 Tomcat 指標](CloudWatch-Agent-JMX-metrics.md#CloudWatch-Agent-Tomcat-metrics)。如需您可以收集之所有 JVM 指標的清單，請參閱[收集 JVM 指標](CloudWatch-Agent-JMX-metrics.md#CloudWatch-Agent-JVM-metrics)。如需 Amazon EC2 指標的清單，請參閱[由 CloudWatch 代理程式在 Linux 和 macOS 執行個體上收集的指標](metrics-collected-by-CloudWatch-agent.md#linux-metrics-enabled-by-CloudWatch-agent)。

**公開 Tomcat 伺服器的 JMX 連接埠**

CloudWatch 代理程式依賴 JMX 收集與 Tomcat 伺服器和 JVM 程序相關的指標。為此，您必須透過伺服器公開 JMX 連接埠。若要啟用 JMX 連接埠進行監控和管理，需要為 Tomcat 伺服器設定系統屬性。可以使用環境變數 `CATALINA_OPTS ` 為 Tomcat 設定必要的系統屬性。檢視 Tomcat 伺服器的啟動指令碼和設定檔，以確定設定環境變數的最佳位置。請務必指定未使用的連接埠號碼。變更後，您將需要重新啟動伺服器。

```
export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=<<port-number>> -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
```

此範例設定的是未經驗證的 JMX。如果依據安全政策/規定，您必須透過密碼身分驗證機或 SSL 啟用 JMX 以進行遠端存取，請參閱 [JMX 文件](https://docs.oracle.com/en/java/javase/17/management/monitoring-and-management-using-jmx-technology.html)來設定所需的屬性。

若要驗證 JMX 連接埠，請執行 `ps aux | grep jmxremote.port`。結果應顯示 JMX 連接埠已在 JVM 程序上設定。

### Tomcat 解決方案的代理程式組態
<a name="Solution-Agent-Configuration-Tomcat-Solution"></a>

代理程式收集的指標在代理程式組態中定義。解決方案提供代理程式組態，以收集適用於解決方案儀表板的建議指標與適當維度。

部署解決方案的步驟稍後會在[部署解決方案的代理程式](#Solution-Tomcat-Agent-Deploy)中說明。以下資訊旨在協助您了解如何為您的環境自訂代理程式組態。

您必須為環境自訂下列代理程式組態的部分項目：
+ JMX 連接埠號碼是您在本文件上一節中設定的連接埠號碼。連接埠號碼位於組態中的 `endpoint` 行中。
+ `AppName` – 用作所收集 Tomcat 應用程式指標的維度。提供有意義的名稱，代表執行 Tomcat 應用程式之執行個體的分組。
+ `ProcessGroupName` – 用作為 Tomcat 主機收集之 JVM 指標的維度。提供與上方 `AppName` 相同的值。此功能旨在讓使用者能在解決方案儀表板中，同時檢視與伺服器指標相同之 Tomcat 應用程式群組的 JVM 指標。

例如，如果您有兩個 Tomcat 應用程式在相同的 中執行 AWS 帳戶，一個用於`billing-system`應用程式，另一個用於`order-system`應用程式，您可以在每個執行個體的代理程式組態中相應地設定 `AppName`和 `ProcessGroupName`維度。
+ 對於 `billing-system` 應用程式執行個體，請設定 `AppName=billing-system` 和 `ProcessGroupName=billing-system`。
+ 對於 `order-system` 應用程式執行個體，請設定 `AppName=order-system` 和 `ProcessGroupName=order-system`。

當您遵循這些準則時，解決方案會依 `AppName` 和 `ProcessGroupName` 維度自動將指標分組。儀表板將包含下拉式清單選項，供您選取並檢視特定 Tomcat 應用程式的指標，讓您能分別監控個別應用程式的效能。

### Tomcat 主機的代理程式組態
<a name="Solution-Agent-Configuration-Tomcat-Host"></a>

請在部署 Tomcat 應用程式的 EC2 執行個體上，使用下列 CloudWatch 代理程式組態。組態將儲存為 SSM 參數儲存區中的參數，如稍後的[步驟 2：將建議的 CloudWatch 代理程式設定檔儲存在 Systems Manager 參數儲存區中](#Solution-Tomcat-Agent-Step2)中所述。

將 *AppName* 替換為有意義的名稱，代表執行個體所屬的 Tomcat 應用程式。將 *port-number* 替換為您 Tomcat 伺服器的 JMX 連接埠。如果是透過密碼身分驗證或 SSL 啟用 JMX 以進行遠端存取，請參閱[收集 Java Management Extensions (JMX) 指標](CloudWatch-Agent-JMX-metrics.md)以取得有關視需要在代理程式組態中設定 TLS 或授權的資訊。

此組態中顯示的 EC2 指標 (在 JMX 區塊外部顯示的組態) 僅適用於 Linux 和 macOS 執行個體。如果您使用的是 Windows 執行個體，可以選擇在組態中省略這些指標。如需在 Windows 執行個體上收集之指標的資訊，請參閱[由 CloudWatch 代理程式在 Windows Server 執行個體上收集的指標](metrics-collected-by-CloudWatch-agent.md#windows-metrics-enabled-by-CloudWatch-agent)。

```
{
  "metrics": {
    "namespace": "CWAgent",
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}"
    },
    "metrics_collected": {
      "jmx": [
        {
          "endpoint": "localhost:port-number",
          "tomcat": {
            "measurement": [
              "tomcat.sessions",
              "tomcat.errors",
              "tomcat.processing_time",
              "tomcat.traffic",
              "tomcat.max_time",
              "tomcat.request_count",
              "tomcat.threads"
            ]
          },
          "append_dimensions": {
            "AppName": "AppName"
          }
        },
        {
          "endpoint": "localhost:port-number",
          "jvm": {
            "measurement": [
              "jvm.classes.loaded",
              "jvm.gc.collections.count",
              "jvm.gc.collections.elapsed",
              "jvm.memory.heap.committed",
              "jvm.memory.heap.max",
              "jvm.memory.heap.used",
              "jvm.memory.nonheap.committed",
              "jvm.memory.nonheap.max",
              "jvm.memory.nonheap.used",
              "jvm.threads.count"
            ]
          },
          "append_dimensions": {
            "ProcessGroupName": "AppName"
          }
        }
      ],
      "disk": {
        "measurement": [
          "used_percent"
        ]
      },
      "mem": {
        "measurement": [
          "used_percent"
        ]
      },
      "swap": {
        "measurement": [
          "used_percent"
        ]
      },
      "netstat": {
        "measurement": [
          "tcp_established",
          "tcp_time_wait"
        ]
      }
    }
  }
}
```

## 部署解決方案的代理程式
<a name="Solution-Tomcat-Agent-Deploy"></a>

安裝 CloudWatch 代理程式的方法有很多種，具體取決於使用案例。建議您使用 Systems Manager 安裝此解決方案。它提供主控台體驗，並可讓您更輕鬆地管理單一 AWS 帳戶中的受管伺服器機群。本節說明採用 Systems Manager，適用於您沒有以現有組態執行 CloudWatch 代理程式的情況。您可以依循[確認 CloudWatch 代理程式正在執行中](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running)中的步驟，檢查 CloudWatch 代理程式是否正在執行。

如果您已在部署 JVM 應用程式和管理代理程式組態的 EC2 主機上執行 CloudWatch 代理程式，可以略過本節中的說明，並依循現有部署機制來更新組態。請務必將 JVM 的代理程式組態與您現有的代理程式組態合併，然後部署合併的組態。如果您使用 Systems Manager 來儲存和管理 CloudWatch 代理程式的組態，可以將組態合併到現有的參數值。如需詳細資訊，請參閱[管理 CloudWatch 代理程式設定檔](https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/create-store-cloudwatch-configurations.html)。

**注意**  
使用 Systems Manager 部署下列 CloudWatch 代理程式組態，將取代或覆寫 EC2 執行個體上的任何現有 CloudWatch 代理程式組態。您可以根據自己的特定環境或使用案例修改此組態。本解決方案中定義的指標，是推薦儀表板需要滿足的最低要求。

部署程序包含以下步驟：
+ 步驟 1：確定目標 EC2 執行個體具有所需的 IAM 許可。
+ 步驟 2：將建議的代理程式設定檔儲存在 Systems Manager 參數儲存區中。
+ 步驟 3：使用 CloudFormation 堆疊在一或多個 EC2 執行個體上安裝 CloudWatch 代理程式。
+ 步驟 4：確認已正確完成代理程式設定。

### 步驟 1：確定目標 EC2 執行個體具有所需的 IAM 許可
<a name="Solution-Tomcat-Agent-Step1"></a>

您必須授與 Systems Manager 安裝和設定 CloudWatch 代理程式的許可。還必須授與 CloudWatch 代理程式從 EC2 執行個體發布遙測到 CloudWatch 的許可。確定連結至執行個體的 IAM 角色已連結 **CloudWatchAgentServerPolicy** 和 **AmazonSSMManagedInstanceCore** IAM 政策。
+ 建立角色之後，將角色連結至 EC2 執行個體。請依循[使用 IAM 角色啟動執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#launch-instance-with-role)中的步驟，在啟動新的 EC2 執行個體時連結角色。若要將角色連結至現有的 EC2 執行個體，請依循[將 IAM 角色連結至執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#attach-iam-role)中的步驟。

### 步驟 2：將建議的 CloudWatch 代理程式設定檔儲存在 Systems Manager 參數儲存區中
<a name="Solution-Tomcat-Agent-Step2"></a>

參數儲存區透過安全地儲存和管理組態參數，簡化在 EC2 執行個體上安裝 CloudWatch 代理程式的流程，無需使用硬式編碼值。這可確保部署程序更安全、更靈活，實現集中式管理，並能更輕鬆地更新多個執行個體的組態。

依循下列步驟，將建議的 CloudWatch 代理程式設定檔儲存為參數儲存區中的參數。

**建立 CloudWatch 代理程式設定檔作為參數**

1. 在 https：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 AWS Systems Manager 主控台。

1. 從導覽窗格中，選擇**應用程式管理**、**參數儲存區**。

1. 依循下列步驟為組態建立新的參數。

   1. 選擇 **Create parameter (建立參數)**。

   1. 在**名稱**方塊中，輸入您將用於在後續步驟中引用 CloudWatch 代理程式設定檔的名稱。例如 **AmazonCloudWatch-Tomcat-Configuration**。

   1. (選用) 在**描述**方塊中，輸入參數描述。

   1. 對於**參數層**，選擇**標準**。

   1. 在**類型**選擇**字串**。

   1. 對於**資料類型**，選擇**文字**。

   1. 在**值**方塊中，貼上 [Tomcat 主機的代理程式組態](#Solution-Agent-Configuration-Tomcat-Host)中列示的對應 JSON 區塊。務必依循說明自訂分組維度值和連接埠號碼。

   1. 選擇 **Create parameter (建立參數)**。

### 步驟 3：安裝 CloudWatch 代理程式並使用 CloudFormation 範本套用組態
<a name="Solution-Tomcat-Agent-Step3"></a>

您可以使用 AWS CloudFormation 安裝代理程式，並將其設定為使用您在先前步驟中建立的 CloudWatch 代理程式組態。

**為此解決方案安裝和設定 CloudWatch 代理程式**

1. 使用此連結開啟 CloudFormation **快速建立堆疊**精靈：https：//[https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json)。

1. 確認主控台上選取的區域是執行 Tomcat 工作負載的區域。

1. 對於**​堆疊名稱**，輸入可識別此堆疊的名稱，例如 **CWAgentInstallationStack**。

1. 在**參數**區段中，執行以下動作：

   1. 對於 **CloudWatchAgentConfigSSM**，輸入您先前建立之代理程式組態的 Systems Manager 參數名稱，例如 **AmazonCloudWatch-Tomcat-Configuration**。

   1. 若要選取目標執行個體，您有兩個選項。

      1. 對於 **InstanceIds**，指定以逗號分隔的執行個體 ID 清單，列出您想要使用此組態安裝 CloudWatch 代理程式的執行個體 ID。您可以列出一個或多個執行個體。

      1. 若要大規模部署，可以指定 **TagKey** 和對應的 **TagValue**，以鎖定使用此標籤和值的所有 EC2 執行個體。指定 **TagKey** 時，必須指定對應的 **TagValue**。(對於 Auto Scaling 群組，請為 **TagKey** 指定 **aws:autoscaling:groupName**，並為 **TagValue** 指定 Auto Scaling 群組名稱，以部署到 Auto Scaling 群組內的所有執行個體。)

         如果您同時指定 **InstanceIds** 和 **TagKeys** 參數，系統將以 **InstanceIds** 為準，並忽略標籤。

1. 檢閱設定，然後選擇**建立堆疊**。

如果想要先編輯範本檔案以進行自訂，請選擇**建立堆疊精靈**下的**上傳範本檔案**選項，以上傳經編輯的範本。如需詳細資訊，請參閱在[CloudFormation 主控台上建立堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。可以使用以下連結下載範本：[https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json](https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json)。

**注意**  
完成這個步驟後，此 Systems Manager 參數將與目標執行個體中執行的 CloudWatch 代理程式關聯。這表示：  
如果刪除 Systems Manager 參數，代理程式將停止運作。
如果編輯 Systems Manager 參數，組態變更會自動套用至代理程式，排程頻率預設為 30 天。
如果想要即刻將變更套用至此 Systems Manager 參數，必須再次執行此步驟。如需關於關聯的更多資訊，請參閱[在 Systems Manager 中使用關聯](https://docs.aws.amazon.com/systems-manager/latest/userguide/state-manager-associations.html)。

### 步驟 4：確認代理程式設定已正確設定
<a name="Solution-Tomcat-Agent-Step4"></a>

您可以依循[確認 CloudWatch 代理程式正在執行中](troubleshooting-CloudWatch-Agent.md#CloudWatch-Agent-troubleshooting-verify-running)中的步驟，檢查 CloudWatch 代理程式是否已安裝。若 CloudWatch 代理程式未安裝且未執行，請確認您已正確完成所有設定。
+ 請確定您已連結具有 EC2 執行個體正確許可的角色，如[步驟 1：確定目標 EC2 執行個體具有所需的 IAM 許可](#Solution-Tomcat-Agent-Step1)中所述。
+ 請確定您已正確設定 Systems Manager 參數的 JSON。請遵循 [使用 安裝 CloudWatch 代理程式的故障診斷 CloudFormation](Install-CloudWatch-Agent-New-Instances-CloudFormation.md#CloudWatch-Agent-CloudFormation-troubleshooting) 中的步驟。

若所有設定皆正確無誤，您應可看到 Tomcat 指標已發布至 CloudWatch。可以檢查 CloudWatch 主控台，以確認系統是否正在發布這些指標。

**驗證 Tomcat 指標是否已發布至 CloudWatch**

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 依序選擇**指標**、**所有指標**。

1. 請確定您已選取部署解決方案的區域，然後選擇**自訂命名空間**、**CWAgent**。

1. 搜尋本文件代理程式組態區段中提到的指標，例如 `tomcat.errors`。如果您看到這些指標的結果，則指標會發布至 CloudWatch。

## 建立 Tomcat 解決方案儀表板
<a name="Solution-Tomcat-Dashboard"></a>

此儀表板顯示新發出的指標，涵蓋 Tomcat 應用程式伺服器及其底層 JVM。此儀表板提供主要貢獻因子視圖，顯示您的 Tomcat 工作負載的運作狀態。主要貢獻因子檢視會顯示每個指標小工具排名前 10 的因子。這可助您一目了然地識別極端值。儀表板還透過彙總和呈現所有執行個體的指標來提供叢集的概觀，並提供叢集整體運作狀態和操作狀態的高階摘要。

解決方案儀表板不會顯示 EC2 指標。若要檢視 EC2 指標，您需要使用 EC2 自動儀表板查看 EC2 代售指標，並使用 EC2 主控台儀表板查看 CloudWatch 代理程式收集的 EC2 指標。如需 自動儀表板的詳細資訊 AWS 服務，請參閱 [檢視單一服務的 CloudWatch 儀表板 AWS](CloudWatch_Automatic_Dashboards_Focus_Service.md)。

若要建立儀表板，可以使用下列選項：
+ 使用 CloudWatch 主控台建立儀表板。
+ 使用 AWS CloudFormation 主控台部署儀表板。
+ 下載 AWS CloudFormation 基礎設施做為程式碼，並將其整合為持續整合 (CI) 自動化的一部分。

透過使用 CloudWatch 主控台建立儀表板，您可以在實際建立和收費之前預覽儀表板。

**注意**  
在此解決方案 CloudFormation 中使用 建立的儀表板會顯示部署解決方案的區域指標。請務必在發佈 Tomcat 指標的區域中建立 CloudFormation 堆疊。  
如果您已在 CloudWatch 代理程式組態`CWAgent`中指定 以外的自訂命名空間，則必須變更儀表板的 CloudFormation 範本，以`CWAgent`將 取代為您正在使用的自訂命名空間。

**透過 CloudWatch 主控台建立儀表板**
**注意**  
解決方案儀表板目前僅顯示 G1 垃圾回收器的垃圾回收相關指標，G1 垃圾回收器是最新 Java 版本的預設回收器。如果您採用其他垃圾回收演算法，則與垃圾回收相關的小工具將保持空白狀態。不過，您可以透過變更儀表板 CloudFormation 範本，並將適當的垃圾回收類型套用至垃圾回收相關指標的名稱維度，自訂這些小工具。例如，如果您使用的是平行垃圾回收機制，請將垃圾回收計數指標 `jvm.gc.collections.count` 的 **name=\$1"G1 Young Generation\$1"** 變更為 **name=\$1"Parallel GC\$1"**。

1. 使用此連結開啟 CloudWatch 主控台**建立儀表板**：[https://console.aws.amazon.com/cloudwatch/home?\$1dashboards?dashboardTemplate=ApacheTomcatOnEc2&referrer=os-catalog](https://console.aws.amazon.com/cloudwatch/home?#dashboards?dashboardTemplate=ApacheTomcatOnEc2&referrer=os-catalog)。

1. 確認主控台上選取的區域是執行 Tomcat 工作負載的區域。

1. 輸入儀表板的名稱，然後選擇**建立儀表板**。

   為方便區分此儀表板與其他區域的類似儀表板，建議在儀表板名稱中包含區域名稱，例如 **TomcatDashboard-us-east-1**。

1. 預覽儀表板，然後選擇**儲存**以建立儀表板。

**透過 建立儀表板 CloudFormation**

1. 使用此連結開啟 CloudFormation **快速建立堆疊**精靈：https：//[https://console.aws.amazon.com/cloudformation/home?\$1/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Tomcat\$1EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json](https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Tomcat_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json)。

1. 確認主控台上選取的區域是執行 Tomcat 工作負載的區域。

1. 對於**​堆疊名稱**，輸入可識別此堆疊的名稱，例如 **TomcatDashboard-us-east-1**。

1. 在**參數**區段的 **DashboardName** 參數下，指定儀表板名稱。

1. 為方便區分此儀表板與其他區域的類似儀表板，建議在儀表板名稱中包含區域名稱，例如 **TomcatDashboard-us-east-1**。

1. 在**功能和轉換**下，確認轉換的存取功能。請注意，CloudFormation 不會新增任何 IAM 資源。

1. 檢閱設定，然後選擇**建立堆疊**。

1. 堆疊狀態變為 **CREATE\$1COMPLETE** 之後，請在所建立堆疊下方選擇**資源**索引標籤，然後選擇**實體 ID** 下方的連結以前往儀表板。也可以在 CloudWatch 主控台中存取儀表板，方法是選擇主控台左側導覽窗格中的**儀表板**，然後在**自訂儀表板**下尋找儀表板名稱。

如果想要編輯範本檔案以針對任何用途自訂範本檔案，可以使用**建立堆疊精靈**下的**上傳範本檔案**選項來上傳經編輯的範本。如需詳細資訊，請參閱在[CloudFormation 主控台上建立堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。可以使用此連結下載範本：[https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Tomcat\$1EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json](https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/Tomcat_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json)。

**注意**  
解決方案儀表板目前僅顯示 G1 垃圾回收器的垃圾回收相關指標，G1 垃圾回收器是最新 Java 版本的預設回收器。如果您採用其他垃圾回收演算法，則與垃圾回收相關的小工具將保持空白狀態。不過，您可以透過變更儀表板 CloudFormation 範本，並將適當的垃圾回收類型套用至垃圾回收相關指標的名稱維度，自訂這些小工具。例如，如果您使用的是平行垃圾回收機制，請將垃圾回收計數指標 `jvm.gc.collections.count` 的 **name=\$1"G1 Young Generation\$1"** 變更為 **name=\$1"Parallel GC\$1"**。

### 開始使用 Tomcat 監控儀表板
<a name="Solution-Tomcat-GetStarted"></a>

以下是您可以嘗試使用新 Tomcat 儀表板處理的一些任務。這些任務可讓您驗證儀表板是否運作正常，並提供實際操作經驗，協助您運用儀表板監控 Tomcat 應用程式。當您嘗試這些功能時，可逐漸熟悉儀表板的操作介面，並學會解讀視覺化的指標資料。

**使用下拉式清單**

儀表板頂端提供下拉式清單，您可以透過此選單篩選並選取要監控的特定 Tomcat 應用程式。若要顯示特定 Tomcat 應用程式的指標，請在 **Tomcat 應用程式**下拉式清單中選取該應用程式名稱。

**驗證應用程式運作狀態**

在**應用程式概觀**區段中，尋找**請求**、**錯誤**和**錯誤率**小工具。這些提供應用程式請求處理效能的高階摘要。尋找任何異常偏高的錯誤計數或錯誤率，這可能表示存在需要進一步調查的問題。

**監控請求處理**

在**請求處理時間**區段中，尋找**時間上限**和**處理所有請求的總時間**小工具。這些指標有助於您識別請求處理過程中的潛在效能瓶頸。尋找處理時間上限明顯高於其他伺服器的伺服器。

**分析網路流量**

在**網路流量**區段中，尋找**已傳送流量**和**已接收流量**小工具。這些指標會顯示應用程式透過網路傳送和接收的資料量。意外偏高的流量水準可能表示存在潛在問題，例如網路飽和度或資料傳輸效率低下。

**調查執行緒用量**

在**工作階段和執行緒**區段中，尋找**忙碌的執行緒計數**、**執行緒計數**和**工作階段**小工具。這些指標可助您深入了解應用程式的執行緒管理和作用中的使用者工作階段。尋找任何擁有異常多忙碌執行緒或工作階段的伺服器，這可能表示存在潛在的資源限制問題。