本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Harvest 和 Grafana 监控FSxONTAP文件系统
NetApp Harvest 是一款用于从ONTAP系统收集性能和容量指标的开源工具,与 for FSx 兼容ONTAP。可以结合使用 Harvest 与 Grafana 来获得开源监控解决方案。
开始使用 Harvest 和 Grafana
以下部分详细介绍了如何设置和配置 Harvest 和 Grafana 来衡量文件系统的性能和FSx存储ONTAP容量利用率。
您可以使用 Harvest 和 Grafana 监控亚马逊上的FSx NetApp ONTAP文件系统。 NetApp Harvest 通过收集ONTAP文件系统的性能、容量和硬件FSx指标来监控ONTAP数据中心。Grafana 配备的控制面板中会显示收集的 Harvest 指标。
支持的 Harvest 控制面板
Amazon FSx NetApp ONTAP for 公开的指标集与本地 NetApp ONTAP版本不同。因此,目前仅支持以下标fsx
有标签的 out-of-the-box Harvest 仪表板与 for 一起FSx使用ONTAP。这些控制面板中的某些面板可能缺少不支持的信息。
ONTAP: 合规
ONTAP: 数据保护快照
ONTAP: 安全
ONTAP: SVM
ONTAP: 音量
Amazon CloudFormation 模板
首先,您可以部署一个 Amazon CloudFormation 模板来自动启动运行 Harvest 和 Grafana 的亚马逊EC2实例。作为 Amazon CloudFormation 模板的输入,您可以为将在此部署中添加的文件系统指定fsxadmin
用户和 Amazon FSx 管理终端节点。部署完成后,您可以登录 Grafana 控制面板来监控您的文件系统。
此解决方案用于 Amazon CloudFormation 自动部署 Harvest 和 Grafana 解决方案。该模板创建了一个亚马逊 EC2 Linux 实例并安装 Harvest 和 Grafana 软件。要使用此解决方案,请下载 fsx-ontap-harvest-grafana.template Amazon CloudFormation 模板。
注意
实施此解决方案会产生相关 Amazon 服务的账单。有关更多信息,请参阅有关这些服务的定价详细信息页面。
亚马逊EC2实例类型
配置模板时,您需要提供 Amazon EC2 实例类型。 NetApp对实例大小的建议取决于您监控的文件系统的数量以及您选择收集的指标数量。使用默认配置,对于您监控的每 10 个文件系统, NetApp 建议:
CPU: 2 个内核
内存:1 GB
磁盘:500 MB(主要用于日志文件)
以下是一些示例配置和您可以选择的 t3
实例类型。
文件系统 | CPU | 磁盘 | 实例类型 |
---|---|---|---|
10 以下 |
2 个核心 |
500 MB |
|
10–40 |
4 个核心 |
1000 MB |
|
40+ |
8 个核心 |
2000 MB |
|
有关亚马逊EC2实例类型的更多信息,请参阅亚马逊EC2用户指南中的通用实例。
实例端口规则
在设置亚马逊EC2实例时,请确保端口 3000 和 9090 已开放用于接EC2收 Amazon Harvest 和 Grafana 实例所在的安全组的入站流量。由于启动的实例通过连接到终端节点HTTPS,因此它需要解析终端节点,终端节点需要端口 53TCP/UDPDNS。此外,要到达终端,它需要端口 443 TCP 才能访问互联网。HTTPS
部署程序
以下程序配置和部署 Harvest/Grafana 解决方案。部署大约需要五分钟。在开始之前,您的 Amazon 账户中必须有一个FSx在 Amazon Virtual Private Cloud (AmazonVPC) 中运行的 for ONTAP 文件系统,以及下面列出的模板的参数信息。有关创建文件系统的更多信息,请参阅创建文件系统。
启动 Harvest/Grafana 解决方案堆栈
-
下载 fsx-ontap-harvest-grafana.template Amazon CloudFormation 模板。
有关创建 Amazon CloudFormation 堆栈的更多信息,请参阅《Amazon CloudFormation 用户指南》中的在 Amazon CloudFormation 控制台上创建堆栈。 注意
默认情况下,此模板在美国东部(弗吉尼亚北部) Amazon 区域启动。您必须在 Amazon FSx 可用 Amazon Web Services 区域 的地方启动此解决方案。有关更多信息,请参阅中的 Amazon FSx 终端节点和配额Amazon Web Services 一般参考。
-
对于参数,请查看模板的参数并根据文件系统的需求对其进行修改。该解决方案使用以下默认值。
参数 默认值 描述 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 无默认值 用于访问亚马逊EC2实例的密钥对。 SecurityGroup 无默认值 Harvest/Grafana 实例的安全组 ID。除了端口 53 和 443,确保您希望用于访问 Grafana 控制面板的客户端已打开入站端口 3000 和 9090。 子网类型 无默认值 指定子网类型 public
或private
。对必须连接互联网的资源使用public
子网,而对不会连接到互联网的资源使用私有子网。有关更多信息,请参阅 Amazon VPC 用户指南中的子网类型。子网 无默认值 为 NetApp ONTAP文件系统的首选子网指定与 FSx Amazon 相同的子网。您可以在 Amazon FSx 控制台的 “文件系统详情” 页面的 “网络和安全” 选项卡中找到ONTAP文件系统的首选子网 ID FSx LatestLinuxAmiId /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2
给定版本AMI中的亚马逊 Linux 2 的最新版本 Amazon Web Services 区域。 FSxEndPoint 无默认值 文件系统的管理端点 IP 地址。您可以在 Amazon FSx 控制台的文件系统详情页面的 “管理” 选项卡中找到ONTAP文件系统的管理终端节点 IP 地址。FSx SecretName 无默认值 Amazon Secrets Manager 包含文件系统 fsxadmin
用户密码的机密名称。这是您在创建文件系统时提供的密码。 -
选择下一步。
-
在选项中,选择下一步。
-
在审核中,审核并确认设置。必须选中确认模板创建IAM资源的复选框。
-
选择创建以部署堆栈。
您可以在 Amazon CloudFormation 控制台的 “状态” 列中查看堆栈的状态。大约五分钟后,您应该会看到状态为 CREATE_ COMPLETE。
登录 Grafana
部署完成后,使用浏览器在亚马逊实例的 IP 和端口 3000 上登录到 Grafana 控制面板:EC2
http://EC2_instance_IP
:3000
出现提示时,使用 Grafana 默认用户名(admin
)和密码(pass
)。我们建议您登录后立即更改密码。
欲了解更多信息,请参阅上的 NetApp Harvest
排查 Harvest 和 Grafana 故障
如果您遇到 Harvest 和 Grafana 仪表板中提及的任何数据缺失,或者在使用 for 设置 Harvest 和 Grafana 时遇到问题,请查看以下主题FSx以ONTAP获取可能的解决方案。
SVM而且音量仪表板是空白的
如果 Amazon CloudFormation 堆栈已成功部署并且可以联系 Grafana,但和卷仪表板SVM为空,请使用以下步骤对您的环境进行故障排除。您需要SSH访问部署 Harvest 和 Grafana 的亚马逊EC2实例。
SSH进入你的 Harvest 和 Grafana 客户端正在运行的亚马逊EC2实例。
[~]$
ssh ec2-user@ec2_ip_address
使用以下命令打开
harvest.yml
文件并且:验证是否已为您创建了一个条目FSx,ONTAP例如为
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 堆栈,并且正在回滚并出现错误,请使用以下步骤来解决问题。您将需要SSH访问 CloudFormation 堆栈部署的EC2实例。
重新部署 CloudFormation 堆栈,确保禁用自动回滚。
-
SSH进入你的 Harvest 和 Grafana 客户端正在运行的亚马逊EC2实例。
[~]$
ssh ec2-user@ec2_ip_address
-
使用以下命令验证 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
如果 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
如果出现故障,请执行以下命令部署 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
通过运行并连接到你的 Harvest sudo docker ps 和 Grafana URL 来验证容器是否成功启动。