

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

# 使用 Harvest 和 Grafana 監控 FSx for ONTAP 檔案系統
<a name="monitoring-harvest-grafana"></a>

NetApp Harvest 是一種開放原始碼工具，用於從 ONTAP 系統收集效能和容量指標，並與 FSx for ONTAP 相容。您可以使用 Harvest 搭配 Grafana 進行開放原始碼監控解決方案。

## Harvest 和 Grafana 入門
<a name="harvest-grafana"></a>

下節詳細說明如何設定和設定 Harvest 和 Grafana，以測量 FSx for ONTAP 檔案系統的效能和儲存容量使用率。

您可以使用 Harvest和 來監控 Amazon FSx for NetApp ONTAP 檔案系統Grafana。 透過從 FSx for ONTAP 檔案系統收集效能、容量和硬體指標來NetApp Harvest監控ONTAP資料中心。 Grafana提供儀表板，其中會顯示收集的Harvest指標。

## 支援的 Harvest 儀表板
<a name="supported-harvest-dashboards"></a>

Amazon FSx for NetApp ONTAP 會公開與內部部署 不同的指標集NetApp ONTAP。因此，`fsx`目前僅支援使用 標記的下列out-of-the-boxHarvest儀表板與 FSx for ONTAP 搭配使用。這些儀表板中的某些面板可能缺少不支援的資訊。
+ 收集：中繼資料
+ ONTAP：彙總
+ ONTAP：cDOT
+ ONTAP：叢集
+ ONTAP：合規
+ ONTAP：資料中心
+ ONTAP：資料保護
+ ONTAP：LUN
+ ONTAP：網路
+ ONTAP：節點
+ ONTAP：Qtree
+ ONTAP：安全性
+ ONTAP：SnapMirror
+ ONTAP：SnapMirror 目的地
+ ONTAP：SnapMirror 來源
+ ONTAP：SVM
+ ONTAP：磁碟區
+ ONTAP：SVM 的磁碟區
+ ONTAP：磁碟區深度分析

FSx for ONTAP 支援下列Harvest儀表板，但在 中預設不會啟用Harvest。
+ ONTAP：FlexCache
+ ONTAP：FlexGroup
+ ONTAP：NFS 用戶端
+ ONTAP：NFSv4 Storepool 監視器
+ ONTAP：NFS 故障診斷
+ ONTAP：NVMe 命名空間
+ ONTAP：SMB
+ ONTAP：工作負載

## 不支援的Harvest儀表板
<a name="unsupported-dashboards"></a>

FSx for ONTAP *不支援*下列Harvest儀表板。
+ ONTAP：磁碟
+ ONTAP：外部服務操作
+ ONTAP：檔案系統分析 (FSA)
+ ONTAP： Headroom
+ ONTAP：運作狀態
+ ONTAP：MAV 請求
+ ONTAP：MetroCluster
+ ONTAP：Power
+ ONTAP：架子
+ ONTAP：S3 物件存放區

## CloudFormation 範本
<a name="harvest-grafana-template"></a>

若要開始使用，您可以部署 CloudFormation 範本，自動啟動執行 Harvest 和 Grafana 的 Amazon EC2 執行個體。作為 CloudFormation 範本的輸入，您可以指定檔案系統`fsxadmin`的使用者和 Amazon FSx 管理端點，該端點將新增為此部署的一部分。部署完成後，您可以登入 Grafana 儀表板來監控您的檔案系統。

