

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

# 使用 collectd 擷取自訂指標
<a name="CloudWatch-Agent-custom-metrics-collectd"></a>

您可以使用 CloudWatch 代理程式搭配 collectd 通訊協定，從應用程式或服務擷取額外的指標，該通訊協定僅在 Linux 伺服器上受到支援。collectd 是一種普遍的開放原始碼解決方案，其外掛程式可收集各種應用程式的系統統計資料。藉由將 CloudWatch 代理程式已能從 collectd 收集的系統指標與收集的其他指標結合，您可以進一步監控、分析和疑難排解您的系統和應用程式。如需 collectd 的詳細資訊，請參閱 [collectd - 系統統計資料收集協助程式](https://collectd.org/)。

您需要使用 collectd 軟體將指標傳送到 CloudWatch 代理程式。針對 collectd 指標，CloudWatch 代理程式會作為伺服器，而 collectd 外掛程式則會作為用戶端。

每個伺服器上不會自動安裝 collectd 軟體。在執行 Amazon Linux 2 的伺服器上，按照下列步驟安裝 collectd

```
sudo amazon-linux-extras install collectd
```

如需有關如何在其他系統上安裝 collectd 的資訊，請參閱 [collectd 的下載頁面](https://www.collectd.org/download.html)。

若要收集這些自訂指標，請將 **"collectd": {}** 這一行新增至代理程式組態檔案的 **metrics\_collected** 區段。您可以手動加入這一行。如果您使用精靈來建立組態檔案，它會替您完成。如需詳細資訊，請參閱[建立 CloudWatch 代理程式組態檔案](create-cloudwatch-agent-configuration-file.md)。

也有選用的參數。如果您使用 collectd，且未使用 `/etc/collectd/auth_file` 作為 **collectd\_auth\_file**，則必須設定其中一些選項。
+ **service\_address：**CloudWatch 代理程式應接聽的服務地址。格式是 `"udp://{{ip}}:{{port}}`。預設值為 `udp://127.0.0.1:25826`。
+ **name\_prefix：**每個 collectd 指標名稱開頭的字首。預設值為 `collectd_`。長度上限為 255 個字元。
+ **collectd\_security\_level：**設定網路通訊的安全層級。預設設定為 **encrypt (加密)**。

  **encrypt (加密)** 可指定只接受有加密的資料。**sign (簽署)** 可指定只接受已簽署和加密的資料。**none (無)** 可指定接受所有資料。如果您為 **collectd\_auth\_file** 指定值，若有可能，加密的資料會解密。

  如需詳細資訊，請參閱 collectd Wiki 中的 [Client 設定](https://collectd.org/wiki/index.php/Networking_introduction#Client_setup)和[可能的互動](https://collectd.org/wiki/index.php/Networking_introduction#Possible_interactions)。
+ **collectd\_auth\_file** 設置一個檔案，其中的使用者名稱對應到密碼。這些密碼用於驗證簽章以及解密加密的網路封包。如有提供，即可驗證已簽署的資料，並將加密的封包解密。否則，會在未檢查簽章的情況下接受已簽署的資料，且無法解密加密的資料。

  預設值為 `/etc/collectd/auth_file`。

   如果 **collectd\_security\_level (collectd\_security\_level)** 設為 **none (無)**，則這是選用參數。如果您將 **collectd\_security\_level (collectd\_security\_level)** 設為 `encrypt` 或 **sign (簽署)**，則必須指定 **collectd\_auth\_file (collectd\_auth\_file)**。

  授權檔案的格式是，每一行一個使用者名稱，加一個冒號和任意數量的空格，之後再加上密碼。例如：

  `user1: user1_password`

  `user2: user2_password`
+ **collectd\_typesdb:** 包含資料集描述項的一或多個檔案的清單。清單必須以方括號圍起來，即使清單中只有一個項目。清單中的每個項目都必須加上雙引號。如果有多個項目，以逗號分隔。Linux 伺服器的預設值是 `["/usr/share/collectd/types.db"]`。macOs 電腦上的預設值取決於 collectd 的版本。例如 `["/usr/local/Cellar/collectd/5.12.0/share/collectd/types.db"]`。

  如需詳細資訊，請參閱[https://www.collectd.org/documentation/manpages/types.db.html](https://www.collectd.org/documentation/manpages/types.db.html)。
+ **metrics\_aggregation\_interval：**CloudWatch 將指標彙總到單一資料點的頻率 (以秒為單位)。預設值為 60 秒。範圍介於 0 至 172,000 之間。若設定為 0，會停止對 collectd 指標進行彙總。

以下是適用於代理程式組態檔案 collectd 區段的範例。

```
{
   "metrics":{
      "metrics_collected":{
         "collectd":{
            "name_prefix":"My_collectd_metrics_",
            "metrics_aggregation_interval":120
         }
      }
   }
}
```

## 檢視由 CloudWatch 代理程式匯入的已收集指標
<a name="CloudWatch-view-collectd-metrics"></a>

將 collectd 指標匯入 CloudWatch 後，您可以以時間序列圖形形式檢視這些指標，並建立警示來監控這些指標，並在違反您指定的閾值時通知您。下列程序顯示如何以時間序列圖形檢視 collectd 指標。如需設定警示的詳細資訊，請參閱 [使用 Amazon CloudWatch 警示](CloudWatch_Alarms.md)。

**若要在 CloudWatch 主控台中檢視 collectd 指標**

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

1. 在導覽窗格中，選擇**指標**。

1. 選擇用於代理程式所收集指標的命名空間。根據預設，此為 **CWAgent**，但您可能已在 CloudWatch 代理程式組態檔案中指定了不同的命名空間。

1. 選擇指標維度 (例如 **Per-Instance Metrics** (每個執行個體指標))。

1. **All metrics (所有指標)** 索引標籤會顯示命名空間中該維度的所有指標。您可以執行下列動作：

   1. 若要將指標圖形化，請勾選指標旁的核取方塊。若要選擇所有指標，請勾選表格標題列中的核取方塊。

   1. 若要將資料表排序，請使用直欄標題。

   1. 若要依資源篩選，請選擇資源 ID，然後選擇 **Add to search** (新增至搜尋)。

   1. 若要依指標篩選，請選擇指標名稱，然後選擇 **Add to search (新增至搜尋)**。

1. (選用) 若要將圖形新增至 CloudWatch 儀表板，請選擇 **Actions** (動作)、**Add to dashboard** (新增至儀表板)。