

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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>

다음 섹션에서는 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 대시보드만 현재 FSx for ONTAP과 함께 사용할 수 있습니다. 이러한 대시보드의 일부 패널에는 지원되지 않는 정보가 누락될 수 있습니다.
+ 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 템플릿을 배포하여 시작할 수 있습니다. 이 배포의 일부로 추가될 파일 시스템의 `fsxadmin` 사용자와 Amazon FSx 관리 엔드포인트를 CloudFormation 템플릿에 대한 입력으로 지정합니다. 배포가 완료되면 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개
+ 메모리: 1GB
+ 디스크: 500MB(주로 로그 파일에 사용됨)

다음은 몇 가지 샘플 구성과, 선택할 수 있는 `t3` 인스턴스 유형입니다.


****  

| 파일 시스템 | CPU | 디스크 | 인스턴스 유형 | 
| --- | --- | --- | --- | 
| 10개 미만 | 코어 2개 | 500MB | `t3.micro` | 
| 10\~40 | 코어 4개 | 1000MB | `t3.xlarge` | 
| 40\+ | 코어 8개 | 2000MB | `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분이 소요됩니다. 시작하기 전에 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 리전에서 이 솔루션을 실행해야 합니다. 자세한 내용은 *AWS 일반 참조*의 [Amazon FSx 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/fsxn.html)을 참조하세요.

1. **파라미터**의 경우 템플릿의 파라미터를 검토하고 파일 시스템의 필요에 맞게 수정합니다. 이 솔루션은 다음과 같은 기본값을 사용합니다.  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/fsx/latest/ONTAPGuide/monitoring-harvest-grafana.html)

1. **다음**을 선택합니다.

1. **옵션**에서 **다음**을 선택합니다.

1. **검토**에서 설정을 검토하고 확인합니다. 템플릿이 IAM 리소스를 생성한다는 것을 확인하는 확인란을 선택해야 합니다.

1. **생성**을 선택하여 스택을 배포합니다.

CloudFormation 콘솔의 **상태** 열에서 스택의 상태를 볼 수 있습니다. 약 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. 다음 명령을 사용하여 도커 컨테이너가 성공적으로 시작되었는지 확인합니다.

   ```
   [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. 도커 컨테이너가 실행되지 않는 경우 다음과 같이 `/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에 연결하여 컨테이너가 성공적으로 시작되었는지 확인합니다.