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