Harvest 및 Grafana를 사용하여 FSx for ONTAP 파일 시스템 모니터링
NetApp Harvest는 ONTAP 시스템에서 성능 및 용량 지표를 수집하기 위한 오픈 소스 도구이며 ONTAP용 FSx와 호환됩니다. 오픈 소스 모니터링 솔루션에 Harvest를 Grafana와 함께 사용할 수 있습니다.
Harvest 및 Grafana 시작하기
다음 섹션에서는 ONTAP용 FSx 파일 시스템의 성능과 스토리지 용량 사용률을 측정하도록 Harvest 및 Grafana를 설정하고 구성하는 방법을 자세히 설명합니다.
Harvest 및 Grafana를 사용하여 Amazon FSx for NetApp ONTAP 파일 시스템을 모니터링할 수 있습니다. NetApp Harvest는 ONTAP용 FSx 파일 시스템에서 성능, 용량 및 하드웨어 지표를 수집하여 ONTAP 데이터 센터를 모니터링합니다. Grafana는 수집된 Harvest 지표를 표시할 수 있는 대시보드를 제공합니다.
지원되는 Harvest 대시보드
Amazon FSx for NetApp ONTAP은 온프레미스 NetApp ONTAP과는 다른 일련의 지표를 제공합니다. 따라서 fsx
라는 태그가 지정된 다음과 같은 기본 제공 Harvest 대시보드만 현재 FSx for ONTAP과 함께 사용할 수 있습니다. 이러한 대시보드의 일부 패널에는 지원되지 않는 정보가 누락될 수 있습니다.
ONTAP: 규정 준수
ONTAP: 데이터 보호 스냅샷
ONTAP: 보안
ONTAP: SVM
ONTAP: 볼륨
AWS CloudFormation 템플릿
Harvest 및 Grafana를 실행하는 Amazon EC2 인스턴스를 자동으로 실행하는 AWS CloudFormation 템플릿을 배포하여 시작할 수 있습니다. 이 배포의 일부로 추가될 파일 시스템의 fsxadmin
사용자와 Amazon FSx 관리 엔드포인트를 AWS CloudFormation 템플릿에 대한 입력으로 지정합니다. 배포가 완료되면 Grafana 대시보드에 로그인하여 파일 시스템을 모니터링할 수 있습니다.
이 솔루션은 AWS CloudFormation을 사용하여 Harvest 및 Grafana 솔루션의 배포를 자동화합니다. 이 템플릿은 Amazon EC2 Linux 인스턴스를 생성하고 Harvest 및 Grafana 소프트웨어를 설치합니다. 이 솔루션을 사용하려면 fsx-ontap-harvest-grafana.template
참고
이 솔루션을 구현하면 연결된 AWS 서비스에 대한 요금이 청구됩니다. 자세한 내용은 해당 서비스에 대한 요금 세부 정보 페이지를 참조하세요.
Amazon EC2 인스턴스 유형
템플릿을 구성할 때 Amazon EC2 인스턴스 유형을 제공합니다. NetApp의 인스턴스 크기 권장 사항은 모니터링하는 파일 시스템의 수와, 수집하기로 선택한 지표의 수에 따라 달라집니다. 기본 구성을 사용하면 모니터링하는 파일 시스템 10개 각각에 대해 NetApp은 다음을 권장합니다.
CPU: 코어 2개
메모리: 1GB
디스크: 500MB(주로 로그 파일에 사용됨)
다음은 몇 가지 샘플 구성과, 선택할 수 있는 t3
인스턴스 유형입니다.
파일 시스템 | CPU | 디스크 | 인스턴스 유형 |
---|---|---|---|
10개 미만 |
코어 2개 |
500MB |
|
10~40 |
코어 4개 |
1000MB |
|
40+ |
코어 8개 |
2000MB |
|
Amazon EC2 인스턴스 유형에 대한 자세한 내용은 Amazon EC2 사용 설명서의 범용 인스턴스를 참조하세요.
인스턴스 포트 규칙
Amazon EC2 인스턴스를 설정할 때 Amazon EC2 Harvest 및 Grafana 인스턴스가 속해 있는 보안 그룹의 인바운드 트래픽을 위해 포트 3000과 9090이 열려 있도록 해야 합니다. 시작된 인스턴스는 HTTPS를 통해 엔드포인트에 연결되므로 DNS를 위해 포트 53 TCP/UDP가 필요한 엔드포인트를 해결해야 합니다. 또한 엔드포인트에 도달하려면 HTTPS 및 인터넷 액세스를 위한 포트 443 TCP가 필요합니다.
배포 절차
다음은 Harvest 및 Grafana 솔루션을 구성하고 배포하는 절차입니다. 배포에는 약 5분이 소요됩니다. 시작하기 전에 AWS 계정에 Amazon Virtual Private Cloud (Amazon VPC)에서 실행되는 FSx for ONTAP 파일 시스템이 있어야 하며 아래 나열된 템플릿의 파라미터 정보가 있어야 합니다. 파일 시스템 생성에 대한 자세한 내용은 파일 시스템 만들기 섹션을 참조하세요.
Harvest 및 Grafana 솔루션 스택 시작
-
fsx-ontap-harvest-grafana.template
AWS CloudFormation 템플릿을 다운로드합니다. AWS CloudFormation 스택 생성에 대한 자세한 내용은 AWS CloudFormation 사용 설명서의 AWS CloudFormation 콘솔에서 스택 생성을 참조하세요. 참고
기본적으로 이 템플릿은 미국 동부(버지니아 북부) AWS 리전에서 실행됩니다. Amazon FSx를 사용할 수 있는 AWS 리전에서 이 솔루션을 실행해야 합니다. 자세한 내용은 AWS 일반 참조의 Amazon FSx 엔드포인트 및 할당량을 참조하세요.
-
파라미터의 경우 템플릿의 파라미터를 검토하고 파일 시스템의 필요에 맞게 수정합니다. 이 솔루션은 다음과 같은 기본값을 사용합니다.
파라미터 기본값 설명 InstanceType t3.micro
Amazon EC2 인스턴스 유형
t3
인스턴스 유형은 다음과 같습니다.t3.micro
t3.small
t3.medium
t3.large
t3.xlarge
t3.2xlarge
이 파라미터에 허용된 Amazon EC2 인스턴스 유형 값의 전체 목록은 fsx-ontap-harvest-grafana.template을 참조하세요.
KeyPair 기본값 없음 Amazon EC2 인스턴스에 액세스하는 데 사용되는 키 페어입니다. SecurityGroup 기본값 없음 Harvest 및 Grafana 인스턴스의 보안 그룹 ID입니다. 인바운드 포트 3000 및 9090과 포트 53 및 443이 Grafana 대시보드에 액세스하는 데 사용하려는 클라이언트에서 열려 있는지 확인합니다. 서브넷 유형 기본값 없음 서브넷 유형으로 public
또는private
을 지정합니다. 인터넷에 연결되어야 하는 리소스에는public
서브넷을 사용하고, 인터넷에 연결되지 않는 리소스에는 프라이빗 서브넷을 사용합니다. 자세한 내용은 Amazon VPC 사용 설명서의 서브넷 크기를 참조하세요.서브넷 기본값 없음 Amazon FSx for NetApp ONTAP 파일 시스템의 기본 서브넷과 동일한 서브넷을 지정합니다. Amazon FSx 콘솔의 FSx for ONTAP 파일 시스템 세부 정보 페이지의 네트워크 및 보안 탭에서 파일 시스템의 기본 서브넷 ID를 찾을 수 있습니다. LatestLinuxAmiId /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2
주어진 AWS 리전에서 Amazon Linux 2 AMI의 최신 버전입니다. FSxEndPoint 기본값 없음 파일 시스템의 관리 엔드포인트 IP 주소입니다. Amazon FSx 콘솔의 FSx for ONTAP 파일 시스템 세부 정보 페이지의 관리 탭에서 파일 시스템의 관리 엔드포인트 IP 주소를 찾을 수 있습니다. SecretName 기본값 없음 파일 시스템의 fsxadmin
사용자의 암호가 포함된 AWS Secrets Manager 비밀 키 이름입니다. 파일 시스템을 생성할 때 제공한 암호입니다. -
다음을 선택합니다.
-
옵션에서 다음을 선택합니다.
-
검토에서 설정을 검토하고 확인합니다. 템플릿이 IAM 리소스를 생성한다는 것을 확인하는 확인란을 선택해야 합니다.
-
생성을 선택하여 스택을 배포합니다.
AWS CloudFormation 콘솔의 상태 열에서 스택의 상태를 볼 수 있습니다. 약 5분 후에 CREATE_COMPLETE 상태를 확인할 수 있습니다.
Grafana에 로그인
배포가 완료되면 브라우저를 사용하여 Amazon EC2 인스턴스의 IP 및 포트 3000에서 Grafana 대시보드에 로그인합니다.
http://EC2_instance_IP
:3000
메시지가 표시되면 Grafana 기본 사용자 이름(admin
)과 암호(pass
)를 사용합니다. 로그인하는 즉시 암호를 변경하는 것이 좋습니다.
자세한 내용은 GitHub의 NetApp Harvest
Harvest 및 Grafana 문제 해결
Harvest 및 Grafana 대시보드에 언급된 데이터가 누락되거나 ONTAP용 FSx를 사용하여 Harvest 및 Grafana를 설정하는 데 문제가 있는 경우 다음 주제에 잠재적 솔루션이 있는지 확인하세요.
SVM 및 볼륨 대시보드가 비어 있음
AWS CloudFormation 스택이 성공적으로 배포되어 Grafana에 연락할 수 있지만 SVM 및 볼륨 대시보드가 비어 있는 경우 다음 절차를 사용하여 환경 문제를 해결합니다. Harvest 및 Grafana가 배포된 Amazon EC2 인스턴스에 대한 SSH 액세스 권한이 필요합니다.
Harvest 및 Grafana 클라이언트가 실행 중인 Amazon EC2 인스턴스에 대한 SSH입니다.
[~]$
ssh ec2-user@ec2_ip_address
다음 명령을 사용하여
harvest.yml
파일을 열고.ONTAP용 FSx 인스턴스에 대한 항목이
Cluster-2
로 생성되었는지 확인합니다.사용자 이름과 암호의 항목이
fsxadmin
보안 인증 정보와 일치하는지 확인합니다.
[ec2-user@ip-
ec2_ip_address
~]$sudo cat /home/ec2-user/harvest_install/harvest/harvest.yml
-
암호 필드가 비어 있는 경우 다음과 같이 편집기에서 파일을 열고
fsxadmin
암호로 업데이트합니다.[ec2-user@ip-
ec2_ip_address
~]$sudo vi /home/ec2-user/harvest_install/harvest/harvest.yml
향후 배포를 위해
fsxadmin
사용자 보안 인증 정보가 Secrets Manager에 다음 형식으로 저장되어 있는지 확인하고
를 암호로 바꿉니다.fsxadmin_password
{"username" : "fsxadmin", "password" : "
fsxadmin_password
"}
제한 시간 이후에 롤백되는 CloudFormation 스택
CloudFormation 스택을 성공적으로 배포할 수 없고 오류가 있는 상태로 롤백되는 경우 다음 절차를 사용하여 문제를 해결합니다. CloudFormation 스택에서 배포한 EC2 인스턴스에 대한 SSH 액세스 권한이 필요합니다.
자동 롤백이 비활성화되어 있는지 확인하여 CloudFormation 스택을 재배포합니다.
-
Harvest 및 Grafana 클라이언트가 실행 중인 Amazon EC2 인스턴스에 대한 SSH입니다.
[~]$
ssh ec2-user@ec2_ip_address
-
다음 명령을 사용하여 도커 컨테이너가 성공적으로 시작되었는지 확인합니다.
[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
도커 컨테이너가 실행되지 않는 경우 다음과 같이
/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
장애가 발생하면 다음 명령을 실행하여 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
sudo docker ps를 실행하고 Harvest 및 Grafana URL에 연결하여 컨테이너가 성공적으로 시작되었는지 확인합니다.