此解決方案使用 CloudFormation 自動部署 Harvest 和 Grafana 解決方案。範本會建立 Amazon EC2 Linux 執行個體，並安裝 Harvest 和 Grafana 軟體。若要使用此解決方案，請下載 [fsx-ontap-harvest-grafana.template](https://solution-references.s3.amazonaws.com/fsx/harvest-grafana/harvest-grafana.yaml) CloudFormation 範本。

**注意**  
實作此解決方案會產生相關聯 AWS 服務的帳單。如需詳細資訊，請參閱這些服務的定價詳細資訊頁面。

## Amazon EC2 執行個體類型
<a name="ec2-instance-types"></a>

設定範本時，請提供 Amazon EC2 執行個體類型。NetApp 對執行個體大小的建議取決於您監控的檔案系統數量，以及您選擇收集的指標數量。使用預設組態，對於您監控的每個 10 個檔案系統，NetApp 建議：
+ CPU：2 個核心
+ 記憶體：1 GB
+ 磁碟：500 MB （主要由日誌檔案使用）

以下是一些範例組態和您可以選擇的`t3`執行個體類型。


****  

| 檔案系統 | CPU | Disk | 執行個體類型 | 
| --- | --- | --- | --- | 
| 10 以下 | 2 個核心 | 500 MB | `t3.micro` | 
| 10–40 | 4 個核心 | 1000 MB | `t3.xlarge` | 
| 40\+ | 8 個核心 | 2000 MB | `t3.2xlarge` | 

如需 Amazon EC2 執行個體類型的詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[一般用途執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/general-purpose-instances.html)。

### 執行個體連接埠規則
<a name="instance-port-rules"></a>

當您設定 Amazon EC2 執行個體時，請確定連接埠 3000 和 9090 已開放給 Amazon EC2 Harvest 和 Grafana 執行個體所在的安全群組的傳入流量。由於啟動的執行個體會透過 HTTPS 連線至端點，因此需要解析端點，該端點需要 DNS 的連接埠 53 TCP/UDP。此外，若要到達端點，它需要連接埠 443 TCP 才能進行 HTTPS 和網際網路存取。

## 部署程序
<a name="harvest-grafana-deployment"></a>

下列程序會設定和部署 Harvest/Grafana 解決方案。部署大約需要五分鐘。開始之前，您必須在 AWS 帳戶中的 Amazon Virtual Private Cloud (Amazon VPC) 中執行 FSx for ONTAP 檔案系統，以及下列範本的參數資訊。如需建立檔案系統的詳細資訊，請參閱 [建立檔案系統](creating-file-systems.md)。

**啟動 Harvest/Grafana 解決方案堆疊**

1. 下載 [fsx-ontap-harvest-grafana.template](https://solution-references.s3.amazonaws.com/fsx/harvest-grafana/harvest-grafana.yaml) CloudFormation 範本。如需建立 CloudFormation 堆疊的詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[在 AWS CloudFormation 主控台上建立堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。
**注意**  
根據預設，此範本會在美國東部 （維吉尼亞北部） AWS 區域啟動。您必須在可使用 Amazon FSx AWS 區域 的 中啟動此解決方案。如需詳細資訊，請參閱《》中的 [Amazon FSx 端點和配額](https://docs.aws.amazon.com/general/latest/gr/fsxn.html)*AWS 一般參考。 *

1. 對於**參數**，請檢閱範本的參數，並根據檔案系統的需求進行修改。此解決方案使用下列預設值。  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/fsx/latest/ONTAPGuide/monitoring-harvest-grafana.html)

1. 選擇**下一步**。

1. 針對**選項**，選擇**下一步**。

1. 針對**檢閱**，檢閱並確認設定。您必須選取確認範本建立 IAM 資源的核取方塊。

1. 選擇**建立**以部署堆疊。

您可以在狀態欄的 CloudFormation 主控台中檢視堆疊**的狀態**。您應該會在大約五分鐘內看到 **CREATE\_COMPLETE** 狀態。

## 登入 Grafana
<a name="harvest-grafana-login"></a>

部署完成後，請使用您的瀏覽器在 Amazon EC2 執行個體的 IP 和連接埠 3000 登入 Grafana 儀表板：

```
http://{{EC2_instance_IP}}:3000
```

出現提示時，請使用 Grafana 預設使用者名稱 (`admin`) 和密碼 (`pass`)。我們建議您在登入後立即變更密碼。

如需詳細資訊，請參閱 GitHub 上的 [ NetApp Harvest](https://github.com/NetApp/harvest) 頁面。

## 針對 Harvest 和 Grafana 進行故障診斷
<a name="troubleshooting-harvest-grafana"></a>

如果您遇到 Harvest 和 Grafana 儀表板中提及的任何遺失資料，或無法透過 FSx for ONTAP 設定 Harvest 和 Grafana，請檢查下列主題是否有潛在解決方案。

**Topics**
+ [SVM 和磁碟區儀表板空白](#svm-volume-blank-dashboards)
+ [逾時後復原 CloudFormation 堆疊](#cfn-stack-rolled-back)

### SVM 和磁碟區儀表板空白
<a name="svm-volume-blank-dashboards"></a>

如果 CloudFormation 堆疊部署成功且可以聯絡 Grafana，但 SVM 和磁碟區儀表板空白，請使用下列程序來疑難排解您的環境。您需要對部署 Harvest 和 Grafana 的 Amazon EC2 執行個體進行 SSH 存取。

1. 您的 Harvest 和 Grafana 用戶端正在執行的 Amazon EC2 執行個體中的 SSH。

   ```
   [~]$ ssh ec2-user@{{ec2_ip_address}}
   ```

1. 使用下列命令來開啟 `harvest.yml` 檔案和：
   + 確認已為您的 FSx for ONTAP 執行個體建立項目做為 `Cluster-2`。
   + 確認使用者名稱和密碼的項目與您的`fsxadmin`登入資料相符。

   ```
   [ec2-user@ip-{{ec2_ip_address}} ~]$ sudo cat /home/ec2-user/harvest_install/harvest/harvest.yml
   ```

1. 如果密碼欄位空白，請在編輯器中開啟 檔案，並使用`fsxadmin`密碼更新檔案，如下所示：

   ```
   [ec2-user@ip-{{ec2_ip_address}} ~]$ sudo vi /home/ec2-user/harvest_install/harvest/harvest.yml
   ```

1. 確保`fsxadmin`使用者登入資料以下列格式存放在 Secrets Manager 中，以供任何未來部署使用，`{{fsxadmin_password}}`並以您的密碼取代 。

   ```
   {"username" : "fsxadmin", "password" : "{{fsxadmin_password}}"}
   ```

### 逾時後復原 CloudFormation 堆疊
<a name="cfn-stack-rolled-back"></a>

如果您無法成功部署 CloudFormation 堆疊，且其正在轉返並發生錯誤，請使用下列程序來解決問題。您需要對 CloudFormation 堆疊部署的 EC2 執行個體進行 SSH 存取。

1. 重新部署 CloudFormation 堆疊，確保停用自動轉返。

1. 您的 Harvest 和 Grafana 用戶端正在執行的 Amazon EC2 執行個體中的 SSH。

   ```
   [~]$ ssh ec2-user@{{ec2_ip_address}}
   ```

1. Verfy 使用以下命令成功啟動 Docker 容器。

   ```
   [ec2-user@ip-{{ec2_ip_address}} ~]$ sudo docker ps
   ```

   在回應中，您應該會看到五個容器，如下所示：

   ```
   CONTAINER ID   IMAGE                   COMMAND                  CREATED         STATUS                          PORTS                    NAMES
   6b9b3f2085ef   rahulguptajss/harvest   "bin/poller --config…"   8 minutes ago   Restarting (1) 20 seconds ago                            harvest_cluster-2
   3cf3e3623fde   rahulguptajss/harvest   "bin/poller --config…"   8 minutes ago   Up About a minute                                        harvest_cluster-1
   708f3b7ef6f8   grafana/grafana         "/run.sh"                8 minutes ago   Up 8 minutes                    0.0.0.0:3000->3000/tcp   harvest_grafana
   0febee61cab7   prom/alertmanager       "/bin/alertmanager -…"   8 minutes ago   Up 8 minutes                    0.0.0.0:9093->9093/tcp   harvest_prometheus_alertmanager
   1706d8cd5a0c   prom/prometheus         "/bin/prometheus --c…"   8 minutes ago   Up 8 minutes                    0.0.0.0:9090->9090/tcp   harvest_prometheus
   ```

1. 如果 Docker 容器未執行，請檢查`/var/log/cloud-init-output.log`檔案中是否有失敗，如下所示。

   ```
   [ec2-user@ip-{{ec2_ip_address}} ~]$ sudo cat /var/log/cloud-init-output.log
        PLAY [Manage Harvest] **********************************************************
    
   TASK [Gathering Facts] *********************************************************
   ok: [localhost]
    
   TASK [Verify images] ***********************************************************
   failed: [localhost] (item=prom/prometheus) => {"ansible_loop_var": "item", "changed": false, "item": "prom/prometheus",
   "msg": "Error connecting: Error while fetching server API version: ('Connection aborted.', ConnectionResetError(104, 'Co
   nnection reset by peer'))"}
   failed: [localhost] (item=prom/alertmanager) => {"ansible_loop_var": "item", "changed": false, "item": "prom/alertmanage
   r", "msg": "Error connecting: Error while fetching server API version: ('Connection aborted.', ConnectionResetError(104,
   'Connection reset by peer'))"}
   failed: [localhost] (item=rahulguptajss/harvest) => {"ansible_loop_var": "item", "changed": false, "item": "rahulguptajs
   s/harvest", "msg": "Error connecting: Error while fetching server API version: ('Connection aborted.', ConnectionResetEr
   ror(104, 'Connection reset by peer'))"}
   failed: [localhost] (item=grafana/grafana) => {"ansible_loop_var": "item", "changed": false, "item": "grafana/grafana",
   "msg": "Error connecting: Error while fetching server API version: ('Connection aborted.', ConnectionResetError(104, 'Co
   nnection reset by peer'))"}
    
   PLAY RECAP *********************************************************************
   localhost                  : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0
   ```

1. 如果發生故障，請執行下列命令來部署 Harvest 和 Grafana 容器。

   ```
   [ec2-user@ip-{{ec2_ip_address}} ~]$ sudo su
        [ec2-user@ip-{{ec2_ip_address}} ~]$ cd /home/ec2-user/harvest_install
        [ec2-user@ip-{{ec2_ip_address}} ~]$ /usr/local/bin/ansible-playbook manage_harvest.yml
        [ec2-user@ip-{{ec2_ip_address}} ~]$ /usr/local/bin/ansible-playbook manage_harvest.yml --tags api
   ```

1. 透過執行**sudo docker ps**並連線至您的 Harvest 和 Grafana URL 來驗證已成功啟動的容器。