

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Harvest と Grafana を使用した ONTAP ファイルシステムの FSx のモニタリング
<a name="monitoring-harvest-grafana"></a>

NetApp Harvest は、ONTAP システムからパフォーマンスとキャパシティのメトリクスを収集するためのオープンソースツールであり、FSx for ONTAP と互換性があります。オープンソースのモニタリングソリューションには、Grafana で Harvest を使用できます。

## Harvest と Grafana の開始方法
<a name="harvest-grafana"></a>

次のセクションでは、FSx for ONTAP ファイルシステムのパフォーマンスとストレージ容量の使用率を測定するために Harvest と Grafana をセットアップおよび設定する方法について説明します。

Harvest と Grafana を使用して Amazon FSx for NetApp ONTAP ファイルシステムをモニタリングできます。NetApp Harvest は、FSx for ONTAP ファイルシステムからパフォーマンス、容量、ハードウェアメトリクスを収集して ONTAP データセンターをモニタリングします。Grafana は、収集された Harvest メトリクスを表示できるダッシュボードを提供します。

## サポートされている Harvest ダッシュボード
<a name="supported-harvest-dashboards"></a>

Amazon FSx for NetApp ONTAP は、オンプレミスの NetApp ONTAP が公開するのとは異なるメトリクスのセットを公開します。そのため、現在、`fsx` での使用がサポートされているのは、 のタグが付いたすぐに使用できる次の Harvest ダッシュボードのみです。これらのダッシュボードの一部のパネルには、サポートされていない情報が表示されない可能性があります。
+ 収集: メタデータ
+ 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: ボリュームの深堀り

以下の Harvest ダッシュボードは FSx for ONTAP でサポートされていますが、Harvest ではデフォルトで有効になっていません。
+ ONTAP: FlexCache
+ ONTAP: FlexGroup
+ ONTAP: NFS クライアント
+ ONTAP: NFSv4 Storepool Monitors
+ ONTAP: NFS のトラブルシューティング
+ ONTAP: NVMe 名前空間
+ ONTAP: SMB
+ ONTAP: ワークロード

## サポートされていない Harvest ダッシュボード
<a name="unsupported-dashboards"></a>

以下の Harvest ダッシュボードは、FSx for ONTAP ではサポートされて*いません*。
+ ONTAP: ディスク
+ ONTAP: 外部サービスオペレーション
+ ONTAP: ファイルシステム分析 (FSA)
+ ONTAP: ヘッドルーム
+ ONTAP: ヘルス
+ ONTAP: MAV リクエスト
+ ONTAP: MetroCluster
+ ONTAP: 電力
+ ONTAP: シェルフ
+ ONTAP: S3 オブジェクトストア

## CloudFormation テンプレート
<a name="harvest-grafana-template"></a>

スタートするには、Harvest と Grafana を実行する Amazon EC2 インスタンスを自動的に起動する CloudFormation テンプレートをデプロイできます。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 個ごとファイルシステムにつき次のことを推奨しています。
+ CPU: 2 コア
+ メモリ:1 GB
+ ディスク: 500 MB (主にログファイルで使用されます)

次は設定例および選択する `t3` インスタンスタイプを示します。


****  

| ファイルシステム | CPU | ディスク | インスタンスタイプ | 
| --- | --- | --- | --- | 
| 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 インスタンスを設定するときは、Amazon EC2 Harvest および Grafana インスタンスが属するセキュリティグループのインバウンドトラフィック用にポート 3000 と 9090 が開いていることを確認します。起動されたインスタンスは HTTPS 経由でエンドポイントに接続するため、エンドポイントを解決する必要があります。これには、DNS 用のポート 53 TCP/UDP が必要です。さらに、エンドポイントに到達するには、HTTPS とインターネットアクセスにポート 443 TCP が必要です。

## デプロイ手順
<a name="harvest-grafana-deployment"></a>

次の手順では、Harvest / Grafana ソリューションを設定してデプロイします。デプロイには約 5 分かかります。スタートする前に、FSx for ONTAP ファイルシステムを AWS アカウント、および以下に示すテンプレートのパラメータ情報内の Amazon Virtual Private Cloud (Amazon VPC) で実行する必要があります。ファイルシステムの作成の詳細については、「[ファイルシステムの作成](creating-file-systems.md)」を参照してください。

**Harvest / Grafana ソリューションスタックを起動するには**

1. [fsx-ontap-harvest-grafana.](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 リージョン で起動する必要があります。詳細については、「*AWS 全般のリファレンス*」の「[Amazon FSx エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/fsxn.html)」を参照してください。

1. **[Parameters]** (パラメータ) については、テンプレートのパラメータを確認し、ファイルシステムのニーズに合わせて変更します。このソリューションは以下のデフォルト値を使用します。  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/fsx/latest/ONTAPGuide/monitoring-harvest-grafana.html)

1. **[Next]** (次へ) を選択します。

1. **[Options]** (オプション) には、**[Next]** (次へ) を選択します。

1. **[Review]** (確認) で、設定を確認して確定します。テンプレートが IAM リソースを作成することを確認するチェックボックスを選択する必要があります。

1. **[Create]** (作成) を選択してスタックをデプロイします。

CloudFormation コンソールの **[Status]** (ステータス) 欄でスタックのステータスを表示できます。約 5 分で **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. 次のコマンドを使用して、Docker コンテナが正常に開始されたことを確認します。

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

   レスポンスには、次のように 5 つのコンテナが表示されます。

   ```
   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 を接続することで、コンテナが正常に開始されたことを確認します。